From: Andrew Morton <akpm@linux-foundation.org>
To: adobriyan@gmail.com, akpm@linux-foundation.org,
feng.tang@intel.com, gregkh@linuxfoundation.org, guro@fb.com,
hannes@cmpxchg.org, hughd@google.com, iamjoonsoo.kim@lge.com,
linux-mm@kvack.org, mhocko@suse.com, mm-commits@vger.kernel.org,
neilb@suse.de, pankaj.gupta@cloud.ionos.com, rafael@kernel.org,
rdunlap@infradead.org, samitolvanen@google.com,
shakeelb@google.com, songmuchun@bytedance.com,
torvalds@linux-foundation.org, vdavydov.dev@gmail.com
Subject: [patch 063/173] mm: memcontrol: make the slab calculation consistent
Date: Wed, 24 Feb 2021 12:03:43 -0800 [thread overview]
Message-ID: <20210224200343.eA4DvW2aL%akpm@linux-foundation.org> (raw)
In-Reply-To: <20210224115824.1e289a6895087f10c41dd8d6@linux-foundation.org>
From: Muchun Song <songmuchun@bytedance.com>
Subject: mm: memcontrol: make the slab calculation consistent
Although the ratio of the slab is one, we also should read the ratio from
the related memory_stats instead of hard-coding. And the local variable
of size is already the value of slab_unreclaimable. So we do not need to
read again.
To do this we need some code like below:
if (unlikely(memory_stats[i].idx == NR_SLAB_UNRECLAIMABLE_B)) {
- size = memcg_page_state(memcg, NR_SLAB_RECLAIMABLE_B) +
- memcg_page_state(memcg, NR_SLAB_UNRECLAIMABLE_B);
+ VM_BUG_ON(i < 1);
+ VM_BUG_ON(memory_stats[i - 1].idx != NR_SLAB_RECLAIMABLE_B);
+ size += memcg_page_state(memcg, memory_stats[i - 1].idx) *
+ memory_stats[i - 1].ratio;
It requires a series of VM_BUG_ONs or comments to ensure these two items
are actually adjacent and in the right order. So it would probably be
easier to implement this using a wrapper that has a big switch() for unit
conversion.
More details about this discussion can refer to:
https://lore.kernel.org/patchwork/patch/1348611/
This would fix the ratio inconsistency and get rid of the order
guarantee.
Link: https://lkml.kernel.org/r/20201228164110.2838-8-songmuchun@bytedance.com
Signed-off-by: Muchun Song <songmuchun@bytedance.com>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Feng Tang <feng.tang@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hugh Dickins <hughd@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: NeilBrown <neilb@suse.de>
Cc: Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
Cc: Rafael. J. Wysocki <rafael@kernel.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Roman Gushchin <guro@fb.com>
Cc: Sami Tolvanen <samitolvanen@google.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/memcontrol.c | 105 ++++++++++++++++++++++++++++------------------
1 file changed, 66 insertions(+), 39 deletions(-)
--- a/mm/memcontrol.c~mm-memcontrol-make-the-slab-calculation-consistent
+++ a/mm/memcontrol.c
@@ -1512,49 +1512,71 @@ static bool mem_cgroup_wait_acct_move(st
struct memory_stat {
const char *name;
- unsigned int ratio;
unsigned int idx;
};
static const struct memory_stat memory_stats[] = {
- { "anon", PAGE_SIZE, NR_ANON_MAPPED },
- { "file", PAGE_SIZE, NR_FILE_PAGES },
- { "kernel_stack", 1024, NR_KERNEL_STACK_KB },
- { "pagetables", PAGE_SIZE, NR_PAGETABLE },
- { "percpu", 1, MEMCG_PERCPU_B },
- { "sock", PAGE_SIZE, MEMCG_SOCK },
- { "shmem", PAGE_SIZE, NR_SHMEM },
- { "file_mapped", PAGE_SIZE, NR_FILE_MAPPED },
- { "file_dirty", PAGE_SIZE, NR_FILE_DIRTY },
- { "file_writeback", PAGE_SIZE, NR_WRITEBACK },
+ { "anon", NR_ANON_MAPPED },
+ { "file", NR_FILE_PAGES },
+ { "kernel_stack", NR_KERNEL_STACK_KB },
+ { "pagetables", NR_PAGETABLE },
+ { "percpu", MEMCG_PERCPU_B },
+ { "sock", MEMCG_SOCK },
+ { "shmem", NR_SHMEM },
+ { "file_mapped", NR_FILE_MAPPED },
+ { "file_dirty", NR_FILE_DIRTY },
+ { "file_writeback", NR_WRITEBACK },
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
- { "anon_thp", PAGE_SIZE, NR_ANON_THPS },
- { "file_thp", PAGE_SIZE, NR_FILE_THPS },
- { "shmem_thp", PAGE_SIZE, NR_SHMEM_THPS },
+ { "anon_thp", NR_ANON_THPS },
+ { "file_thp", NR_FILE_THPS },
+ { "shmem_thp", NR_SHMEM_THPS },
#endif
- { "inactive_anon", PAGE_SIZE, NR_INACTIVE_ANON },
- { "active_anon", PAGE_SIZE, NR_ACTIVE_ANON },
- { "inactive_file", PAGE_SIZE, NR_INACTIVE_FILE },
- { "active_file", PAGE_SIZE, NR_ACTIVE_FILE },
- { "unevictable", PAGE_SIZE, NR_UNEVICTABLE },
-
- /*
- * Note: The slab_reclaimable and slab_unreclaimable must be
- * together and slab_reclaimable must be in front.
- */
- { "slab_reclaimable", 1, NR_SLAB_RECLAIMABLE_B },
- { "slab_unreclaimable", 1, NR_SLAB_UNRECLAIMABLE_B },
+ { "inactive_anon", NR_INACTIVE_ANON },
+ { "active_anon", NR_ACTIVE_ANON },
+ { "inactive_file", NR_INACTIVE_FILE },
+ { "active_file", NR_ACTIVE_FILE },
+ { "unevictable", NR_UNEVICTABLE },
+ { "slab_reclaimable", NR_SLAB_RECLAIMABLE_B },
+ { "slab_unreclaimable", NR_SLAB_UNRECLAIMABLE_B },
/* The memory events */
- { "workingset_refault_anon", 1, WORKINGSET_REFAULT_ANON },
- { "workingset_refault_file", 1, WORKINGSET_REFAULT_FILE },
- { "workingset_activate_anon", 1, WORKINGSET_ACTIVATE_ANON },
- { "workingset_activate_file", 1, WORKINGSET_ACTIVATE_FILE },
- { "workingset_restore_anon", 1, WORKINGSET_RESTORE_ANON },
- { "workingset_restore_file", 1, WORKINGSET_RESTORE_FILE },
- { "workingset_nodereclaim", 1, WORKINGSET_NODERECLAIM },
+ { "workingset_refault_anon", WORKINGSET_REFAULT_ANON },
+ { "workingset_refault_file", WORKINGSET_REFAULT_FILE },
+ { "workingset_activate_anon", WORKINGSET_ACTIVATE_ANON },
+ { "workingset_activate_file", WORKINGSET_ACTIVATE_FILE },
+ { "workingset_restore_anon", WORKINGSET_RESTORE_ANON },
+ { "workingset_restore_file", WORKINGSET_RESTORE_FILE },
+ { "workingset_nodereclaim", WORKINGSET_NODERECLAIM },
};
+/* Translate stat items to the correct unit for memory.stat output */
+static int memcg_page_state_unit(int item)
+{
+ switch (item) {
+ case MEMCG_PERCPU_B:
+ case NR_SLAB_RECLAIMABLE_B:
+ case NR_SLAB_UNRECLAIMABLE_B:
+ case WORKINGSET_REFAULT_ANON:
+ case WORKINGSET_REFAULT_FILE:
+ case WORKINGSET_ACTIVATE_ANON:
+ case WORKINGSET_ACTIVATE_FILE:
+ case WORKINGSET_RESTORE_ANON:
+ case WORKINGSET_RESTORE_FILE:
+ case WORKINGSET_NODERECLAIM:
+ return 1;
+ case NR_KERNEL_STACK_KB:
+ return SZ_1K;
+ default:
+ return PAGE_SIZE;
+ }
+}
+
+static inline unsigned long memcg_page_state_output(struct mem_cgroup *memcg,
+ int item)
+{
+ return memcg_page_state(memcg, item) * memcg_page_state_unit(item);
+}
+
static char *memory_stat_format(struct mem_cgroup *memcg)
{
struct seq_buf s;
@@ -1578,13 +1600,12 @@ static char *memory_stat_format(struct m
for (i = 0; i < ARRAY_SIZE(memory_stats); i++) {
u64 size;
- size = memcg_page_state(memcg, memory_stats[i].idx);
- size *= memory_stats[i].ratio;
+ size = memcg_page_state_output(memcg, memory_stats[i].idx);
seq_buf_printf(&s, "%s %llu\n", memory_stats[i].name, size);
if (unlikely(memory_stats[i].idx == NR_SLAB_UNRECLAIMABLE_B)) {
- size = memcg_page_state(memcg, NR_SLAB_RECLAIMABLE_B) +
- memcg_page_state(memcg, NR_SLAB_UNRECLAIMABLE_B);
+ size += memcg_page_state_output(memcg,
+ NR_SLAB_RECLAIMABLE_B);
seq_buf_printf(&s, "slab %llu\n", size);
}
}
@@ -6375,6 +6396,12 @@ static int memory_stat_show(struct seq_f
}
#ifdef CONFIG_NUMA
+static inline unsigned long lruvec_page_state_output(struct lruvec *lruvec,
+ int item)
+{
+ return lruvec_page_state(lruvec, item) * memcg_page_state_unit(item);
+}
+
static int memory_numa_stat_show(struct seq_file *m, void *v)
{
int i;
@@ -6392,8 +6419,8 @@ static int memory_numa_stat_show(struct
struct lruvec *lruvec;
lruvec = mem_cgroup_lruvec(memcg, NODE_DATA(nid));
- size = lruvec_page_state(lruvec, memory_stats[i].idx);
- size *= memory_stats[i].ratio;
+ size = lruvec_page_state_output(lruvec,
+ memory_stats[i].idx);
seq_printf(m, " N%d=%llu", nid, size);
}
seq_putc(m, '\n');
_
next prev parent reply other threads:[~2021-02-24 20:05 UTC|newest]
Thread overview: 197+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-24 19:58 incoming Andrew Morton
2021-02-24 20:00 ` [patch 001/173] hexagon: remove CONFIG_EXPERIMENTAL from defconfigs Andrew Morton
2021-02-24 20:00 ` [patch 002/173] scripts/spelling.txt: increase error-prone spell checking Andrew Morton
2021-02-24 20:00 ` [patch 003/173] scripts/spelling.txt: check for "exeeds" Andrew Morton
2021-02-24 20:00 ` [patch 004/173] scripts/spelling.txt: add "allocted" and "exeeds" typo Andrew Morton
2021-02-24 20:00 ` [patch 005/173] scripts/spelling.txt: add more spellings to spelling.txt Andrew Morton
2021-02-24 20:00 ` [patch 006/173] ntfs: layout.h: delete duplicated words Andrew Morton
2021-02-24 20:00 ` [patch 007/173] ntfs: check for valid standard information attribute Andrew Morton
2021-02-24 20:00 ` [patch 008/173] ocfs2: remove redundant conditional before iput Andrew Morton
2021-02-24 20:00 ` [patch 009/173] ocfs2: clean up some definitions which are not used any more Andrew Morton
2021-02-24 20:00 ` [patch 010/173] ocfs2: fix a use after free on error Andrew Morton
2021-02-24 20:00 ` [patch 011/173] ocfs2: simplify the calculation of variables Andrew Morton
2021-02-24 20:00 ` [patch 012/173] fs: delete repeated words in comments Andrew Morton
2021-02-24 20:00 ` [patch 013/173] ramfs: support O_TMPFILE Andrew Morton
2021-02-24 20:21 ` Christian Brauner
2021-02-24 20:00 ` [patch 014/173] mm, tracing: record slab name for kmem_cache_free() Andrew Morton
2021-02-25 1:37 ` Steven Rostedt
2021-02-25 1:51 ` Linus Torvalds
2021-02-25 1:52 ` Linus Torvalds
2021-02-25 2:03 ` Steven Rostedt
2021-02-25 7:06 ` Jacob Wen
2021-02-25 14:25 ` Steven Rostedt
2021-02-25 2:07 ` Steven Rostedt
2021-02-25 7:07 ` Jacob Wen
2021-02-25 14:31 ` Steven Rostedt
2021-02-25 17:49 ` Linus Torvalds
2021-02-25 17:57 ` Steven Rostedt
2021-02-25 21:48 ` Steven Rostedt
2021-02-26 15:54 ` Steven Rostedt
2021-02-26 2:02 ` Jacob Wen
2021-02-26 2:56 ` Steven Rostedt
2021-02-26 3:48 ` Jacob Wen
2021-02-26 14:15 ` Steven Rostedt
2021-02-24 20:00 ` [patch 015/173] mm/sl?b.c: remove ctor argument from kmem_cache_flags Andrew Morton
2021-02-24 20:01 ` [patch 016/173] mm/slab: minor coding style tweaks Andrew Morton
2021-02-24 20:01 ` [patch 017/173] mm/slub: disable user tracing for kmemleak caches by default Andrew Morton
2021-02-24 20:01 ` [patch 018/173] mm, slub: stop freeing kmem_cache_node structures on node offline Andrew Morton
2021-02-24 20:01 ` [patch 019/173] mm, slab, slub: stop taking memory hotplug lock Andrew Morton
2021-02-24 20:01 ` [patch 020/173] mm, slab, slub: stop taking cpu " Andrew Morton
2021-02-24 20:01 ` [patch 021/173] mm, slub: splice cpu and page freelists in deactivate_slab() Andrew Morton
2021-02-24 20:01 ` [patch 022/173] mm, slub: remove slub_memcg_sysfs boot param and CONFIG_SLUB_MEMCG_SYSFS_ON Andrew Morton
2021-02-24 20:01 ` [patch 023/173] mm/slub: minor coding style tweaks Andrew Morton
2021-02-24 20:01 ` [patch 024/173] mm/debug: improve memcg debugging Andrew Morton
2021-02-24 20:01 ` [patch 025/173] mm/debug_vm_pgtable/basic: add validation for dirtiness after write protect Andrew Morton
2021-02-24 20:01 ` [patch 026/173] mm/debug_vm_pgtable/basic: iterate over entire protection_map[] Andrew Morton
2021-02-24 20:01 ` [patch 027/173] mm/page_owner: use helper function zone_end_pfn() to get end_pfn Andrew Morton
2021-02-24 20:01 ` [patch 028/173] mm/filemap: remove unused parameter and change to void type for replace_page_cache_page() Andrew Morton
2021-02-24 20:01 ` [patch 029/173] mm/filemap: don't revert iter on -EIOCBQUEUED Andrew Morton
2021-02-24 20:01 ` [patch 030/173] mm/filemap: rename generic_file_buffered_read subfunctions Andrew Morton
2021-02-24 20:01 ` [patch 031/173] mm/filemap: remove dynamically allocated array from filemap_read Andrew Morton
2021-02-24 20:01 ` [patch 032/173] mm/filemap: convert filemap_get_pages to take a pagevec Andrew Morton
2021-02-24 20:01 ` [patch 033/173] mm/filemap: use head pages in generic_file_buffered_read Andrew Morton
2021-02-24 20:02 ` [patch 034/173] mm/filemap: pass a sleep state to put_and_wait_on_page_locked Andrew Morton
2021-02-24 20:02 ` [patch 035/173] mm/filemap: support readpage splitting a page Andrew Morton
2021-02-24 20:02 ` [patch 036/173] mm/filemap: inline __wait_on_page_locked_async into caller Andrew Morton
2021-02-24 20:02 ` [patch 037/173] mm/filemap: don't call ->readpage if IOCB_WAITQ is set Andrew Morton
2021-02-24 20:02 ` [patch 038/173] mm/filemap: change filemap_read_page calling conventions Andrew Morton
2021-02-24 20:02 ` [patch 039/173] mm/filemap: change filemap_create_page " Andrew Morton
2021-02-24 20:02 ` [patch 040/173] mm/filemap: convert filemap_update_page to return an errno Andrew Morton
2021-02-24 20:02 ` [patch 041/173] mm/filemap: move the iocb checks into filemap_update_page Andrew Morton
2021-02-24 20:02 ` [patch 042/173] mm/filemap: add filemap_range_uptodate Andrew Morton
2021-02-24 20:02 ` [patch 043/173] mm/filemap: split filemap_readahead out of filemap_get_pages Andrew Morton
2021-02-24 20:02 ` [patch 044/173] mm/filemap: restructure filemap_get_pages Andrew Morton
2021-02-24 20:02 ` [patch 045/173] mm/filemap: don't relock the page after calling readpage Andrew Morton
2021-02-24 20:02 ` [patch 046/173] mm/filemap: rename generic_file_buffered_read to filemap_read Andrew Morton
2021-02-24 20:02 ` [patch 047/173] mm/filemap: simplify generic_file_read_iter Andrew Morton
2021-02-24 20:02 ` [patch 048/173] fs/buffer.c: add checking buffer head stat before clear Andrew Morton
2021-02-24 20:02 ` [patch 049/173] mm: backing-dev: Remove duplicated macro definition Andrew Morton
2021-02-24 20:02 ` [patch 050/173] mm/swap_slots.c: remove redundant NULL check Andrew Morton
2021-02-24 20:02 ` [patch 051/173] mm/swapfile.c: fix debugging information problem Andrew Morton
2021-02-24 20:03 ` [patch 052/173] mm/page_io: use pr_alert_ratelimited for swap read/write errors Andrew Morton
2021-02-24 20:03 ` [patch 053/173] mm/swap_state: constify static struct attribute_group Andrew Morton
2021-02-24 20:03 ` [patch 054/173] mm/swap: don't SetPageWorkingset unconditionally during swapin Andrew Morton
2021-02-24 20:03 ` [patch 055/173] mm: memcg/slab: pre-allocate obj_cgroups for slab caches with SLAB_ACCOUNT Andrew Morton
2021-02-24 20:03 ` [patch 056/173] mm: memcontrol: optimize per-lruvec stats counter memory usage Andrew Morton
2021-02-24 20:03 ` [patch 057/173] mm: memcontrol: fix NR_ANON_THPS accounting in charge moving Andrew Morton
2021-02-24 20:03 ` [patch 058/173] mm: memcontrol: convert NR_ANON_THPS account to pages Andrew Morton
2021-02-24 20:03 ` [patch 059/173] mm: memcontrol: convert NR_FILE_THPS " Andrew Morton
2021-02-24 20:03 ` [patch 060/173] mm: memcontrol: convert NR_SHMEM_THPS " Andrew Morton
2021-02-24 20:03 ` [patch 061/173] mm: memcontrol: convert NR_SHMEM_PMDMAPPED " Andrew Morton
2021-02-24 20:03 ` [patch 062/173] mm: memcontrol: convert NR_FILE_PMDMAPPED " Andrew Morton
2021-02-24 20:03 ` Andrew Morton [this message]
2021-02-24 20:03 ` [patch 064/173] mm/memcg: revise the using condition of lock_page_lruvec function series Andrew Morton
2021-02-24 20:03 ` [patch 065/173] mm/memcg: remove rcu locking for " Andrew Morton
2021-02-24 20:03 ` [patch 066/173] mm: memcg: add swapcache stat for memcg v2 Andrew Morton
2021-02-24 20:03 ` [patch 067/173] mm: kmem: make __memcg_kmem_(un)charge static Andrew Morton
2021-02-24 20:04 ` [patch 068/173] mm: page_counter: re-layout structure to reduce false sharing Andrew Morton
2021-02-24 20:04 ` [patch 069/173] mm/memcontrol: remove redundant NULL check Andrew Morton
2021-02-24 20:04 ` [patch 070/173] mm: memcontrol: replace the loop with a list_for_each_entry() Andrew Morton
2021-02-24 20:04 ` [patch 071/173] mm/list_lru.c: remove kvfree_rcu_local() Andrew Morton
2021-02-24 20:04 ` [patch 072/173] fs: buffer: use raw page_memcg() on locked page Andrew Morton
2021-02-24 20:04 ` [patch 073/173] mm: memcontrol: fix swap undercounting in cgroup2 Andrew Morton
2021-02-24 20:04 ` [patch 074/173] mm: memcontrol: fix get_active_memcg return value Andrew Morton
2021-02-24 20:04 ` [patch 075/173] mm: memcontrol: fix slub memory accounting Andrew Morton
2021-02-24 20:04 ` [patch 076/173] mm/mmap.c: remove unnecessary local variable Andrew Morton
2021-02-24 20:04 ` [patch 077/173] mm/memory.c: fix potential pte_unmap_unlock pte error Andrew Morton
2021-02-24 20:04 ` [patch 078/173] mm/pgtable-generic.c: simplify the VM_BUG_ON condition in pmdp_huge_clear_flush() Andrew Morton
2021-02-24 20:04 ` [patch 079/173] mm/pgtable-generic.c: optimize " Andrew Morton
2021-02-24 20:04 ` [patch 080/173] mm/memory.c: fix potential pte_unmap_unlock pte error Andrew Morton
2021-02-24 20:04 ` [patch 081/173] mm/mprotect.c: optimize error detection in do_mprotect_pkey() Andrew Morton
2021-02-24 20:04 ` [patch 082/173] mm: rmap: explicitly reset vma->anon_vma in unlink_anon_vmas() Andrew Morton
2021-02-24 20:04 ` [patch 083/173] mm: mremap: unlink anon_vmas when mremap with MREMAP_DONTUNMAP success Andrew Morton
2021-02-24 20:04 ` [patch 084/173] mm/page_reporting: use list_entry_is_head() in page_reporting_cycle() Andrew Morton
2021-02-24 20:05 ` [patch 085/173] vmalloc: remove redundant NULL check Andrew Morton
2021-02-24 20:05 ` [patch 086/173] kasan: prefix global functions with kasan_ Andrew Morton
2021-02-24 20:05 ` [patch 087/173] kasan: clarify HW_TAGS impact on TBI Andrew Morton
2021-02-24 20:05 ` [patch 088/173] kasan: clean up comments in tests Andrew Morton
2021-02-24 20:05 ` [patch 089/173] kasan: add macros to simplify checking test constraints Andrew Morton
2021-02-24 20:05 ` [patch 090/173] kasan: add match-all tag tests Andrew Morton
2021-02-24 20:05 ` [patch 091/173] kasan, arm64: allow using KUnit tests with HW_TAGS mode Andrew Morton
2021-02-24 20:05 ` [patch 092/173] kasan: rename CONFIG_TEST_KASAN_MODULE Andrew Morton
2021-02-24 20:05 ` [patch 093/173] kasan: add compiler barriers to KUNIT_EXPECT_KASAN_FAIL Andrew Morton
2021-02-24 20:05 ` [patch 094/173] kasan: adapt kmalloc_uaf2 test to HW_TAGS mode Andrew Morton
2021-02-24 20:05 ` [patch 095/173] kasan: fix memory corruption in kasan_bitops_tags test Andrew Morton
2021-02-24 20:05 ` [patch 096/173] kasan: move _RET_IP_ to inline wrappers Andrew Morton
2021-02-24 20:05 ` [patch 097/173] kasan: fix bug detection via ksize for HW_TAGS mode Andrew Morton
2021-02-24 20:05 ` [patch 098/173] kasan: add proper page allocator tests Andrew Morton
2021-02-24 20:05 ` [patch 099/173] kasan: add a test for kmem_cache_alloc/free_bulk Andrew Morton
2021-02-24 20:06 ` [patch 100/173] kasan: don't run tests when KASAN is not enabled Andrew Morton
2021-02-24 20:06 ` [patch 101/173] kasan: remove redundant config option Andrew Morton
2021-02-24 20:06 ` [patch 102/173] mm: fix prototype warning from kernel test robot Andrew Morton
2021-02-24 20:06 ` [patch 103/173] mm: rename memmap_init() and memmap_init_zone() Andrew Morton
2021-02-24 20:06 ` [patch 104/173] mm: simplify parater of function memmap_init_zone() Andrew Morton
2021-02-24 20:06 ` [patch 105/173] mm: simplify parameter of setup_usemap() Andrew Morton
2021-02-24 20:06 ` [patch 106/173] mm: remove unneeded local variable in free_area_init_core Andrew Morton
2021-02-24 20:06 ` [patch 107/173] video: fbdev: acornfb: remove free_unused_pages() Andrew Morton
2021-02-24 20:06 ` [patch 108/173] mm: simplify free_highmem_page() and free_reserved_page() Andrew Morton
2021-02-24 20:06 ` [patch 109/173] mm/gfp: add kernel-doc for gfp_t Andrew Morton
2021-02-24 20:06 ` [patch 110/173] mm,hwpoison: send SIGBUS to PF_MCE_EARLY processes on action required events Andrew Morton
2021-02-24 20:06 ` [patch 111/173] mm/huge_memory.c: update tlb entry if pmd is changed Andrew Morton
2021-02-24 20:06 ` [patch 112/173] MIPS: do not call flush_tlb_all when setting pmd entry Andrew Morton
2021-02-24 20:06 ` [patch 113/173] mm/hugetlb: fix potential double free in hugetlb_register_node() error path Andrew Morton
2021-02-24 20:06 ` [patch 114/173] mm/hugetlb.c: fix unnecessary address expansion of pmd sharing Andrew Morton
2021-02-24 20:06 ` [patch 115/173] mm/hugetlb: avoid unnecessary hugetlb_acct_memory() call Andrew Morton
2021-02-24 20:07 ` [patch 116/173] mm/hugetlb: use helper huge_page_order and pages_per_huge_page Andrew Morton
2021-02-24 20:07 ` [patch 117/173] mm/hugetlb: fix use after free when subpool max_hpages accounting is not enabled Andrew Morton
2021-02-24 20:07 ` [patch 118/173] mm/hugetlb: simplify the calculation of variables Andrew Morton
2021-02-24 20:07 ` [patch 119/173] mm/hugetlb: grab head page refcount once for group of subpages Andrew Morton
2021-02-24 20:07 ` [patch 120/173] mm/hugetlb: refactor subpage recording Andrew Morton
2021-02-24 20:07 ` [patch 121/173] mm/hugetlb: fix some comment typos Andrew Morton
2021-02-24 20:07 ` [patch 122/173] mm/hugetlb: remove redundant check in preparing and destroying gigantic page Andrew Morton
2021-02-24 20:07 ` [patch 123/173] mm/hugetlb.c: fix typos in comments Andrew Morton
2021-02-24 20:07 ` [patch 124/173] mm/huge_memory.c: remove unused return value of set_huge_zero_page() Andrew Morton
2021-02-24 20:07 ` [patch 125/173] mm/pmem: avoid inserting hugepage PTE entry with fsdax if hugepage support is disabled Andrew Morton
2021-02-24 20:07 ` [patch 126/173] hugetlb_cgroup: use helper pages_per_huge_page() in hugetlb_cgroup Andrew Morton
2021-02-24 20:07 ` [patch 127/173] mm/hugetlb: use helper function range_in_vma() in page_table_shareable() Andrew Morton
2021-02-24 20:07 ` [patch 128/173] mm/hugetlb: remove unnecessary VM_BUG_ON_PAGE on putback_active_hugepage() Andrew Morton
2021-02-24 20:07 ` [patch 129/173] mm/hugetlb: use helper huge_page_size() to get hugepage size Andrew Morton
2021-02-24 20:07 ` [patch 130/173] hugetlb: fix update_and_free_page contig page struct assumption Andrew Morton
2021-02-24 20:07 ` [patch 131/173] hugetlb: fix copy_huge_page_from_user " Andrew Morton
2021-02-24 20:07 ` [patch 132/173] mm/hugetlb: suppress wrong warning info when alloc gigantic page Andrew Morton
2021-02-24 20:08 ` [patch 133/173] mm/vmscan: __isolate_lru_page_prepare() cleanup Andrew Morton
2021-02-24 20:08 ` [patch 134/173] mm/workingset.c: avoid unnecessary max_nodes estimation in count_shadow_nodes() Andrew Morton
2021-02-24 20:08 ` [patch 135/173] mm/vmscan.c: use add_page_to_lru_list() Andrew Morton
2021-02-24 20:08 ` [patch 136/173] include/linux/mm_inline.h: shuffle lru list addition and deletion functions Andrew Morton
2021-02-24 20:08 ` [patch 137/173] mm: don't pass "enum lru_list" to lru list addition functions Andrew Morton
2021-02-24 20:08 ` [patch 138/173] mm/swap.c: don't pass "enum lru_list" to trace_mm_lru_insertion() Andrew Morton
2021-02-24 20:08 ` [patch 139/173] mm/swap.c: don't pass "enum lru_list" to del_page_from_lru_list() Andrew Morton
2021-02-24 20:08 ` [patch 140/173] mm: add __clear_page_lru_flags() to replace page_off_lru() Andrew Morton
2021-02-24 20:08 ` [patch 141/173] mm: VM_BUG_ON lru page flags Andrew Morton
2021-02-24 20:08 ` [patch 142/173] include/linux/mm_inline.h: fold page_lru_base_type() into its sole caller Andrew Morton
2021-02-24 20:08 ` [patch 143/173] include/linux/mm_inline.h: fold __update_lru_size() " Andrew Morton
2021-02-24 20:08 ` [patch 144/173] mm/vmscan.c: make lruvec_lru_size() static Andrew Morton
2021-02-24 20:08 ` [patch 145/173] mm: workingset: clarify eviction order and distance calculation Andrew Morton
2021-02-24 20:08 ` [patch 146/173] hugetlb: use page.private for hugetlb specific page flags Andrew Morton
2021-02-24 20:08 ` [patch 147/173] hugetlb: convert page_huge_active() HPageMigratable flag Andrew Morton
2021-02-24 20:09 ` [patch 148/173] hugetlb: convert PageHugeTemporary() to HPageTemporary flag Andrew Morton
2021-02-24 20:09 ` [patch 149/173] hugetlb: convert PageHugeFreed to HPageFreed flag Andrew Morton
2021-02-24 20:09 ` [patch 150/173] include/linux/hugetlb.h: add synchronization information for new hugetlb specific flags Andrew Morton
2021-02-24 20:09 ` [patch 151/173] hugetlb: fix uninitialized subpool pointer Andrew Morton
2021-02-24 20:09 ` [patch 152/173] mm/vmscan: restore zone_reclaim_mode ABI Andrew Morton
2021-02-24 20:09 ` [patch 153/173] z3fold: remove unused attribute for release_z3fold_page Andrew Morton
2021-02-24 20:09 ` [patch 154/173] z3fold: simplify the zhdr initialization code in init_z3fold_page() Andrew Morton
2021-02-24 20:09 ` [patch 155/173] mm/compaction: remove rcu_read_lock during page compaction Andrew Morton
2021-02-24 20:09 ` [patch 156/173] mm/compaction: remove duplicated VM_BUG_ON_PAGE !PageLocked Andrew Morton
2021-02-24 20:09 ` [patch 157/173] mm/compaction: correct deferral logic for proactive compaction Andrew Morton
2021-02-24 20:09 ` [patch 158/173] mm/compaction: fix misbehaviors of fast_find_migrateblock() Andrew Morton
2021-02-24 20:09 ` [patch 159/173] mm, compaction: make fast_isolate_freepages() stay within zone Andrew Morton
2021-02-24 20:09 ` [patch 160/173] numa balancing: migrate on fault among multiple bound nodes Andrew Morton
2021-02-24 20:09 ` [patch 161/173] mm/mempolicy: use helper range_in_vma() in queue_pages_test_walk() Andrew Morton
2021-02-24 20:09 ` [patch 162/173] mm, oom: fix a comment in dump_task() Andrew Morton
2021-02-24 20:09 ` [patch 163/173] mm/hugetlb: change hugetlb_reserve_pages() to type bool Andrew Morton
2021-02-24 20:09 ` [patch 164/173] hugetlbfs: remove special hugetlbfs_set_page_dirty() Andrew Morton
2021-02-24 20:10 ` [patch 165/173] hugetlbfs: remove useless BUG_ON(!inode) in hugetlbfs_setattr() Andrew Morton
2021-02-24 20:10 ` [patch 166/173] hugetlbfs: use helper macro default_hstate in init_hugetlbfs_fs Andrew Morton
2021-02-24 20:10 ` [patch 167/173] hugetlbfs: correct obsolete function name in hugetlbfs_read_iter() Andrew Morton
2021-02-24 20:10 ` [patch 168/173] hugetlbfs: remove meaningless variable avoid_reserve Andrew Morton
2021-02-24 20:10 ` [patch 169/173] hugetlbfs: make hugepage size conversion more readable Andrew Morton
2021-02-24 20:10 ` [patch 170/173] hugetlbfs: correct some obsolete comments about inode i_mutex Andrew Morton
2021-02-24 20:10 ` [patch 171/173] hugetlbfs: fix some comment typos Andrew Morton
2021-02-24 20:10 ` [patch 172/173] hugetlbfs: remove unneeded return value of hugetlb_vmtruncate() Andrew Morton
2021-02-24 20:10 ` [patch 173/173] mm/migrate: remove unneeded semicolons Andrew Morton
2021-02-24 21:30 ` incoming Linus Torvalds
2021-02-24 21:37 ` incoming Linus Torvalds
2021-02-25 8:53 ` incoming Arnd Bergmann
2021-02-25 9:12 ` incoming Andrey Ryabinin
2021-02-25 11:07 ` incoming Walter Wu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210224200343.eA4DvW2aL%akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=adobriyan@gmail.com \
--cc=feng.tang@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=iamjoonsoo.kim@lge.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=mm-commits@vger.kernel.org \
--cc=neilb@suse.de \
--cc=pankaj.gupta@cloud.ionos.com \
--cc=rafael@kernel.org \
--cc=rdunlap@infradead.org \
--cc=samitolvanen@google.com \
--cc=shakeelb@google.com \
--cc=songmuchun@bytedance.com \
--cc=torvalds@linux-foundation.org \
--cc=vdavydov.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).