[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <e4f546cd-67c0-4198-975d-266a7cb9807a@arm.com>
Date: Tue, 19 Aug 2025 11:35:01 +0200
From: Kevin Brodsky <kevin.brodsky@....com>
To: "Edgecombe, Rick P" <rick.p.edgecombe@...el.com>,
"linux-hardening@...r.kernel.org" <linux-hardening@...r.kernel.org>
Cc: "x86@...nel.org" <x86@...nel.org>, "maz@...nel.org" <maz@...nel.org>,
"luto@...nel.org" <luto@...nel.org>,
"mbland@...orola.com" <mbland@...orola.com>,
"willy@...radead.org" <willy@...radead.org>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"david@...hat.com" <david@...hat.com>, "rppt@...nel.org" <rppt@...nel.org>,
"joey.gouly@....com" <joey.gouly@....com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"pierre.langlois@....com" <pierre.langlois@....com>,
"Weiny, Ira" <ira.weiny@...el.com>, "vbabka@...e.cz" <vbabka@...e.cz>,
"catalin.marinas@....com" <catalin.marinas@....com>,
"jeffxu@...omium.org" <jeffxu@...omium.org>,
"linus.walleij@...aro.org" <linus.walleij@...aro.org>,
"lorenzo.stoakes@...cle.com" <lorenzo.stoakes@...cle.com>,
"kees@...nel.org" <kees@...nel.org>,
"ryan.roberts@....com" <ryan.roberts@....com>,
"tglx@...utronix.de" <tglx@...utronix.de>,
"jannh@...gle.com" <jannh@...gle.com>,
"peterz@...radead.org" <peterz@...radead.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>, "will@...nel.org" <will@...nel.org>,
"qperret@...gle.com" <qperret@...gle.com>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"broonie@...nel.org" <broonie@...nel.org>
Subject: Re: [RFC PATCH v5 13/18] mm: Map page tables with privileged pkey
On 18/08/2025 19:01, Edgecombe, Rick P wrote:
> On Mon, 2025-08-18 at 18:02 +0200, Kevin Brodsky wrote:
>> The benchmarking results (see cover letter) don't seem to point to a
>> major performance hit from setting the pkey on arm64 (worth noting that
>> the linear mapping is PTE-mapped on arm64 today so no splitting should
>> occur when setting the pkey). The overhead may well be substantially
>> higher on x86.
> It's surprising to me. The batching seems to be about switching the pkey, not
> the conversion of the direct map.
Correct, there is still a set_memory_pkey() for each PTP.
> And with batching you measured a fork
> benchmark actually sped up a tiny bit. Shouldn't it involve a pile of page table
> allocations and so extra direct map work?
It should indeed...
> I don't know if it's possible the mock implementation skipped some set_memory()
> work somehow?
In fact you're absolutely right, in the mock implementation I
benchmarked set_memory_pkey() is in fact a no-op :( This is because
patch 6 gates set_memory_pkey() on system_supports_poe(), but the mock
implementation [1] only modifies arch_kpkeys_enabled(). In other words
the numbers in the cover letter correspond to the added pkey register
switches, without touching the page tables.
I am now re-running the benchmarks with set_memory_pkey() actually
modifying the page tables. I'll reply to the cover letter with the
updated numbers.
- Kevin
[1]
https://gitlab.arm.com/linux-arm/linux-kb/-/commit/fd75b43abb354e84d06f3dfb05ce839e9fb13e08
Powered by blists - more mailing lists