From: Mike Rapoport <rppt@kernel.org>
To: David Hildenbrand <david@redhat.com>
Cc: "Mika Penttilä" <mpenttil@redhat.com>,
linux-kernel@vger.kernel.org,
"Alexander Potapenko" <glider@google.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Brendan Jackman" <jackmanb@google.com>,
"Christoph Lameter" <cl@gentwo.org>,
"Dennis Zhou" <dennis@kernel.org>,
"Dmitry Vyukov" <dvyukov@google.com>,
dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
iommu@lists.linux.dev, io-uring@vger.kernel.org,
"Jason Gunthorpe" <jgg@nvidia.com>,
"Jens Axboe" <axboe@kernel.dk>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"John Hubbard" <jhubbard@nvidia.com>,
kasan-dev@googlegroups.com, kvm@vger.kernel.org,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
linux-arm-kernel@axis.com, linux-arm-kernel@lists.infradead.org,
linux-crypto@vger.kernel.org, linux-ide@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-mips@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-scsi@vger.kernel.org,
"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
"Marco Elver" <elver@google.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Michal Hocko" <mhocko@suse.com>,
"Muchun Song" <muchun.song@linux.dev>,
netdev@vger.kernel.org, "Oscar Salvador" <osalvador@suse.de>,
"Peter Xu" <peterx@redhat.com>,
"Robin Murphy" <robin.murphy@arm.com>,
"Suren Baghdasaryan" <surenb@google.com>,
"Tejun Heo" <tj@kernel.org>,
virtualization@lists.linux.dev,
"Vlastimil Babka" <vbabka@suse.cz>,
wireguard@lists.zx2c4.com, x86@kernel.org,
"Zi Yan" <ziy@nvidia.com>
Subject: Re: [PATCH RFC 10/35] mm/hugetlb: cleanup hugetlb_folio_init_tail_vmemmap()
Date: Mon, 25 Aug 2025 19:17:02 +0300 [thread overview]
Message-ID: <aKyMfvWe8JetkbRL@kernel.org> (raw)
In-Reply-To: <f8140a17-c4ec-489b-b314-d45abe48bf36@redhat.com>
On Mon, Aug 25, 2025 at 05:42:33PM +0200, David Hildenbrand wrote:
> On 25.08.25 16:59, Mike Rapoport wrote:
> > On Mon, Aug 25, 2025 at 04:38:03PM +0200, David Hildenbrand wrote:
> > > On 25.08.25 16:32, Mike Rapoport wrote:
> > > > On Mon, Aug 25, 2025 at 02:48:58PM +0200, David Hildenbrand wrote:
> > > > > On 23.08.25 10:59, Mike Rapoport wrote:
> > > > > > On Fri, Aug 22, 2025 at 08:24:31AM +0200, David Hildenbrand wrote:
> > > > > > > On 22.08.25 06:09, Mika Penttilä wrote:
> > > > > > > >
> > > > > > > > On 8/21/25 23:06, David Hildenbrand wrote:
> > > > > > > >
> > > > > > > > > All pages were already initialized and set to PageReserved() with a
> > > > > > > > > refcount of 1 by MM init code.
> > > > > > > >
> > > > > > > > Just to be sure, how is this working with MEMBLOCK_RSRV_NOINIT, where MM is supposed not to
> > > > > > > > initialize struct pages?
> > > > > > >
> > > > > > > Excellent point, I did not know about that one.
> > > > > > >
> > > > > > > Spotting that we don't do the same for the head page made me assume that
> > > > > > > it's just a misuse of __init_single_page().
> > > > > > >
> > > > > > > But the nasty thing is that we use memblock_reserved_mark_noinit() to only
> > > > > > > mark the tail pages ...
> > > > > >
> > > > > > And even nastier thing is that when CONFIG_DEFERRED_STRUCT_PAGE_INIT is
> > > > > > disabled struct pages are initialized regardless of
> > > > > > memblock_reserved_mark_noinit().
> > > > > >
> > > > > > I think this patch should go in before your updates:
> > > > >
> > > > > Shouldn't we fix this in memblock code?
> > > > >
> > > > > Hacking around that in the memblock_reserved_mark_noinit() user sound wrong
> > > > > -- and nothing in the doc of memblock_reserved_mark_noinit() spells that
> > > > > behavior out.
> > > >
> > > > We can surely update the docs, but unfortunately I don't see how to avoid
> > > > hacking around it in hugetlb.
> > > > Since it's used to optimise HVO even further to the point hugetlb open
> > > > codes memmap initialization, I think it's fair that it should deal with all
> > > > possible configurations.
> > >
> > > Remind me, why can't we support memblock_reserved_mark_noinit() when
> > > CONFIG_DEFERRED_STRUCT_PAGE_INIT is disabled?
> >
> > When CONFIG_DEFERRED_STRUCT_PAGE_INIT is disabled we initialize the entire
> > memmap early (setup_arch()->free_area_init()), and we may have a bunch of
> > memblock_reserved_mark_noinit() afterwards
>
> Oh, you mean that we get effective memblock modifications after already
> initializing the memmap.
>
> That sounds ... interesting :)
It's memmap, not the free lists. Without deferred init, memblock is active
for a while after memmap initialized and before the memory goes to the free
lists.
> So yeah, we have to document this for memblock_reserved_mark_noinit().
>
> Is it also a problem for kexec_handover?
With KHO it's also interesting, but it does not support deferred struct
page init for now :)
> We should do something like:
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 154f1d73b61f2..ed4c563d72c32 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1091,13 +1091,16 @@ int __init_memblock memblock_clear_nomap(phys_addr_t base, phys_addr_t size)
> /**
> * memblock_reserved_mark_noinit - Mark a reserved memory region with flag
> - * MEMBLOCK_RSRV_NOINIT which results in the struct pages not being initialized
> - * for this region.
> + * MEMBLOCK_RSRV_NOINIT which allows for the "struct pages" corresponding
> + * to this region not getting initialized, because the caller will take
> + * care of it.
> * @base: the base phys addr of the region
> * @size: the size of the region
> *
> - * struct pages will not be initialized for reserved memory regions marked with
> - * %MEMBLOCK_RSRV_NOINIT.
> + * "struct pages" will not be initialized for reserved memory regions marked
> + * with %MEMBLOCK_RSRV_NOINIT if this function is called before initialization
> + * code runs. Without CONFIG_DEFERRED_STRUCT_PAGE_INIT, it is more likely
> + * that this function is not effective.
> *
> * Return: 0 on success, -errno on failure.
> */
I have a different version :)
diff --git a/include/linux/memblock.h b/include/linux/memblock.h
index b96746376e17..d20d091c6343 100644
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@ -40,8 +40,9 @@ extern unsigned long long max_possible_pfn;
* via a driver, and never indicated in the firmware-provided memory map as
* system RAM. This corresponds to IORESOURCE_SYSRAM_DRIVER_MANAGED in the
* kernel resource tree.
- * @MEMBLOCK_RSRV_NOINIT: memory region for which struct pages are
- * not initialized (only for reserved regions).
+ * @MEMBLOCK_RSRV_NOINIT: memory region for which struct pages don't have
+ * PG_Reserved set and are completely not initialized when
+ * %CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled (only for reserved regions).
* @MEMBLOCK_RSRV_KERN: memory region that is reserved for kernel use,
* either explictitly with memblock_reserve_kern() or via memblock
* allocation APIs. All memblock allocations set this flag.
diff --git a/mm/memblock.c b/mm/memblock.c
index 154f1d73b61f..02de5ffb085b 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1091,13 +1091,15 @@ int __init_memblock memblock_clear_nomap(phys_addr_t base, phys_addr_t size)
/**
* memblock_reserved_mark_noinit - Mark a reserved memory region with flag
- * MEMBLOCK_RSRV_NOINIT which results in the struct pages not being initialized
- * for this region.
+ * MEMBLOCK_RSRV_NOINIT
+ *
* @base: the base phys addr of the region
* @size: the size of the region
*
- * struct pages will not be initialized for reserved memory regions marked with
- * %MEMBLOCK_RSRV_NOINIT.
+ * The struct pages for the reserved regions marked %MEMBLOCK_RSRV_NOINIT will
+ * not have %PG_Reserved flag set.
+ * When %CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled, setting this flags also
+ * completly bypasses the initialization of struct pages for this region.
*
* Return: 0 on success, -errno on failure.
*/
> Optimizing the hugetlb code could be done, but I am not sure how high
> the priority is (nobody complained so far about the double init).
>
> --
> Cheers
>
> David / dhildenb
>
--
Sincerely yours,
Mike.
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: David Hildenbrand <david@redhat.com>
Cc: "Mika Penttilä" <mpenttil@redhat.com>,
linux-kernel@vger.kernel.org,
"Alexander Potapenko" <glider@google.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Brendan Jackman" <jackmanb@google.com>,
"Christoph Lameter" <cl@gentwo.org>,
"Dennis Zhou" <dennis@kernel.org>,
"Dmitry Vyukov" <dvyukov@google.com>,
dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
iommu@lists.linux.dev, io-uring@vger.kernel.org,
"Jason Gunthorpe" <jgg@nvidia.com>,
"Jens Axboe" <axboe@kernel.dk>,
"Johannes Weiner" <hannes@cmpxchg.org>,
"John Hubbard" <jhubbard@nvidia.com>,
kasan-dev@googlegroups.com, kvm@vger.kernel.org,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
linux-arm-kernel@axis.com, linux-arm-kernel@lists.infradead.org,
linux-crypto@vger.kernel.org, linux-ide@vger.kernel.org,
linux-kselftest@vger.kernel.org, linux-mips@vger.kernel.org,
linux-mmc@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-scsi@vger.kernel.org,
"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
"Marco Elver" <elver@google.com>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Michal Hocko" <mhocko@suse.com>,
"Muchun Song" <muchun.song@linux.dev>,
netdev@vger.kernel.org, "Oscar Salvador" <osalvador@suse.de>,
"Peter Xu" <peterx@redhat.com>,
"Robin Murphy" <robin.murphy@arm.com>,
"Suren Baghdasaryan" <surenb@google.com>,
"Tejun Heo" <tj@kernel.org>,
virtualization@lists.linux.dev,
"Vlastimil Babka" <vbabka@suse.cz>,
wireguard@lists.zx2c4.com, x86@kernel.org,
"Zi Yan" <ziy@nvidia.com>
Subject: Re: [PATCH RFC 10/35] mm/hugetlb: cleanup hugetlb_folio_init_tail_vmemmap()
Date: Mon, 25 Aug 2025 19:17:02 +0300 [thread overview]
Message-ID: <aKyMfvWe8JetkbRL@kernel.org> (raw)
In-Reply-To: <f8140a17-c4ec-489b-b314-d45abe48bf36@redhat.com>
On Mon, Aug 25, 2025 at 05:42:33PM +0200, David Hildenbrand wrote:
> On 25.08.25 16:59, Mike Rapoport wrote:
> > On Mon, Aug 25, 2025 at 04:38:03PM +0200, David Hildenbrand wrote:
> > > On 25.08.25 16:32, Mike Rapoport wrote:
> > > > On Mon, Aug 25, 2025 at 02:48:58PM +0200, David Hildenbrand wrote:
> > > > > On 23.08.25 10:59, Mike Rapoport wrote:
> > > > > > On Fri, Aug 22, 2025 at 08:24:31AM +0200, David Hildenbrand wrote:
> > > > > > > On 22.08.25 06:09, Mika Penttilä wrote:
> > > > > > > >
> > > > > > > > On 8/21/25 23:06, David Hildenbrand wrote:
> > > > > > > >
> > > > > > > > > All pages were already initialized and set to PageReserved() with a
> > > > > > > > > refcount of 1 by MM init code.
> > > > > > > >
> > > > > > > > Just to be sure, how is this working with MEMBLOCK_RSRV_NOINIT, where MM is supposed not to
> > > > > > > > initialize struct pages?
> > > > > > >
> > > > > > > Excellent point, I did not know about that one.
> > > > > > >
> > > > > > > Spotting that we don't do the same for the head page made me assume that
> > > > > > > it's just a misuse of __init_single_page().
> > > > > > >
> > > > > > > But the nasty thing is that we use memblock_reserved_mark_noinit() to only
> > > > > > > mark the tail pages ...
> > > > > >
> > > > > > And even nastier thing is that when CONFIG_DEFERRED_STRUCT_PAGE_INIT is
> > > > > > disabled struct pages are initialized regardless of
> > > > > > memblock_reserved_mark_noinit().
> > > > > >
> > > > > > I think this patch should go in before your updates:
> > > > >
> > > > > Shouldn't we fix this in memblock code?
> > > > >
> > > > > Hacking around that in the memblock_reserved_mark_noinit() user sound wrong
> > > > > -- and nothing in the doc of memblock_reserved_mark_noinit() spells that
> > > > > behavior out.
> > > >
> > > > We can surely update the docs, but unfortunately I don't see how to avoid
> > > > hacking around it in hugetlb.
> > > > Since it's used to optimise HVO even further to the point hugetlb open
> > > > codes memmap initialization, I think it's fair that it should deal with all
> > > > possible configurations.
> > >
> > > Remind me, why can't we support memblock_reserved_mark_noinit() when
> > > CONFIG_DEFERRED_STRUCT_PAGE_INIT is disabled?
> >
> > When CONFIG_DEFERRED_STRUCT_PAGE_INIT is disabled we initialize the entire
> > memmap early (setup_arch()->free_area_init()), and we may have a bunch of
> > memblock_reserved_mark_noinit() afterwards
>
> Oh, you mean that we get effective memblock modifications after already
> initializing the memmap.
>
> That sounds ... interesting :)
It's memmap, not the free lists. Without deferred init, memblock is active
for a while after memmap initialized and before the memory goes to the free
lists.
> So yeah, we have to document this for memblock_reserved_mark_noinit().
>
> Is it also a problem for kexec_handover?
With KHO it's also interesting, but it does not support deferred struct
page init for now :)
> We should do something like:
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 154f1d73b61f2..ed4c563d72c32 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1091,13 +1091,16 @@ int __init_memblock memblock_clear_nomap(phys_addr_t base, phys_addr_t size)
> /**
> * memblock_reserved_mark_noinit - Mark a reserved memory region with flag
> - * MEMBLOCK_RSRV_NOINIT which results in the struct pages not being initialized
> - * for this region.
> + * MEMBLOCK_RSRV_NOINIT which allows for the "struct pages" corresponding
> + * to this region not getting initialized, because the caller will take
> + * care of it.
> * @base: the base phys addr of the region
> * @size: the size of the region
> *
> - * struct pages will not be initialized for reserved memory regions marked with
> - * %MEMBLOCK_RSRV_NOINIT.
> + * "struct pages" will not be initialized for reserved memory regions marked
> + * with %MEMBLOCK_RSRV_NOINIT if this function is called before initialization
> + * code runs. Without CONFIG_DEFERRED_STRUCT_PAGE_INIT, it is more likely
> + * that this function is not effective.
> *
> * Return: 0 on success, -errno on failure.
> */
I have a different version :)
diff --git a/include/linux/memblock.h b/include/linux/memblock.h
index b96746376e17..d20d091c6343 100644
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@ -40,8 +40,9 @@ extern unsigned long long max_possible_pfn;
* via a driver, and never indicated in the firmware-provided memory map as
* system RAM. This corresponds to IORESOURCE_SYSRAM_DRIVER_MANAGED in the
* kernel resource tree.
- * @MEMBLOCK_RSRV_NOINIT: memory region for which struct pages are
- * not initialized (only for reserved regions).
+ * @MEMBLOCK_RSRV_NOINIT: memory region for which struct pages don't have
+ * PG_Reserved set and are completely not initialized when
+ * %CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled (only for reserved regions).
* @MEMBLOCK_RSRV_KERN: memory region that is reserved for kernel use,
* either explictitly with memblock_reserve_kern() or via memblock
* allocation APIs. All memblock allocations set this flag.
diff --git a/mm/memblock.c b/mm/memblock.c
index 154f1d73b61f..02de5ffb085b 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -1091,13 +1091,15 @@ int __init_memblock memblock_clear_nomap(phys_addr_t base, phys_addr_t size)
/**
* memblock_reserved_mark_noinit - Mark a reserved memory region with flag
- * MEMBLOCK_RSRV_NOINIT which results in the struct pages not being initialized
- * for this region.
+ * MEMBLOCK_RSRV_NOINIT
+ *
* @base: the base phys addr of the region
* @size: the size of the region
*
- * struct pages will not be initialized for reserved memory regions marked with
- * %MEMBLOCK_RSRV_NOINIT.
+ * The struct pages for the reserved regions marked %MEMBLOCK_RSRV_NOINIT will
+ * not have %PG_Reserved flag set.
+ * When %CONFIG_DEFERRED_STRUCT_PAGE_INIT is enabled, setting this flags also
+ * completly bypasses the initialization of struct pages for this region.
*
* Return: 0 on success, -errno on failure.
*/
> Optimizing the hugetlb code could be done, but I am not sure how high
> the priority is (nobody complained so far about the double init).
>
> --
> Cheers
>
> David / dhildenb
>
--
Sincerely yours,
Mike.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2025-08-25 16:17 UTC|newest]
Thread overview: 195+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-21 20:06 [PATCH RFC 00/35] mm: remove nth_page() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 01/35] mm: stop making SPARSEMEM_VMEMMAP user-selectable David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:20 ` Zi Yan
2025-08-21 20:20 ` Zi Yan
2025-08-22 15:09 ` Mike Rapoport
2025-08-22 15:09 ` Mike Rapoport
2025-08-22 17:02 ` SeongJae Park
2025-08-22 17:02 ` SeongJae Park
2025-08-21 20:06 ` [PATCH RFC 02/35] arm64: Kconfig: drop superfluous "select SPARSEMEM_VMEMMAP" David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 15:10 ` Mike Rapoport
2025-08-22 15:10 ` Mike Rapoport
2025-08-21 20:06 ` [PATCH RFC 03/35] s390/Kconfig: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 15:11 ` Mike Rapoport
2025-08-22 15:11 ` Mike Rapoport
2025-08-21 20:06 ` [PATCH RFC 04/35] x86/Kconfig: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 15:11 ` Mike Rapoport
2025-08-22 15:11 ` Mike Rapoport
2025-08-21 20:06 ` [PATCH RFC 05/35] wireguard: selftests: remove CONFIG_SPARSEMEM_VMEMMAP=y from qemu kernel config David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 15:13 ` Mike Rapoport
2025-08-22 15:13 ` Mike Rapoport
2025-09-08 16:47 ` Jason A. Donenfeld
2025-09-08 16:47 ` Jason A. Donenfeld
2025-08-21 20:06 ` [PATCH RFC 06/35] mm/page_alloc: reject unreasonable folio/compound page sizes in alloc_contig_range_noprof() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:23 ` Zi Yan
2025-08-21 20:23 ` Zi Yan
2025-08-22 17:07 ` SeongJae Park
2025-08-22 17:07 ` SeongJae Park
2025-10-09 4:21 ` Balbir Singh
2025-10-09 4:21 ` Balbir Singh
2025-10-09 6:12 ` David Hildenbrand
2025-10-09 6:12 ` David Hildenbrand
2025-10-09 10:25 ` Balbir Singh
2025-10-09 10:25 ` Balbir Singh
2025-10-09 10:30 ` David Hildenbrand
2025-10-09 10:30 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 07/35] mm/memremap: reject unreasonable folio/compound page sizes in memremap_pages() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 17:09 ` SeongJae Park
2025-08-22 17:09 ` SeongJae Park
2025-08-21 20:06 ` [PATCH RFC 08/35] mm/hugetlb: check for unreasonable folio sizes when registering hstate David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 09/35] mm/mm_init: make memmap_init_compound() look more like prep_compound_page() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 15:27 ` Mike Rapoport
2025-08-22 15:27 ` Mike Rapoport
2025-08-22 18:09 ` David Hildenbrand
2025-08-22 18:09 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 10/35] mm/hugetlb: cleanup hugetlb_folio_init_tail_vmemmap() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 4:09 ` Mika Penttilä
2025-08-22 4:09 ` Mika Penttilä
2025-08-22 6:24 ` David Hildenbrand
2025-08-22 6:24 ` David Hildenbrand
2025-08-23 8:59 ` Mike Rapoport
2025-08-23 8:59 ` Mike Rapoport
2025-08-25 12:48 ` David Hildenbrand
2025-08-25 12:48 ` David Hildenbrand
2025-08-25 14:32 ` Mike Rapoport
2025-08-25 14:32 ` Mike Rapoport
2025-08-25 14:38 ` David Hildenbrand
2025-08-25 14:38 ` David Hildenbrand
2025-08-25 14:59 ` Mike Rapoport
2025-08-25 14:59 ` Mike Rapoport
2025-08-25 15:42 ` David Hildenbrand
2025-08-25 15:42 ` David Hildenbrand
2025-08-25 16:17 ` Mike Rapoport [this message]
2025-08-25 16:17 ` Mike Rapoport
2025-08-25 16:23 ` David Hildenbrand
2025-08-25 16:23 ` David Hildenbrand
2025-08-25 16:58 ` update kernel-doc for MEMBLOCK_RSRV_NOINIT (was: Re: [PATCH RFC 10/35] mm/hugetlb: cleanup hugetlb_folio_init_tail_vmemmap()) Mike Rapoport
2025-08-25 16:58 ` Mike Rapoport
2025-08-25 18:32 ` update kernel-doc for MEMBLOCK_RSRV_NOINIT David Hildenbrand
2025-08-25 18:32 ` David Hildenbrand
2025-10-09 1:07 ` update kernel-doc for MEMBLOCK_RSRV_NOINIT (was: Re: [PATCH RFC 10/35] mm/hugetlb: cleanup hugetlb_folio_init_tail_vmemmap()) patchwork-bot+linux-riscv
2025-10-09 1:07 ` patchwork-bot+linux-riscv
2025-08-21 20:06 ` [PATCH RFC 11/35] mm: sanity-check maximum folio size in folio_set_order() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:36 ` Zi Yan
2025-08-21 20:36 ` Zi Yan
2025-08-21 20:06 ` [PATCH RFC 12/35] mm: limit folio/compound page sizes in problematic kernel configs David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:46 ` Zi Yan
2025-08-21 20:46 ` Zi Yan
2025-08-21 20:49 ` David Hildenbrand
2025-08-21 20:49 ` David Hildenbrand
2025-08-21 20:50 ` Zi Yan
2025-08-21 20:50 ` Zi Yan
2025-08-24 13:24 ` Mike Rapoport
2025-08-24 13:24 ` Mike Rapoport
2025-08-21 20:06 ` [PATCH RFC 13/35] mm: simplify folio_page() and folio_page_idx() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:55 ` Zi Yan
2025-08-21 20:55 ` Zi Yan
2025-08-21 21:00 ` David Hildenbrand
2025-08-21 21:00 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 14/35] mm/mm/percpu-km: drop nth_page() usage within single allocation David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 15/35] fs: hugetlbfs: remove nth_page() usage within folio in adjust_range_hwpoison() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 16/35] mm/pagewalk: drop nth_page() usage within folio in folio_walk_start() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 17/35] mm/gup: drop nth_page() usage within folio when recording subpages David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 18/35] io_uring/zcrx: remove "struct io_copy_cache" and one nth_page() usage David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 11:32 ` Pavel Begunkov
2025-08-22 11:32 ` Pavel Begunkov
2025-08-22 13:59 ` David Hildenbrand
2025-08-22 13:59 ` David Hildenbrand
2025-08-27 9:43 ` Pavel Begunkov
2025-08-27 9:43 ` Pavel Begunkov
2025-08-21 20:06 ` [PATCH RFC 19/35] io_uring/zcrx: remove nth_page() usage within folio David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 20/35] mips: mm: convert __flush_dcache_pages() to __flush_dcache_folio_pages() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 21/35] mm/cma: refuse handing out non-contiguous page ranges David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-26 10:45 ` Alexandru Elisei
2025-08-26 10:45 ` Alexandru Elisei
2025-08-26 11:04 ` David Hildenbrand
2025-08-26 11:04 ` David Hildenbrand
2025-08-26 13:03 ` Alexandru Elisei
2025-08-26 13:03 ` Alexandru Elisei
2025-08-26 13:08 ` David Hildenbrand
2025-08-26 13:08 ` David Hildenbrand
2025-08-26 13:11 ` Alexandru Elisei
2025-08-26 13:11 ` Alexandru Elisei
2025-08-21 20:06 ` [PATCH RFC 22/35] dma-remap: drop nth_page() in dma_common_contiguous_remap() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 8:15 ` Marek Szyprowski
2025-08-22 8:15 ` Marek Szyprowski
2025-08-21 20:06 ` [PATCH RFC 23/35] scatterlist: disallow non-contigous page ranges in a single SG entry David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 8:15 ` Marek Szyprowski
2025-08-22 8:15 ` Marek Szyprowski
2025-08-21 20:06 ` [PATCH RFC 24/35] ata: libata-eh: drop nth_page() usage within " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 1:59 ` Damien Le Moal
2025-08-22 1:59 ` Damien Le Moal
2025-08-22 6:18 ` David Hildenbrand
2025-08-22 6:18 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 25/35] drm/i915/gem: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 26/35] mspro_block: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 9:58 ` Ulf Hansson
2025-08-21 20:06 ` [PATCH RFC 27/35] memstick: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 9:58 ` Ulf Hansson
2025-08-21 20:06 ` [PATCH RFC 28/35] mmc: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 9:58 ` Ulf Hansson
2025-08-21 20:06 ` [PATCH RFC 29/35] scsi: core: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-22 18:01 ` Bart Van Assche
2025-08-22 18:01 ` Bart Van Assche
2025-08-22 18:10 ` David Hildenbrand
2025-08-22 18:10 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 30/35] vfio/pci: " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 31/35] crypto: remove " David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:24 ` Linus Torvalds
2025-08-21 20:24 ` Linus Torvalds
2025-08-21 20:29 ` David Hildenbrand
2025-08-21 20:29 ` David Hildenbrand
2025-08-21 20:36 ` Linus Torvalds
2025-08-21 20:36 ` Linus Torvalds
2025-08-21 20:37 ` David Hildenbrand
2025-08-21 20:37 ` David Hildenbrand
2025-08-21 20:40 ` Linus Torvalds
2025-08-21 20:40 ` Linus Torvalds
2025-08-21 20:06 ` [PATCH RFC 32/35] mm/gup: drop nth_page() usage in unpin_user_page_range_dirty_lock() David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:06 ` [PATCH RFC 33/35] kfence: drop nth_page() usage David Hildenbrand
2025-08-21 20:06 ` David Hildenbrand
2025-08-21 20:32 ` David Hildenbrand
2025-08-21 20:32 ` David Hildenbrand
2025-08-21 21:45 ` David Hildenbrand
2025-08-21 21:45 ` David Hildenbrand
2025-08-21 20:07 ` [PATCH RFC 34/35] block: update comment of "struct bio_vec" regarding nth_page() David Hildenbrand
2025-08-21 20:07 ` David Hildenbrand
2025-08-21 20:07 ` [PATCH RFC 35/35] mm: remove nth_page() David Hildenbrand
2025-08-21 20:07 ` David Hildenbrand
2025-08-21 21:37 ` [syzbot ci] " syzbot ci
2025-08-21 21:37 ` syzbot ci
2025-08-22 14:30 ` [PATCH RFC 00/35] " Jason Gunthorpe
2025-08-22 14:30 ` Jason Gunthorpe
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=aKyMfvWe8JetkbRL@kernel.org \
--to=rppt@kernel.org \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=cl@gentwo.org \
--cc=david@redhat.com \
--cc=dennis@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=hannes@cmpxchg.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=io-uring@vger.kernel.org \
--cc=iommu@lists.linux.dev \
--cc=jackmanb@google.com \
--cc=jgg@nvidia.com \
--cc=jhubbard@nvidia.com \
--cc=kasan-dev@googlegroups.com \
--cc=kvm@vger.kernel.org \
--cc=linux-arm-kernel@axis.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-mmc@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=lorenzo.stoakes@oracle.com \
--cc=m.szyprowski@samsung.com \
--cc=mhocko@suse.com \
--cc=mpenttil@redhat.com \
--cc=muchun.song@linux.dev \
--cc=netdev@vger.kernel.org \
--cc=osalvador@suse.de \
--cc=peterx@redhat.com \
--cc=robin.murphy@arm.com \
--cc=surenb@google.com \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=vbabka@suse.cz \
--cc=virtualization@lists.linux.dev \
--cc=wireguard@lists.zx2c4.com \
--cc=x86@kernel.org \
--cc=ziy@nvidia.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.