[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8f291b26-536a-41ce-8cff-3b0871e6930e@lucifer.local>
Date: Fri, 7 Nov 2025 12:40:38 +0000
From: Lorenzo Stoakes <lorenzo.stoakes@...cle.com>
To: Alice Ryhl <aliceryhl@...gle.com>
Cc: Pedro Falcato <pfalcato@...e.de>,
Andrew Morton <akpm@...ux-foundation.org>,
Jonathan Corbet <corbet@....net>, David Hildenbrand <david@...hat.com>,
"Liam R . Howlett" <Liam.Howlett@...cle.com>,
Vlastimil Babka <vbabka@...e.cz>, Mike Rapoport <rppt@...nel.org>,
Suren Baghdasaryan <surenb@...gle.com>, Michal Hocko <mhocko@...e.com>,
Steven Rostedt <rostedt@...dmis.org>,
Masami Hiramatsu <mhiramat@...nel.org>,
Mathieu Desnoyers <mathieu.desnoyers@...icios.com>,
Jann Horn <jannh@...gle.com>, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-doc@...r.kernel.org,
linux-mm@...ck.org, linux-trace-kernel@...r.kernel.org,
linux-kselftest@...r.kernel.org, Andrei Vagin <avagin@...il.com>
Subject: Re: [PATCH v2 1/5] mm: introduce VM_MAYBE_GUARD and make visible in
/proc/$pid/smaps
On Fri, Nov 07, 2025 at 12:12:43PM +0000, Alice Ryhl wrote:
> On Fri, Nov 07, 2025 at 09:44:22AM +0000, Lorenzo Stoakes wrote:
> > On Fri, Nov 07, 2025 at 09:13:00AM +0000, Alice Ryhl wrote:
> > > On Thu, Nov 06, 2025 at 02:54:33PM +0000, Lorenzo Stoakes wrote:
> > > > +cc Alice for rust stuff
> > > >
> > > > On Thu, Nov 06, 2025 at 02:27:56PM +0000, Pedro Falcato wrote:
> > > > > On Thu, Nov 06, 2025 at 10:46:12AM +0000, Lorenzo Stoakes wrote:
> > > > > > /*
> > > > > > * vm_flags in vm_area_struct, see mm_types.h.
> > > > > > * When changing, update also include/trace/events/mmflags.h
> > > > > > @@ -296,6 +298,7 @@ extern unsigned int kobjsize(const void *objp);
> > > > > > #define VM_UFFD_MISSING 0
> > > > > > #endif /* CONFIG_MMU */
> > > > > > #define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */
> > > > > > +#define VM_MAYBE_GUARD BIT(VM_MAYBE_GUARD_BIT) /* The VMA maybe contains guard regions. */
> > > > >
> > > > > Don't we also need an adjustment on the rust side for this BIT()? Like we
> > > > > for f04aad36a07c ("mm/ksm: fix flag-dropping behavior in ksm_madvise").
> > > >
> > > > That's a bit unhelpful if rust can't cope with extremely basic assignments like
> > > > that and we just have to know to add helpers :/
> > > >
> > > > We do BIT() stuff for e.g. VM_HIGH_ARCH_n, VM_UFFD_MINOR_BIT,
> > > > VM_ALLOW_ANY_UNCACHED_BIT, VM_DROPPABLE_BIT and VM_SEALED_BIT too and no such
> > > > helpers there, So not sure if this is required?
> > > >
> > > > Alice - why is it these 'non-trivial' defines were fine but VM_MERGEABLE was
> > > > problematic? That seems strange.
> > > >
> > > > I see [0], so let me build rust here and see if it moans, if it moans I'll add
> > > > it.
> > > >
> > > > [0]:https://lore.kernel.org/oe-kbuild-all/CANiq72kOhRdGtQe2UVYmDLdbw6VNkiMtdFzkQizsfQV0gLY1Hg@mail.gmail.com/
> > >
> > > When you use #define to declare a constant whose right-hand-side
> > > contains a function-like macro such as BIT(), bindgen does not define a
> > > Rust version of that constant. However, VM_MAYBE_GUARD is not referenced
> > > in Rust anywhere, so that isn't a problem.
> > >
> > > It was a problem with VM_MERGEABLE because rust/kernel/mm/virt.rs
> > > references it.
> > >
> > > Note that it's only the combination of #define and function-like macro
> > > that triggers this condition. If the constant is defined using another
> > > mechanism such as enum {}, then bindgen will generate the constant no
> > > matter how complex the right-hand-side is. The problem is that bindgen
> > > can't tell whether a #define is just a constant or not.
> >
> > Thanks, I guess we can update as we go as rust needs. Or I can do a big update
> > as part of my VMA flag series respin?
>
> Whenever you think is a good time works for me.
>
> I think it would be nice to move those constants so they use enum {}
> instead of #define at some point.
Yeah I will do as part of my VMA series :) which actually is a neater solution
to this in general (and can drop the existing binding helpers then actually).
>
> Alice
Thanks, Lorenzo
Powered by blists - more mailing lists