From: Andrew Morton <akpm@linux-foundation.org>
To: akpm@linux-foundation.org, anshuman.khandual@arm.com,
dan.j.williams@intel.com, dave.hansen@linux.intel.com,
david@redhat.com, gregkh@linuxfoundation.org,
jasowang@redhat.com, lenb@kernel.org, linux-mm@kvack.org,
mhocko@kernel.org, mkedzier@redhat.com,
mm-commits@vger.kernel.org, mst@redhat.com, osalvador@suse.de,
pankaj.gupta.linux@gmail.com, pasha.tatashin@soleen.com,
rafael.j.wysocki@intel.com, richard.weiyang@linux.alibaba.com,
rjw@rjwysocki.net, rppt@kernel.org, teawater@gmail.com,
torvalds@linux-foundation.org, vbabka@suse.cz,
vkuznets@redhat.com
Subject: [patch 049/147] mm/memory_hotplug: memory group aware "auto-movable" online policy
Date: Tue, 07 Sep 2021 19:55:45 -0700 [thread overview]
Message-ID: <20210908025545.A2KTA_MEs%akpm@linux-foundation.org> (raw)
In-Reply-To: <20210907195226.14b1d22a07c085b22968b933@linux-foundation.org>
From: David Hildenbrand <david@redhat.com>
Subject: mm/memory_hotplug: memory group aware "auto-movable" online policy
Use memory groups to improve our "auto-movable" onlining policy:
1. For static memory groups (e.g., a DIMM), online a memory block MOVABLE
only if all other memory blocks in the group are either MOVABLE or could
be onlined MOVABLE. A DIMM will either be MOVABLE or not, not a mixture.
2. For dynamic memory groups (e.g., a virtio-mem device), online a
memory block MOVABLE only if all other memory blocks inside the
current unit are either MOVABLE or could be onlined MOVABLE. For a
virtio-mem device with a device block size with 512 MiB, all 128 MiB
memory blocks wihin a 512 MiB unit will either be MOVABLE or not, not
a mixture.
We have to pass the memory group to zone_for_pfn_range() to take the
memory group into account.
Note: for now, there seems to be no compelling reason to make this
behavior configurable.
Link: https://lkml.kernel.org/r/20210806124715.17090-9-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Hui Zhu <teawater@gmail.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Len Brown <lenb@kernel.org>
Cc: Marek Kedzierski <mkedzier@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Wei Yang <richard.weiyang@linux.alibaba.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/base/memory.c | 18 ++++++-----
include/linux/memory_hotplug.h | 3 +
mm/memory_hotplug.c | 48 +++++++++++++++++++++++++++++--
3 files changed, 57 insertions(+), 12 deletions(-)
--- a/drivers/base/memory.c~mm-memory_hotplug-memory-group-aware-auto-movable-online-policy
+++ a/drivers/base/memory.c
@@ -182,7 +182,8 @@ static int memory_block_online(struct me
struct zone *zone;
int ret;
- zone = zone_for_pfn_range(mem->online_type, mem->nid, start_pfn, nr_pages);
+ zone = zone_for_pfn_range(mem->online_type, mem->nid, mem->group,
+ start_pfn, nr_pages);
/*
* Although vmemmap pages have a different lifecycle than the pages
@@ -379,12 +380,13 @@ static ssize_t phys_device_show(struct d
#ifdef CONFIG_MEMORY_HOTREMOVE
static int print_allowed_zone(char *buf, int len, int nid,
+ struct memory_group *group,
unsigned long start_pfn, unsigned long nr_pages,
int online_type, struct zone *default_zone)
{
struct zone *zone;
- zone = zone_for_pfn_range(online_type, nid, start_pfn, nr_pages);
+ zone = zone_for_pfn_range(online_type, nid, group, start_pfn, nr_pages);
if (zone == default_zone)
return 0;
@@ -397,9 +399,10 @@ static ssize_t valid_zones_show(struct d
struct memory_block *mem = to_memory_block(dev);
unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr);
unsigned long nr_pages = PAGES_PER_SECTION * sections_per_block;
+ struct memory_group *group = mem->group;
struct zone *default_zone;
+ int nid = mem->nid;
int len = 0;
- int nid;
/*
* Check the existing zone. Make sure that we do that only on the
@@ -418,14 +421,13 @@ static ssize_t valid_zones_show(struct d
goto out;
}
- nid = mem->nid;
- default_zone = zone_for_pfn_range(MMOP_ONLINE, nid, start_pfn,
- nr_pages);
+ default_zone = zone_for_pfn_range(MMOP_ONLINE, nid, group,
+ start_pfn, nr_pages);
len += sysfs_emit_at(buf, len, "%s", default_zone->name);
- len += print_allowed_zone(buf, len, nid, start_pfn, nr_pages,
+ len += print_allowed_zone(buf, len, nid, group, start_pfn, nr_pages,
MMOP_ONLINE_KERNEL, default_zone);
- len += print_allowed_zone(buf, len, nid, start_pfn, nr_pages,
+ len += print_allowed_zone(buf, len, nid, group, start_pfn, nr_pages,
MMOP_ONLINE_MOVABLE, default_zone);
out:
len += sysfs_emit_at(buf, len, "\n");
--- a/include/linux/memory_hotplug.h~mm-memory_hotplug-memory-group-aware-auto-movable-online-policy
+++ a/include/linux/memory_hotplug.h
@@ -349,7 +349,8 @@ extern void sparse_remove_section(struct
extern struct page *sparse_decode_mem_map(unsigned long coded_mem_map,
unsigned long pnum);
extern struct zone *zone_for_pfn_range(int online_type, int nid,
- unsigned long start_pfn, unsigned long nr_pages);
+ struct memory_group *group, unsigned long start_pfn,
+ unsigned long nr_pages);
extern int arch_create_linear_mapping(int nid, u64 start, u64 size,
struct mhp_params *params);
void arch_remove_linear_mapping(u64 start, u64 size);
--- a/mm/memory_hotplug.c~mm-memory_hotplug-memory-group-aware-auto-movable-online-policy
+++ a/mm/memory_hotplug.c
@@ -852,12 +852,53 @@ static struct zone *default_kernel_zone_
* "present pages" is an upper limit that can get reached at runtime. As
* we base our calculations on KERNEL_EARLY, this is not an issue.
*/
-static struct zone *auto_movable_zone_for_pfn(int nid, unsigned long pfn,
+static struct zone *auto_movable_zone_for_pfn(int nid,
+ struct memory_group *group,
+ unsigned long pfn,
unsigned long nr_pages)
{
+ unsigned long online_pages = 0, max_pages, end_pfn;
+ struct page *page;
+
if (!auto_movable_ratio)
goto kernel_zone;
+ if (group && !group->is_dynamic) {
+ max_pages = group->s.max_pages;
+ online_pages = group->present_movable_pages;
+
+ /* If anything is !MOVABLE online the rest !MOVABLE. */
+ if (group->present_kernel_pages)
+ goto kernel_zone;
+ } else if (!group || group->d.unit_pages == nr_pages) {
+ max_pages = nr_pages;
+ } else {
+ max_pages = group->d.unit_pages;
+ /*
+ * Take a look at all online sections in the current unit.
+ * We can safely assume that all pages within a section belong
+ * to the same zone, because dynamic memory groups only deal
+ * with hotplugged memory.
+ */
+ pfn = ALIGN_DOWN(pfn, group->d.unit_pages);
+ end_pfn = pfn + group->d.unit_pages;
+ for (; pfn < end_pfn; pfn += PAGES_PER_SECTION) {
+ page = pfn_to_online_page(pfn);
+ if (!page)
+ continue;
+ /* If anything is !MOVABLE online the rest !MOVABLE. */
+ if (page_zonenum(page) != ZONE_MOVABLE)
+ goto kernel_zone;
+ online_pages += PAGES_PER_SECTION;
+ }
+ }
+
+ /*
+ * Online MOVABLE if we could *currently* online all remaining parts
+ * MOVABLE. We expect to (add+) online them immediately next, so if
+ * nobody interferes, all will be MOVABLE if possible.
+ */
+ nr_pages = max_pages - online_pages;
if (!auto_movable_can_online_movable(NUMA_NO_NODE, nr_pages))
goto kernel_zone;
@@ -897,7 +938,8 @@ static inline struct zone *default_zone_
}
struct zone *zone_for_pfn_range(int online_type, int nid,
- unsigned long start_pfn, unsigned long nr_pages)
+ struct memory_group *group, unsigned long start_pfn,
+ unsigned long nr_pages)
{
if (online_type == MMOP_ONLINE_KERNEL)
return default_kernel_zone_for_pfn(nid, start_pfn, nr_pages);
@@ -906,7 +948,7 @@ struct zone *zone_for_pfn_range(int onli
return &NODE_DATA(nid)->node_zones[ZONE_MOVABLE];
if (online_policy == ONLINE_POLICY_AUTO_MOVABLE)
- return auto_movable_zone_for_pfn(nid, start_pfn, nr_pages);
+ return auto_movable_zone_for_pfn(nid, group, start_pfn, nr_pages);
return default_zone_for_pfn(nid, start_pfn, nr_pages);
}
_
next prev parent reply other threads:[~2021-09-08 2:55 UTC|newest]
Thread overview: 185+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-08 2:52 incoming Andrew Morton
2021-09-08 2:52 ` [patch 001/147] mm, slub: don't call flush_all() from slab_debug_trace_open() Andrew Morton
2021-09-08 2:53 ` [patch 002/147] mm, slub: allocate private object map for debugfs listings Andrew Morton
2021-09-08 2:53 ` [patch 003/147] mm, slub: allocate private object map for validate_slab_cache() Andrew Morton
2021-09-08 2:53 ` [patch 004/147] mm, slub: don't disable irq for debug_check_no_locks_freed() Andrew Morton
2021-09-08 2:53 ` [patch 005/147] mm, slub: remove redundant unfreeze_partials() from put_cpu_partial() Andrew Morton
2021-09-08 2:53 ` [patch 006/147] mm, slub: extract get_partial() from new_slab_objects() Andrew Morton
2021-09-08 2:53 ` [patch 007/147] mm, slub: dissolve new_slab_objects() into ___slab_alloc() Andrew Morton
2021-09-08 2:53 ` [patch 008/147] mm, slub: return slab page from get_partial() and set c->page afterwards Andrew Morton
2021-09-08 2:53 ` [patch 009/147] mm, slub: restructure new page checks in ___slab_alloc() Andrew Morton
2021-09-08 2:53 ` [patch 010/147] mm, slub: simplify kmem_cache_cpu and tid setup Andrew Morton
2021-09-08 2:53 ` [patch 011/147] mm, slub: move disabling/enabling irqs to ___slab_alloc() Andrew Morton
2021-09-08 2:53 ` [patch 012/147] mm, slub: do initial checks in ___slab_alloc() with irqs enabled Andrew Morton
2021-09-08 2:53 ` [patch 013/147] mm, slub: move disabling irqs closer to get_partial() in ___slab_alloc() Andrew Morton
2021-09-08 2:53 ` [patch 014/147] mm, slub: restore irqs around calling new_slab() Andrew Morton
2021-09-08 2:53 ` [patch 015/147] mm, slub: validate slab from partial list or page allocator before making it cpu slab Andrew Morton
2021-09-08 2:53 ` [patch 016/147] mm, slub: check new pages with restored irqs Andrew Morton
2021-09-08 2:53 ` [patch 017/147] mm, slub: stop disabling irqs around get_partial() Andrew Morton
2021-09-08 2:53 ` [patch 018/147] mm, slub: move reset of c->page and freelist out of deactivate_slab() Andrew Morton
2021-09-08 2:53 ` [patch 019/147] mm, slub: make locking in deactivate_slab() irq-safe Andrew Morton
2021-09-08 2:54 ` [patch 020/147] mm, slub: call deactivate_slab() without disabling irqs Andrew Morton
2021-09-08 2:54 ` [patch 021/147] mm, slub: move irq control into unfreeze_partials() Andrew Morton
2021-09-08 2:54 ` [patch 022/147] mm, slub: discard slabs in unfreeze_partials() without irqs disabled Andrew Morton
2021-09-08 2:54 ` [patch 023/147] mm, slub: detach whole partial list at once in unfreeze_partials() Andrew Morton
2021-09-08 2:54 ` [patch 024/147] mm, slub: separate detaching of partial list in unfreeze_partials() from unfreezing Andrew Morton
2021-09-08 2:54 ` [patch 025/147] mm, slub: only disable irq with spin_lock in __unfreeze_partials() Andrew Morton
2021-09-08 2:54 ` [patch 026/147] mm, slub: don't disable irqs in slub_cpu_dead() Andrew Morton
2021-09-08 2:54 ` [patch 027/147] mm, slab: split out the cpu offline variant of flush_slab() Andrew Morton
2021-09-08 2:54 ` [patch 028/147] mm: slub: move flush_cpu_slab() invocations __free_slab() invocations out of IRQ context Andrew Morton
2021-09-08 2:54 ` [patch 029/147] mm: slub: make object_map_lock a raw_spinlock_t Andrew Morton
2021-09-08 2:54 ` [patch 030/147] mm, slub: make slab_lock() disable irqs with PREEMPT_RT Andrew Morton
2021-09-08 2:54 ` [patch 031/147] mm, slub: protect put_cpu_partial() with disabled irqs instead of cmpxchg Andrew Morton
2021-09-08 13:05 ` Jesper Dangaard Brouer
2021-09-08 13:58 ` Vlastimil Babka
2021-09-08 14:55 ` David Hildenbrand
2021-09-08 14:59 ` David Hildenbrand
2021-09-08 17:14 ` Jesper Dangaard Brouer
2021-09-08 17:24 ` David Hildenbrand
2021-09-08 16:11 ` Jesper Dangaard Brouer
2021-09-08 16:31 ` Linus Torvalds
2021-09-08 2:54 ` [patch 032/147] mm, slub: use migrate_disable() on PREEMPT_RT Andrew Morton
2021-09-08 2:54 ` [patch 033/147] mm, slub: convert kmem_cpu_slab protection to local_lock Andrew Morton
2021-09-08 2:54 ` [patch 034/147] memory-hotplug.rst: remove locking details from admin-guide Andrew Morton
2021-09-08 2:54 ` [patch 035/147] memory-hotplug.rst: complete admin-guide overhaul Andrew Morton
2021-09-08 2:54 ` [patch 036/147] mm: remove pfn_valid_within() and CONFIG_HOLES_IN_ZONE Andrew Morton
2021-09-08 2:54 ` [patch 037/147] mm: memory_hotplug: cleanup after removal of pfn_valid_within() Andrew Morton
2021-09-08 2:54 ` [patch 038/147] mm/memory_hotplug: use "unsigned long" for PFN in zone_for_pfn_range() Andrew Morton
2021-09-08 2:55 ` [patch 039/147] mm/memory_hotplug: remove nid parameter from arch_remove_memory() Andrew Morton
2021-09-08 2:55 ` [patch 040/147] mm/memory_hotplug: remove nid parameter from remove_memory() and friends Andrew Morton
2021-09-08 2:55 ` [patch 041/147] ACPI: memhotplug: memory resources cannot be enabled yet Andrew Morton
2021-09-08 2:55 ` [patch 042/147] mm: track present early pages per zone Andrew Morton
2021-09-08 2:55 ` [patch 043/147] mm/memory_hotplug: introduce "auto-movable" online policy Andrew Morton
2021-09-08 2:55 ` [patch 044/147] drivers/base/memory: introduce "memory groups" to logically group memory blocks Andrew Morton
2021-09-08 2:55 ` [patch 045/147] mm/memory_hotplug: track present pages in memory groups Andrew Morton
2021-09-08 2:55 ` [patch 046/147] ACPI: memhotplug: use a single static memory group for a single memory device Andrew Morton
2021-09-08 2:55 ` [patch 047/147] dax/kmem: use a single static memory group for a single probed unit Andrew Morton
2021-09-08 2:55 ` [patch 048/147] virtio-mem: use a single dynamic memory group for a single virtio-mem device Andrew Morton
2021-09-08 2:55 ` Andrew Morton [this message]
2021-09-08 2:55 ` [patch 050/147] mm/memory_hotplug: improved dynamic memory group aware "auto-movable" online policy Andrew Morton
2021-09-08 2:55 ` [patch 051/147] mm/memory_hotplug: use helper zone_is_zone_device() to simplify the code Andrew Morton
2021-09-08 2:55 ` [patch 052/147] mm: remove redundant compound_head() calling Andrew Morton
2021-09-08 2:55 ` [patch 053/147] riscv: only select GENERIC_IOREMAP if MMU support is enabled Andrew Morton
2021-09-08 2:56 ` [patch 054/147] mm: move ioremap_page_range to vmalloc.c Andrew Morton
2021-09-08 2:56 ` [patch 055/147] mm: don't allow executable ioremap mappings Andrew Morton
2021-09-08 2:56 ` [patch 056/147] mm/early_ioremap.c: remove redundant early_ioremap_shutdown() Andrew Morton
2021-09-08 2:56 ` [patch 057/147] highmem: don't disable preemption on RT in kmap_atomic() Andrew Morton
2021-09-08 2:56 ` [patch 058/147] mm: in_irq() cleanup Andrew Morton
2021-09-08 2:56 ` [patch 059/147] mm: introduce PAGEFLAGS_MASK to replace ((1UL << NR_PAGEFLAGS) - 1) Andrew Morton
2021-09-08 2:56 ` [patch 060/147] mm/secretmem: use refcount_t instead of atomic_t Andrew Morton
2021-09-08 2:56 ` [patch 061/147] kfence: show cpu and timestamp in alloc/free info Andrew Morton
2021-09-08 2:56 ` [patch 062/147] kfence: test: fail fast if disabled at boot Andrew Morton
2021-09-08 2:56 ` [patch 063/147] mm: introduce Data Access MONitor (DAMON) Andrew Morton
2021-09-08 2:56 ` [patch 064/147] mm/damon/core: implement region-based sampling Andrew Morton
2021-09-08 2:56 ` [patch 065/147] mm/damon: adaptively adjust regions Andrew Morton
2021-09-08 2:56 ` [patch 066/147] mm/idle_page_tracking: make PG_idle reusable Andrew Morton
2021-09-08 2:56 ` [patch 067/147] mm/damon: implement primitives for the virtual memory address spaces Andrew Morton
2021-09-08 2:56 ` [patch 068/147] mm/damon: add a tracepoint Andrew Morton
2021-09-08 2:56 ` [patch 069/147] mm/damon: implement a debugfs-based user space interface Andrew Morton
2021-09-08 2:56 ` [patch 070/147] mm/damon/dbgfs: export kdamond pid to the user space Andrew Morton
2021-09-08 2:57 ` [patch 071/147] mm/damon/dbgfs: support multiple contexts Andrew Morton
2021-09-08 2:57 ` [patch 072/147] Documentation: add documents for DAMON Andrew Morton
2021-09-08 2:57 ` [patch 073/147] mm/damon: add kunit tests Andrew Morton
2021-09-08 2:57 ` [patch 074/147] mm/damon: add user space selftests Andrew Morton
2021-09-08 2:57 ` [patch 075/147] MAINTAINERS: update for DAMON Andrew Morton
2021-09-08 2:57 ` [patch 076/147] alpha: agp: make empty macros use do-while-0 style Andrew Morton
2021-09-08 2:57 ` [patch 077/147] alpha: pci-sysfs: fix all kernel-doc warnings Andrew Morton
2021-09-08 2:57 ` [patch 078/147] percpu: remove export of pcpu_base_addr Andrew Morton
2021-09-08 2:57 ` [patch 079/147] fs/proc/kcore.c: add mmap interface Andrew Morton
2021-09-08 18:13 ` Linus Torvalds
[not found] ` <fab939c0-42c1-f6ee-f7f8-14280cb5b411@bytedance.com>
2021-09-09 17:32 ` [External] " Linus Torvalds
2021-09-09 17:34 ` Linus Torvalds
2021-09-10 3:18 ` Feng Zhou
2021-09-10 10:08 ` David Hildenbrand
2021-09-10 12:00 ` Mike Rapoport
2021-09-10 12:02 ` David Hildenbrand
2021-09-08 2:57 ` [patch 080/147] proc: stop using seq_get_buf in proc_task_name Andrew Morton
2021-09-08 2:57 ` [patch 081/147] connector: send event on write to /proc/[pid]/comm Andrew Morton
2021-09-08 2:57 ` [patch 082/147] arch: Kconfig: fix spelling mistake "seperate" -> "separate" Andrew Morton
2021-09-08 2:57 ` [patch 083/147] include/linux/once.h: fix trivia typo Not -> Note Andrew Morton
2021-09-08 2:57 ` [patch 084/147] units: change from 'L' to 'UL' Andrew Morton
2021-09-08 2:57 ` [patch 085/147] units: add the HZ macros Andrew Morton
2021-09-08 2:57 ` [patch 086/147] thermal/drivers/devfreq_cooling: use " Andrew Morton
2021-09-08 2:57 ` [patch 087/147] devfreq: " Andrew Morton
2021-09-08 2:57 ` [patch 088/147] iio/drivers/as73211: " Andrew Morton
2021-09-08 2:58 ` [patch 089/147] hwmon/drivers/mr75203: " Andrew Morton
2021-09-08 2:58 ` [patch 090/147] iio/drivers/hid-sensor: " Andrew Morton
2021-09-08 2:58 ` [patch 091/147] i2c/drivers/ov02q10: " Andrew Morton
2021-09-08 2:58 ` [patch 092/147] mtd/drivers/nand: " Andrew Morton
2021-09-08 6:39 ` Miquel Raynal
2021-09-08 2:58 ` [patch 093/147] phy/drivers/stm32: " Andrew Morton
2021-09-08 2:58 ` [patch 094/147] kernel/acct.c: use dedicated helper to access rlimit values Andrew Morton
2021-09-08 2:58 ` [patch 095/147] profiling: fix shift-out-of-bounds bugs Andrew Morton
2021-09-08 2:58 ` [patch 096/147] MAINTAINERS: update ClangBuiltLinux mailing list Andrew Morton
2021-09-08 2:58 ` [patch 097/147] Documentation/llvm: update " Andrew Morton
2021-09-08 2:58 ` [patch 098/147] Documentation/llvm: update IRC location Andrew Morton
2021-09-08 2:58 ` [patch 099/147] math: make RATIONAL tristate Andrew Morton
2021-09-08 2:58 ` [patch 100/147] math: RATIONAL_KUNIT_TEST should depend on RATIONAL instead of selecting it Andrew Morton
2021-09-08 2:58 ` [patch 101/147] lib/string: optimized memcpy Andrew Morton
2021-09-08 18:26 ` Linus Torvalds
2021-09-08 2:58 ` [patch 102/147] lib/string: optimized memmove Andrew Morton
2021-09-08 18:29 ` Linus Torvalds
2021-09-09 8:28 ` David Laight
2021-09-08 2:58 ` [patch 103/147] lib/string: optimized memset Andrew Morton
2021-09-08 18:34 ` Linus Torvalds
2021-09-09 10:27 ` Matteo Croce
2021-09-08 2:58 ` [patch 104/147] lib/test: convert test_sort.c to use KUnit Andrew Morton
2021-09-08 2:58 ` [patch 105/147] lib/dump_stack: correct kernel-doc notation Andrew Morton
2021-09-08 2:58 ` [patch 106/147] lib/iov_iter.c: fix kernel-doc warnings Andrew Morton
2021-09-08 2:58 ` [patch 107/147] bitops: protect find_first_{,zero}_bit properly Andrew Morton
2021-09-08 2:59 ` [patch 108/147] bitops: move find_bit_*_le functions from le.h to find.h Andrew Morton
2021-09-08 18:37 ` Linus Torvalds
2021-09-08 19:38 ` Yury Norov
2021-09-08 19:46 ` Linus Torvalds
2021-09-08 19:49 ` Andrew Morton
2021-09-08 19:56 ` Linus Torvalds
2021-09-08 20:08 ` Linus Torvalds
2021-09-08 20:16 ` Yury Norov
2021-09-08 2:59 ` [patch 109/147] include: move find.h from asm_generic to linux Andrew Morton
2021-09-08 2:59 ` [patch 110/147] arch: remove GENERIC_FIND_FIRST_BIT entirely Andrew Morton
2021-09-08 2:59 ` [patch 111/147] lib: add find_first_and_bit() Andrew Morton
2021-09-08 2:59 ` [patch 112/147] cpumask: use find_first_and_bit() Andrew Morton
2021-09-08 2:59 ` [patch 113/147] all: replace find_next{,_zero}_bit with find_first{,_zero}_bit where appropriate Andrew Morton
2021-09-08 2:59 ` [patch 114/147] tools: sync tools/bitmap with mother linux Andrew Morton
2021-09-08 2:59 ` [patch 115/147] cpumask: replace cpumask_next_* with cpumask_first_* where appropriate Andrew Morton
2021-09-08 2:59 ` [patch 116/147] include/linux: move for_each_bit() macros from bitops.h to find.h Andrew Morton
2021-09-08 2:59 ` [patch 117/147] find: micro-optimize for_each_{set,clear}_bit() Andrew Morton
2021-09-08 2:59 ` [patch 118/147] bitops: replace for_each_*_bit_from() with for_each_*_bit() where appropriate Andrew Morton
2021-09-08 2:59 ` [patch 119/147] tools: rename bitmap_alloc() to bitmap_zalloc() Andrew Morton
2021-09-08 2:59 ` [patch 120/147] mm/percpu: micro-optimize pcpu_is_populated() Andrew Morton
2021-09-08 2:59 ` [patch 121/147] bitmap: unify find_bit operations Andrew Morton
2021-09-08 2:59 ` [patch 122/147] lib: bitmap: add performance test for bitmap_print_to_pagebuf Andrew Morton
2021-09-08 2:59 ` [patch 123/147] vsprintf: rework bitmap_list_string Andrew Morton
2021-09-08 2:59 ` [patch 124/147] checkpatch: support wide strings Andrew Morton
2021-09-08 2:59 ` [patch 125/147] checkpatch: make email address check case insensitive Andrew Morton
2021-09-08 2:59 ` [patch 126/147] checkpatch: improve GIT_COMMIT_ID test Andrew Morton
2021-09-08 3:00 ` [patch 127/147] fs/epoll: use a per-cpu counter for user's watches count Andrew Morton
2021-09-08 3:00 ` [patch 128/147] init: move usermodehelper_enable() to populate_rootfs() Andrew Morton
2021-09-08 15:44 ` Luis Chamberlain
2021-09-10 8:12 ` Rasmus Villemoes
2021-09-10 17:47 ` H. Peter Anvin
2021-09-10 17:51 ` Luis Chamberlain
2021-09-08 3:00 ` [patch 130/147] nilfs2: fix memory leak in nilfs_sysfs_create_device_group Andrew Morton
2021-09-08 3:00 ` [patch 131/147] nilfs2: fix NULL pointer in nilfs_##name##_attr_release Andrew Morton
2021-09-08 3:00 ` [patch 132/147] nilfs2: fix memory leak in nilfs_sysfs_create_##name##_group Andrew Morton
2021-09-08 3:00 ` [patch 133/147] nilfs2: fix memory leak in nilfs_sysfs_delete_##name##_group Andrew Morton
2021-09-08 3:00 ` [patch 134/147] nilfs2: fix memory leak in nilfs_sysfs_create_snapshot_group Andrew Morton
2021-09-08 3:00 ` [patch 135/147] nilfs2: fix memory leak in nilfs_sysfs_delete_snapshot_group Andrew Morton
2021-09-08 3:00 ` [patch 136/147] nilfs2: use refcount_dec_and_lock() to fix potential UAF Andrew Morton
2021-09-24 10:35 ` Pavel Machek
2021-09-24 11:09 ` Ryusuke Konishi
2021-09-24 12:12 ` Matthew Wilcox
2021-09-24 15:09 ` Ryusuke Konishi
2021-09-08 3:00 ` [patch 137/147] fs/coredump.c: log if a core dump is aborted due to changed file permissions Andrew Morton
2021-09-08 3:00 ` [patch 138/147] coredump: fix memleak in dump_vma_snapshot() Andrew Morton
2021-09-08 3:00 ` [patch 139/147] kernel/fork.c: unexport get_{mm,task}_exe_file Andrew Morton
2021-09-08 3:00 ` [patch 140/147] pid: cleanup the stale comment mentioning pidmap_init() Andrew Morton
2021-09-08 3:00 ` [patch 141/147] prctl: allow to setup brk for et_dyn executables Andrew Morton
2021-09-08 3:00 ` [patch 142/147] configs: remove the obsolete CONFIG_INPUT_POLLDEV Andrew Morton
2021-09-08 3:00 ` [patch 143/147] Kconfig.debug: drop selecting non-existing HARDLOCKUP_DETECTOR_ARCH Andrew Morton
2021-09-08 3:00 ` [patch 144/147] selftests/memfd: remove unused variable Andrew Morton
2021-09-08 3:00 ` [patch 145/147] ipc: replace costly bailout check in sysvipc_find_ipc() Andrew Morton
2021-09-08 3:00 ` [patch 146/147] mm/workingset: correct kernel-doc notations Andrew Morton
2021-09-08 3:00 ` [patch 147/147] scripts: check_extable: fix typo in user error message Andrew Morton
2021-09-08 3:16 ` [patch 129/147] trap: cleanup trap_init() Andrew Morton
2021-09-08 8:57 ` incoming Vlastimil Babka
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=20210908025545.A2KTA_MEs%akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=anshuman.khandual@arm.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=jasowang@redhat.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=mkedzier@redhat.com \
--cc=mm-commits@vger.kernel.org \
--cc=mst@redhat.com \
--cc=osalvador@suse.de \
--cc=pankaj.gupta.linux@gmail.com \
--cc=pasha.tatashin@soleen.com \
--cc=rafael.j.wysocki@intel.com \
--cc=richard.weiyang@linux.alibaba.com \
--cc=rjw@rjwysocki.net \
--cc=rppt@kernel.org \
--cc=teawater@gmail.com \
--cc=torvalds@linux-foundation.org \
--cc=vbabka@suse.cz \
--cc=vkuznets@redhat.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).