From: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "Jason Gunthorpe" <jgg@nvidia.com>,
"Andrew Morton" <akpm@linux-foundation.org>,
"Jarkko Sakkinen" <jarkko@kernel.org>,
"Dave Hansen" <dave.hansen@linux.intel.com>,
"Thomas Gleixner" <tglx@kernel.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Borislav Petkov" <bp@alien8.de>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Dan Williams" <dan.j.williams@intel.com>,
"Vishal Verma" <vishal.l.verma@intel.com>,
"Dave Jiang" <dave.jiang@intel.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Dave Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Tvrtko Ursulin" <tursulin@ursulin.net>,
"Christian König" <christian.koenig@amd.com>,
"Huang Rui" <ray.huang@amd.com>,
"Matthew Auld" <matthew.auld@intel.com>,
"Matthew Brost" <matthew.brost@intel.com>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
"Jan Kara" <jack@suse.cz>, "Benjamin LaHaise" <bcrl@kvack.org>,
"Gao Xiang" <xiang@kernel.org>, "Chao Yu" <chao@kernel.org>,
"Yue Hu" <zbestahu@gmail.com>,
"Jeffle Xu" <jefflexu@linux.alibaba.com>,
"Sandeep Dhavale" <dhavale@google.com>,
"Hongbo Li" <lihongbo22@huawei.com>,
"Chunhai Guo" <guochunhai@vivo.com>,
"Theodore Ts'o" <tytso@mit.edu>,
"Andreas Dilger" <adilger.kernel@dilger.ca>,
"Muchun Song" <muchun.song@linux.dev>,
"Oscar Salvador" <osalvador@suse.de>,
"David Hildenbrand (Red Hat)" <david@kernel.org>,
"Konstantin Komarov" <almaz.alexandrovich@paragon-software.com>,
"Mike Marshall" <hubcap@omnibond.com>,
"Martin Brandenburg" <martin@omnibond.com>,
"Tony Luck" <tony.luck@intel.com>,
"Reinette Chatre" <reinette.chatre@intel.com>,
"Dave Martin" <Dave.Martin@arm.com>,
"James Morse" <james.morse@arm.com>,
"Babu Moger" <babu.moger@amd.com>,
"Carlos Maiolino" <cem@kernel.org>,
"Damien Le Moal" <dlemoal@kernel.org>,
"Naohiro Aota" <naohiro.aota@wdc.com>,
"Johannes Thumshirn" <jth@kernel.org>,
"Matthew Wilcox" <willy@infradead.org>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
"Vlastimil Babka" <vbabka@suse.cz>,
"Mike Rapoport" <rppt@kernel.org>,
"Suren Baghdasaryan" <surenb@google.com>,
"Michal Hocko" <mhocko@suse.com>,
"Hugh Dickins" <hughd@google.com>,
"Baolin Wang" <baolin.wang@linux.alibaba.com>,
"Zi Yan" <ziy@nvidia.com>, "Nico Pache" <npache@redhat.com>,
"Ryan Roberts" <ryan.roberts@arm.com>,
"Dev Jain" <dev.jain@arm.com>, "Barry Song" <baohua@kernel.org>,
"Lance Yang" <lance.yang@linux.dev>,
"Jann Horn" <jannh@google.com>,
"Pedro Falcato" <pfalcato@suse.de>,
"David Howells" <dhowells@redhat.com>,
"Paul Moore" <paul@paul-moore.com>,
"James Morris" <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
"Yury Norov" <yury.norov@gmail.com>,
"Rasmus Villemoes" <linux@rasmusvillemoes.dk>,
linux-sgx@vger.kernel.org, linux-kernel@vger.kernel.org,
nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org,
dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
linux-fsdevel@vger.kernel.org, linux-aio@kvack.org,
linux-erofs@lists.ozlabs.org, linux-ext4@vger.kernel.org,
linux-mm@kvack.org, ntfs3@lists.linux.dev,
devel@lists.orangefs.org, linux-xfs@vger.kernel.org,
keyrings@vger.kernel.org, linux-security-module@vger.kernel.org
Subject: Re: [PATCH RESEND 09/12] mm: make vm_area_desc utilise vma_flags_t only
Date: Tue, 20 Jan 2026 16:22:14 +0000 [thread overview]
Message-ID: <44461883-a75c-466b-a278-97c4ab46b461@lucifer.local> (raw)
In-Reply-To: <1617ac60-6261-483d-aeb5-13aba5f477af@app.fastmail.com>
On Tue, Jan 20, 2026 at 05:00:28PM +0100, Arnd Bergmann wrote:
> On Tue, Jan 20, 2026, at 16:10, Lorenzo Stoakes wrote:
> > On Tue, Jan 20, 2026 at 09:36:19AM -0400, Jason Gunthorpe wrote:
> >
> > I am not sure about this 'idiomatic kernel style' thing either, it feels rather
> > conjured. Yes you wouldn't ordinarily pass something larger than a register size
> > by-value, but here the intent is for it to be inlined anyway right?
> >
> > It strikes me that the key optimisation here is the inlining, now if the issue
> > is that ye olde compiler might choose not to inline very small functions (seems
> > unlikely) we could always throw in an __always_inline?
>
> I can think of three specific things going wrong with structures passed
> by value:
I mean now you seem to be talking about it _in general_ which, _in theory_,
kills the whole concept of bitmap VMA flags _altogether_ really, or at
least any workable version of them.
But... no.
I'm not going to not do this because of perceived possible issues with ppc
and mips.
It's not reasonable to hold up a necessary change for the future of the
kernel IMO, and we can find workarounds as necessary should anything
problematic actually occur in practice.
I am happy to do so as maintainer of this work :)
>
> - functions that cannot be inlined are bound by the ELF ABI, and
> several of them require structs to be passed on the stack regardless
> of the size. Most of the popular architectures seem fine here, but
> mips and powerpc look like they are affected.
I explicitly checked mips and it seemed fine, but not gone super deep.
>
> - The larger the struct is, the more architectures are affected.
> Parts of the amdgpu driver and the bcachefs file system ran into this
bcachefs is not in the kernel. We don't care about out-of-tree stuff by
convention.
amdgpu is more concerning, but...
> with 64-bit structures passed by value on 32-bit architectures
> causing horrible codegen even with inlining. I think it's
> usually fine up to a single register size.
...32-bit kernels are not ones where you would anticipate incredible
performance for one, for another if any significant issues arise we can
look at arch-specific workarounds.
I already have vma_flags_*_word*() helpers to do things 'the old way' in
the worst case. More can be added if and when anything arises.
Again, I don't think we should hold up the rest of the kernel (being able
to transition to not being arbitrarily limited by VMA count is very
important) on this basis.
Also I've checked 32-bit code generation which _seemed_ fine at a
glance. Of course again I've not good super deep on that.
>
> - clang's inlining algorithm works the other way round from gcc's:
> inlining into the root caller first and sometimes leaving tiny
> leaf function out of line unless you add __always_inline.
I already __always_inline all pertinent funcitons so hopefully that should
be no issue.
And for instance the assembly I shared earlier was built using clang, as I
now use clang for _all_ my builds locally.
>
> Arnd
Thanks, Lorenzo
next prev parent reply other threads:[~2026-01-20 16:22 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-19 21:19 [PATCH RESEND 00/12] mm: add bitmap VMA flag helpers and convert all mmap_prepare to use them Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 01/12] mm: rename vma_flag_test/set_atomic() to vma_test/set_atomic_flag() Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 02/12] mm: add mk_vma_flags() bitmap flag macro helper Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 03/12] tools: bitmap: add missing bitmap_[subset(), andnot()] Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 04/12] mm: add basic VMA flag operation helper functions Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 05/12] mm: update hugetlbfs to use VMA flags on mmap_prepare Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 06/12] mm: update secretmem " Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 07/12] mm: update shmem_[kernel]_file_*() functions to use vma_flags_t Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 08/12] mm: update all remaining mmap_prepare users " Lorenzo Stoakes
2026-01-20 2:59 ` Zi Yan
2026-01-20 9:01 ` Lorenzo Stoakes
2026-01-22 15:47 ` Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 09/12] mm: make vm_area_desc utilise vma_flags_t only Lorenzo Stoakes
2026-01-19 23:14 ` Jason Gunthorpe
2026-01-20 9:46 ` Lorenzo Stoakes
2026-01-20 13:36 ` Jason Gunthorpe
2026-01-20 15:10 ` Lorenzo Stoakes
2026-01-20 15:22 ` Jason Gunthorpe
2026-01-20 16:46 ` Lorenzo Stoakes
2026-01-20 16:00 ` Arnd Bergmann
2026-01-20 16:22 ` Lorenzo Stoakes [this message]
2026-01-20 16:44 ` Arnd Bergmann
2026-01-20 16:50 ` Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 10/12] tools/testing/vma: separate VMA userland tests into separate files Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 11/12] tools/testing/vma: separate out vma_internal.h into logical headers Lorenzo Stoakes
2026-01-19 21:19 ` [PATCH RESEND 12/12] tools/testing/vma: add VMA userland tests for VMA flag functions Lorenzo Stoakes
2026-01-19 22:31 ` [PATCH RESEND 00/12] mm: add bitmap VMA flag helpers and convert all mmap_prepare to use them Andrew Morton
2026-01-19 23:14 ` Jason Gunthorpe
2026-01-20 9:48 ` Lorenzo Stoakes
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=44461883-a75c-466b-a278-97c4ab46b461@lucifer.local \
--to=lorenzo.stoakes@oracle.com \
--cc=Dave.Martin@arm.com \
--cc=Liam.Howlett@oracle.com \
--cc=adilger.kernel@dilger.ca \
--cc=airlied@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=almaz.alexandrovich@paragon-software.com \
--cc=arnd@arndb.de \
--cc=babu.moger@amd.com \
--cc=baohua@kernel.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=bcrl@kvack.org \
--cc=bp@alien8.de \
--cc=brauner@kernel.org \
--cc=cem@kernel.org \
--cc=chao@kernel.org \
--cc=christian.koenig@amd.com \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=dave.jiang@intel.com \
--cc=david@kernel.org \
--cc=dev.jain@arm.com \
--cc=devel@lists.orangefs.org \
--cc=dhavale@google.com \
--cc=dhowells@redhat.com \
--cc=dlemoal@kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=guochunhai@vivo.com \
--cc=hpa@zytor.com \
--cc=hubcap@omnibond.com \
--cc=hughd@google.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jack@suse.cz \
--cc=james.morse@arm.com \
--cc=jani.nikula@linux.intel.com \
--cc=jannh@google.com \
--cc=jarkko@kernel.org \
--cc=jefflexu@linux.alibaba.com \
--cc=jgg@nvidia.com \
--cc=jmorris@namei.org \
--cc=joonas.lahtinen@linux.intel.com \
--cc=jth@kernel.org \
--cc=keyrings@vger.kernel.org \
--cc=lance.yang@linux.dev \
--cc=lihongbo22@huawei.com \
--cc=linux-aio@kvack.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-erofs@lists.ozlabs.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-sgx@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=maarten.lankhorst@linux.intel.com \
--cc=martin@omnibond.com \
--cc=matthew.auld@intel.com \
--cc=matthew.brost@intel.com \
--cc=mhocko@suse.com \
--cc=mingo@redhat.com \
--cc=mripard@kernel.org \
--cc=muchun.song@linux.dev \
--cc=naohiro.aota@wdc.com \
--cc=npache@redhat.com \
--cc=ntfs3@lists.linux.dev \
--cc=nvdimm@lists.linux.dev \
--cc=osalvador@suse.de \
--cc=paul@paul-moore.com \
--cc=pfalcato@suse.de \
--cc=ray.huang@amd.com \
--cc=reinette.chatre@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=rppt@kernel.org \
--cc=ryan.roberts@arm.com \
--cc=serge@hallyn.com \
--cc=simona@ffwll.ch \
--cc=surenb@google.com \
--cc=tglx@kernel.org \
--cc=tony.luck@intel.com \
--cc=tursulin@ursulin.net \
--cc=tytso@mit.edu \
--cc=tzimmermann@suse.de \
--cc=vbabka@suse.cz \
--cc=viro@zeniv.linux.org.uk \
--cc=vishal.l.verma@intel.com \
--cc=willy@infradead.org \
--cc=x86@kernel.org \
--cc=xiang@kernel.org \
--cc=yury.norov@gmail.com \
--cc=zbestahu@gmail.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox