[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <SN6PR02MB4157CF2A7C5064889843D79CD4BDA@SN6PR02MB4157.namprd02.prod.outlook.com>
Date: Mon, 27 Nov 2023 01:06:06 +0000
From: Michael Kelley <mhklinux@...look.com>
To: Christoph Hellwig <hch@...radead.org>
CC: "tglx@...utronix.de" <tglx@...utronix.de>,
"mingo@...hat.com" <mingo@...hat.com>,
"bp@...en8.de" <bp@...en8.de>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"x86@...nel.org" <x86@...nel.org>, "hpa@...or.com" <hpa@...or.com>,
"kirill.shutemov@...ux.intel.com" <kirill.shutemov@...ux.intel.com>,
"kys@...rosoft.com" <kys@...rosoft.com>,
"haiyangz@...rosoft.com" <haiyangz@...rosoft.com>,
"wei.liu@...nel.org" <wei.liu@...nel.org>,
"decui@...rosoft.com" <decui@...rosoft.com>,
"luto@...nel.org" <luto@...nel.org>,
"peterz@...radead.org" <peterz@...radead.org>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"urezki@...il.com" <urezki@...il.com>,
"lstoakes@...il.com" <lstoakes@...il.com>,
"thomas.lendacky@....com" <thomas.lendacky@....com>,
"ardb@...nel.org" <ardb@...nel.org>,
"jroedel@...e.de" <jroedel@...e.de>,
"seanjc@...gle.com" <seanjc@...gle.com>,
"rick.p.edgecombe@...el.com" <rick.p.edgecombe@...el.com>,
"sathyanarayanan.kuppuswamy@...ux.intel.com"
<sathyanarayanan.kuppuswamy@...ux.intel.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-coco@...ts.linux.dev" <linux-coco@...ts.linux.dev>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>
Subject: RE: [PATCH v2 3/8] x86/mm: Remove "static" from vmap_pages_range()
From: Christoph Hellwig <hch@...radead.org> Sent: Wednesday, November 22, 2023 11:32 PM
>
> On Thu, Nov 23, 2023 at 12:24:49AM +0000, Michael Kelley wrote:
> > > I really do not want to expose vmap_pages_range. Please try to come up
> > > with a good way to encapsulate your map at a certain address primitive
> > > and implement it in vmalloc.c.
> >
> > To clarify, is your concern narrowly about vmap_pages_range()
> > specifically?
>
> The prime concern is that it took a lot of effort to make
> vmap_pages_range static and remove all the abuses. I absolutely
> object to undoing that.
OK, so I assume that means a new variant of vmap_pages_range(),
such as one that always sets the page_shift parameter to PAGE_SIZE,
is also disallowed because of the same potential for abuse.
So the only way to map a system memory page to a vmalloc
vaddr is via vmap() or some vmap() variant, which always
creates a new vmalloc area via get_vm_area(). I've done the
perf measurements, and that approach won't work for this use
case. Independent of the alignment requirements, the churn in
creating and removing a lot of vmalloc areas has too much perf
impact. The use case needs to create a single vmalloc area, and
then repeatedly map/unmap a page in that existing area.
I'll have to handle the top-level problem in this patch set in
a completely different way.
Michael
Powered by blists - more mailing lists