> On May 11, 2021, at 1:08 PM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 11/05/21 18:45, Dave Hansen wrote: >> On 5/11/21 8:59 AM, Jon Kohler wrote: >>> diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h >>> index b1099f2d9800..20f1fb8be7ef 100644 >>> --- a/arch/x86/include/asm/pgtable.h >>> +++ b/arch/x86/include/asm/pgtable.h >>> @@ -151,7 +151,7 @@ static inline void write_pkru(u32 pkru) >>> fpregs_lock(); >>> if (pk) >>> pk->pkru = pkru; >>> - __write_pkru(pkru); >>> + wrpkru(pkru); >>> fpregs_unlock(); >>> } >> This removes the: >> if (pkru == rdpkru()) >> return; >> optimization from a couple of write_pkru() users: >> arch_set_user_pkey_access() and copy_init_pkru_to_fpregs(). >> Was that intentional? Those aren't the hottest paths in the kernel, but >> copy_init_pkru_to_fpregs() is used in signal handling and exeve(). > > Yeah, you should move it from __write_pkru() to write_pkru() but not remove it completely. > > Paolo Thanks, Paolo. Just sent out a v3 with that fix up included, so all of the previous callers should be at par and not notice any differences