From: sashiko-bot@kernel.org
To: "Luigi Rizzo" <lrizzo@google.com>,
"Luigi Rizzo" <rizzo.unipi@gmail.com>,
"Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
"Robin Murphy" <robin.murphy@arm.com>,
"Christoph Hellwig" <hch@lst.de>,
"Marek Szyprowski" <m.szyprowski@samsung.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Vlastimil Babka" <vbabka@kernel.org>,
"David Hildenbrand" <david@kernel.org>,
"Jens Axboe" <axboe@kernel.dk>,
"David S . Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@kernel.org>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Danilo Krummrich" <dakr@kernel.org>,
"Jonathan Corbet" <corbet@lwn.net>,
"Matthew Wilcox" <willy@infradead.org>,
"Lorenzo Stoakes" <ljs@kernel.org>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
"Willem de Bruijn" <willemb@google.com>,
"Kuniyuki Iwashima" <kuniyu@google.com>,
"Joshua Washington" <joshwash@google.com>,
"Harshitha Ramamurthy" <hramamurthy@google.com>,
"Alexander Lobakin" <aleksander.lobakin@intel.com>,
linux-mm@kvack.org
Subject: Re: [RFC PATCH v2 16/25] mm/slub: Add SLAB_CACHE_PISA_RO for PISA-backed slab caches
Date: Wed, 11 Nov 2026 01:03:02 +0000 [thread overview]
Message-ID: <sashiko-outbox-208044@kernel.org> (raw)
In-Reply-To: <20261109182533.3594984-17-lrizzo@google.com>
Thank you for your contribution! Sashiko AI review found 5 potential
issues to consider:
- [High] mm/slub: order clamping in calculate_sizes() breaks non-4K
pages and slab->objects
- [Medium] iommu/pisa: pisa_alloc_folio() pollutes per-node allocator on
__GFP_THISNODE
- [Medium] mm/slub: __GFP_PISA_RO leaks into alloc_slab_obj_exts() via
OBJCGS_CLEAR_MASK
- [Medium] mm/slub: alloc_slab_page() and pisa_alloc_folio() bypass
current_gfp_context()
- [Low] iommu/pisa: kmem_cache leak in test_slub_page_alloc() on
allocation failure
--
commit 48ed47e1e79e98a68d2521a0d03cf1f63453e5e9
Author: Luigi Rizzo <lrizzo@google.com>
mm/slub: Add SLAB_CACHE_PISA_RO for PISA-backed slab caches
This commit adds the SLAB_CACHE_PISA_RO flag so SLUB caches can allocate
zeroed, read-only PISA folios via pisa_alloc_folio().
> diff --git a/drivers/iommu/pisa-alloc.c b/drivers/iommu/pisa-alloc.c
> index 4b61ec84ed6d1..3b5c49d143a7e 100644
> --- a/drivers/iommu/pisa-alloc.c
> +++ b/drivers/iommu/pisa-alloc.c
> @@ -848,6 +848,33 @@ unsigned long pisa_alloc_pages_bulk(gfp_t gfp, unsigned int order, int preferred
> return pisa_alloc_bulk(pa, gfp & ~__GFP_PISA_RW, nr_pages, page_array, frozen);
> }
>
> +/**
> + * pisa_alloc_folio - Allocate a frozen folio for SLUB (SLAB_CACHE_PISA_RO)
> + * @gfp: GFP flags (must have __GFP_PISA_RW or __GFP_PISA_RO set)
> + * @order: Folio order
> + * @nid: Target NUMA node (or NUMA_NO_NODE)
> + *
> + * Drops __GFP_THISNODE before calling the per-node allocator and verifies
> + * node placement afterwards.
> + *
> + * Return: Frozen folio of @order, or NULL.
> + */
> +struct folio *pisa_alloc_folio(gfp_t gfp, unsigned int order, int nid)
> +{
> + struct page *page;
> +
> + page = pisa_alloc_pages(gfp & ~__GFP_THISNODE, order, nid, NULL);
> + if (!page)
> + return NULL;
> + if (unlikely((gfp & __GFP_THISNODE) && nid != NUMA_NO_NODE &&
> + page_to_nid(page) != nid)) {
> + page_ref_unfreeze(page, 1);
> + __free_pages(page, order);
> + return NULL;
> + }
> + return page_folio(page);
> +}
[Severity: Medium]
Can stripping __GFP_THISNODE here attach a remote 2MB PISA page to nid's
per-node PISA allocator?
When ___slab_alloc() tries the local node first, it passes
GFP_NOWAIT | __GFP_NOWARN | __GFP_THISNODE. If nid's PISA allocator and
reservoir are empty, pisa_alloc_pages() reaches __pisa_page_alloc(), which
calls alloc_pages_node(nid, gfp, PISA_ORDER) without __GFP_THISNODE. When
nid has no free order-9 buddy pages, alloc_pages_node() falls back to a
remote node, and __pisa_alloc_bulk() binds that remote 2MB page's
pisa_meta to nid's pisa_alloc and sets PISA_ACTIVE.
pisa_alloc_folio() then rejects the block because page_to_nid(page) != nid
and calls __free_pages(page, order), which intercepts PISA_ACTIVE in
__free_pages_prepare() -> pisa_free_page() and recycles the remote block
back into nid's pisa_alloc instead of freeing the 2MB page. Subsequent
__GFP_THISNODE allocations on nid will repeatedly pop and reject blocks
from that remote 2MB page.
> diff --git a/drivers/iommu/pisa-kunit.c b/drivers/iommu/pisa-kunit.c
> index 40bf7801183da..9cc1328893ace 100644
> --- a/drivers/iommu/pisa-kunit.c
> +++ b/drivers/iommu/pisa-kunit.c
[ ... ]
> @@ -621,6 +622,23 @@ static void test_reservoir_and_scrubber(struct kunit *test)
> WRITE_ONCE(pisa_scrub_max, old_scrub);
> }
>
> +static void test_slub_page_alloc(struct kunit *test)
> +{
> + struct kmem_cache *s;
> + void *obj;
> +
> + s = kmem_cache_create("pisa_kunit_slab", 1024, NULL,
> + SLAB_NO_MERGE | SLAB_CACHE_PISA_RO);
> + KUNIT_ASSERT_NOT_NULL(test, s);
> +
> + obj = kmem_cache_alloc(s, GFP_KERNEL);
> + KUNIT_ASSERT_NOT_NULL(test, obj);
> + KUNIT_EXPECT_TRUE(test, is_pisa_page(virt_to_page(obj)));
> + kmem_cache_free(s, obj);
> +
> + kmem_cache_destroy(s);
> +}
[Severity: Low]
Does KUNIT_ASSERT_NOT_NULL(test, obj) leak the kmem_cache s if
kmem_cache_alloc() fails? KUNIT_ASSERT_NOT_NULL() aborts the test
immediately before reaching kmem_cache_destroy(s).
> diff --git a/mm/slub.c b/mm/slub.c
> index 45e077c7526c2..63609768f4e3f 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
[ ... ]
> @@ -3378,6 +3379,8 @@ static inline struct slab *alloc_slab_page(gfp_t flags, int node,
> if (unlikely(!allow_spin))
> page = alloc_frozen_pages_nolock(0/* __GFP_COMP is implied */,
> node, order);
> + else if (unlikely(flags & __GFP_PISA_RO))
> + page = (struct page *)pisa_alloc_folio(flags, order, node);
> else if (node == NUMA_NO_NODE)
> page = alloc_frozen_pages(flags, order);
> else
[Severity: Medium]
Does calling pisa_alloc_folio() directly bypass current_gfp_context()?
alloc_frozen_pages() and __alloc_frozen_pages() apply
current_gfp_context(gfp) in __alloc_frozen_pages_noprof() to strip
__GFP_DIRECT_RECLAIM, __GFP_FS, or __GFP_IO under scoped
memalloc_noreclaim_save(), memalloc_nofs_save(), or memalloc_noio_save()
sections. Neither alloc_slab_page() nor pisa_alloc_folio() applies
current_gfp_context(flags), so a GFP_KERNEL allocation from a
SLAB_CACHE_PISA_RO cache inside memalloc_noreclaim_save() still has
gfpflags_allow_blocking(gfp) true and can sleep in pisa_alloc_split_page(),
and inside memalloc_nofs_save() or memalloc_noio_save() can enter
pisa_meta_init() from __pisa_page_alloc() before pisa_memalloc_save() is
called.
> @@ -3484,7 +3487,7 @@ static struct slab *allocate_slab(struct kmem_cache *s, gfp_t flags,
> gfp_t alloc_gfp;
> void *start;
>
> - flags &= gfp_allowed_mask;
> + flags &= gfp_allowed_mask & ~__GFP_PISA_RW;
>
> flags |= s->allocflags;
[Severity: Medium]
Does __GFP_PISA_RO in s->allocflags leak into internal slabobj_ext
allocations?
flags |= s->allocflags sets __GFP_PISA_RO in flags after ~__GFP_PISA_RW is
masked out, and allocate_slab() then passes flags to account_slab() ->
alloc_slab_obj_exts(). Because OBJCGS_CLEAR_MASK does not include
__GFP_PISA_RW:
mm/slub.c:
#define OBJCGS_CLEAR_MASK (__GFP_DMA | __GFP_RECLAIMABLE | \
__GFP_ACCOUNT | __GFP_NOFAIL | \
__GFP_THISNODE | __GFP_COMP)
alloc_slab_obj_exts() (and alloc_empty_sheaf() when a caller passes
__GFP_PISA_RO) leaves __GFP_PISA_RO set on the internal kmalloc call. If
the slabobj_ext array exceeds KMALLOC_MAX_CACHE_SIZE,
___kmalloc_large_node() allocates the SLUB metadata array from a PISA RO
page. Adding __GFP_PISA_RW to OBJCGS_CLEAR_MASK would prevent this.
[ ... ]
> @@ -8182,6 +8189,11 @@ static int calculate_sizes(struct kmem_cache_args *args, struct kmem_cache *s)
> if (s->flags & SLAB_RECLAIM_ACCOUNT)
> s->allocflags |= __GFP_RECLAIMABLE;
>
> + if (s->flags & SLAB_CACHE_PISA_RO) {
> + s->allocflags |= __GFP_PISA_RO | __GFP_ZERO;
> + order = clamp_t(unsigned int, order, 2, PAGE_ALLOC_COSTLY_ORDER);
> + }
> +
> /*
> * For kmalloc caches we enable sheaves later by
> * bootstrap_kmalloc_sheaves() to avoid recursion.
[Severity: High]
Does clamping order to [2, PAGE_ALLOC_COSTLY_ORDER] after
calculate_order(size) break on 16KB and 64KB page kernels?
In pisa_init(), read-only PISA allocators are only created for order 2 and
SKB_FRAG_PAGE_ORDER:
drivers/iommu/pisa-alloc.c:pisa_init() {
const struct {
u8 order;
bool ro;
bool pcp;
} cfg[] = {
{ 0, false, true },
{ 2, true, false },
{ SKB_FRAG_PAGE_ORDER, true, true },
};
On ARM64 with 16KB or 64KB pages, SKB_FRAG_PAGE_ORDER is 1 or 0, so no
order-3 (PAGE_ALLOC_COSTLY_ORDER) read-only PISA allocator exists. When
calculate_order(size) returns 3, pisa_alloc_folio() looks up
pisa_node_pa(nid, 3, true), which returns NULL, and allocate_slab() skips
the s->min fallback for SLAB_CACHE_PISA_RO, causing every allocation from
the cache to fail.
In addition, clamping order up to 2 runs after calculate_order(size) has
enforced MAX_OBJS_PER_PAGE (32767). On 64KB pages with s->size == 8,
forcing order 2 produces 32768 objects, which fits in the 16-bit OO_MASK of
s->oo but truncates the 15-bit unsigned slab->objects bitfield to 0 in
allocate_slab(), corrupting freelist setup in build_slab_freelist() or
looping in ___slab_alloc(). Finally, if s->size exceeds
PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER when SLUB_DEBUG inflates metadata,
clamping order down makes oo_objects(s->oo) == 0 before
do_kmem_cache_create() can reach disable_higher_order_debug.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261109182533.3594984-1-lrizzo@google.com?part=16
next prev parent reply other threads:[~2026-11-11 1:03 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-03 21:22 [RFC: DMA_PMD 00/22] DMA_PMD: PMD_SIZE-backed IO buffer pools Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 01/22] iommu/dma: introduce CONFIG_DMA_PMD and metadata table Luigi Rizzo
2026-10-03 21:44 ` Randy Dunlap
2026-10-04 9:14 ` Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 02/22] iommu/dma: add DMA_PMD pool lifecycle and page recycle hook Luigi Rizzo
2026-10-10 2:59 ` kernel test robot
2026-10-03 21:22 ` [RFC: DMA_PMD 03/22] mm: Add split_page_compound() Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 04/22] iommu/dma: add DMA_PMD pool block allocation Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 05/22] iommu/dma: Global cap and shrinker for DMA_PMD pool memory Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 06/22] iommu/dma: reserve a per-domain IOVA window for DMA_PMD pages Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 07/22] iommu/dma: release DMA_PMD domain mappings on domain teardown Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 08/22] iommu/dma: use per-domain IOVA window to map DMA_PMD memory Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 09/22] iommu/dma: Add DMA_PMD arena allocator Luigi Rizzo
2026-10-08 11:25 ` kernel test robot
2026-10-03 21:22 ` [RFC: DMA_PMD 10/22] driver core: Add per-device dma_pmd_* sysfs attributes Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 11/22] dma-mapping: Use DMA_PMD arena for dma_alloc_attrs() Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 12/22] net/core: Use per-CPU DMA_PMD pools for skb_page_frag_refill() Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 13/22] net/core: Use DMA_PMD for page_pool memory Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 14/22] iommu/dma: Support decrypted and pinned DMA_PMD pages Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 15/22] iommu/dma: Add background page scrubber for DMA_PMD pools Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 16/22] iommu/dma: Add per-NUMA-node PMD page reservoir Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 17/22] net/gve: Use DMA_PMD memory for RX buffers Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 18/22] net/gve: Use DMA_PMD memory for tx header bounce buffers Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 19/22] net/mlx5e: " Luigi Rizzo
2026-10-14 17:22 ` Dragos Tatulea
2026-10-14 17:50 ` Dragos Tatulea
2026-10-14 18:28 ` Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 20/22] net/idpf: " Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 21/22] net/bnxt: " Luigi Rizzo
2026-10-03 21:22 ` [RFC: DMA_PMD 22/22] iommu/dma: Add DMA_PMD statistics and debugfs Luigi Rizzo
2026-10-11 9:02 ` [RFC: DMA_PMD 00/22] DMA_PMD: PMD_SIZE-backed IO buffer pools Pranjal Shrivastava
2026-10-12 13:51 ` David Hildenbrand (Arm)
2026-10-12 14:45 ` Luigi Rizzo
2026-10-12 19:43 ` David Hildenbrand (Arm)
2026-10-13 10:42 ` Robin Murphy
2026-10-14 10:47 ` David Hildenbrand (Arm)
2026-10-14 11:05 ` Luigi Rizzo
2026-10-17 17:11 ` Luigi Rizzo
2026-10-22 20:12 ` Jason Gunthorpe
2026-10-22 21:51 ` Luigi Rizzo
2026-10-23 14:01 ` Jason Gunthorpe
2026-10-23 14:30 ` Luigi Rizzo
2026-10-23 14:50 ` Jason Gunthorpe
2026-10-23 15:12 ` Luigi Rizzo
2026-10-23 17:27 ` Jakub Kicinski
2026-10-23 20:22 ` Luigi Rizzo
2026-11-03 8:09 ` Christoph Hellwig
2026-11-03 9:13 ` Luigi Rizzo
2026-11-03 15:10 ` Jason Gunthorpe
2026-11-06 17:21 ` Naman Gulati
2026-11-06 17:30 ` Jason Gunthorpe
2026-11-06 18:00 ` Naman Gulati
2026-11-06 18:07 ` Jason Gunthorpe
2026-11-06 18:17 ` Naman Gulati
2026-11-06 18:43 ` Jason Gunthorpe
2026-11-06 19:01 ` Luigi Rizzo
2026-11-06 19:11 ` Naman Gulati
2026-10-12 14:49 ` Mostafa Saleh
2026-10-12 15:02 ` Luigi Rizzo
2026-10-14 17:28 ` Dragos Tatulea
2026-10-14 18:14 ` Luigi Rizzo
2026-11-09 18:25 ` [RFC PATCH v2 00/25] PISA: Pre-mapped IOVA Superpage Allocator for DMA and CoCo Luigi Rizzo
2026-11-09 18:25 ` [RFC PATCH v2 01/25] iommu/dma: Introduce CONFIG_PISA and metadata table Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 02/25] iommu/dma: Add PISA allocator lifecycle and page recycle hook Luigi Rizzo
2026-11-09 18:25 ` [RFC PATCH v2 03/25] iommu/dma: Add per-NUMA-node PISA page reservoir Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 04/25] iommu/dma: Add PISA block allocation Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 05/25] iommu/dma: Add global cap and shrinker for PISA pages Luigi Rizzo
2026-11-09 18:25 ` [RFC PATCH v2 06/25] iommu/dma: Reserve a per-domain IOVA window " Luigi Rizzo
2026-11-09 18:25 ` [RFC PATCH v2 07/25] iommu/dma: Release PISA domain mappings on domain teardown Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 08/25] iommu/dma: Use per-domain IOVA window to map PISA memory Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 09/25] driver core: Add per-device pisa_* sysfs attributes for PISA optin Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 10/25] iommu/dma: Use PISA for coherent DMA allocations Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 11/25] iommu/dma: Add per-CPU block caches to PISA allocators Luigi Rizzo
2026-11-10 23:12 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 12/25] net/core: Use per-node PISA allocators for skb_page_frag_refill() Luigi Rizzo
2026-11-10 23:50 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 13/25] net/core: Use PISA for page_pool memory Luigi Rizzo
2026-11-09 18:25 ` [RFC PATCH v2 14/25] iommu/dma: Support decrypted PISA pages Luigi Rizzo
2026-11-11 0:19 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 15/25] iommu/dma: Add background page scrubber for PISA allocators Luigi Rizzo
2026-11-11 0:37 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 16/25] mm/slub: Add SLAB_CACHE_PISA_RO for PISA-backed slab caches Luigi Rizzo
2026-11-11 1:03 ` sashiko-bot [this message]
2026-11-09 18:25 ` [RFC PATCH v2 17/25] net: Allocate small skb heads from PISA Luigi Rizzo
2026-11-11 1:33 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 18/25] iommu/dma: Migrate user pages into PISA for TX zerocopy Luigi Rizzo
2026-11-11 2:41 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 19/25] iommu/dma: Stop recycling old PISA pages when allocator waste is high Luigi Rizzo
2026-11-11 2:57 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 20/25] net/libeth: Use GFP_KERNEL when pre-filling RX rings Luigi Rizzo
2026-11-11 3:13 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 21/25] net/gve: " Luigi Rizzo
2026-11-11 3:22 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 22/25] net/gve: Use PISA memory for RX buffers Luigi Rizzo
2026-11-11 3:43 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 23/25] block, mm, iommu/dma: Support PISA for disk I/O and scrub migration Luigi Rizzo
2026-11-11 4:16 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 24/25] Documentation: Add PISA architecture documentation Luigi Rizzo
2026-11-11 4:24 ` sashiko-bot
2026-11-09 18:25 ` [RFC PATCH v2 25/25] iommu/dma: Add PISA statistics and debugfs Luigi Rizzo
2026-11-11 4:37 ` sashiko-bot
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=sashiko-outbox-208044@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=aleksander.lobakin@intel.com \
--cc=axboe@kernel.dk \
--cc=corbet@lwn.net \
--cc=dakr@kernel.org \
--cc=davem@davemloft.net \
--cc=david@kernel.org \
--cc=edumazet@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=hawk@kernel.org \
--cc=hch@lst.de \
--cc=hramamurthy@google.com \
--cc=ilias.apalodimas@linaro.org \
--cc=joro@8bytes.org \
--cc=joshwash@google.com \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-mm@kvack.org \
--cc=ljs@kernel.org \
--cc=lrizzo@google.com \
--cc=m.szyprowski@samsung.com \
--cc=pabeni@redhat.com \
--cc=rafael@kernel.org \
--cc=rizzo.unipi@gmail.com \
--cc=robin.murphy@arm.com \
--cc=sashiko-reviews@lists.linux.dev \
--cc=vbabka@kernel.org \
--cc=will@kernel.org \
--cc=willemb@google.com \
--cc=willy@infradead.org \
/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.