On 06/18/2018 03:07 AM, Kirill A. Shutemov wrote: > On Wed, Jun 13, 2018 at 06:20:10PM +0000, Dave Hansen wrote: >>> +int page_keyid(const struct page *page) >>> +{ >>> + if (mktme_status != MKTME_ENABLED) >>> + return 0; >>> + >>> + return lookup_page_ext(page)->keyid; >>> +} >>> +EXPORT_SYMBOL(page_keyid); >> Please start using a proper X86_FEATURE_* flag for this. It will give >> you all the fancy static patching that you are missing by doing it this way. > There's no MKTME CPU feature. Right. We have tons of synthetic features that have no basis in the hardware CPUID feature. > Well, I guess we can invent syntactic one or just use static key directly. Did you mean synthetic? > Let's see how it behaves performance-wise before optimizing this. It's not an optimization, it's how we do things in arch/x86, and it has a *ton* of optimization infrastructure behind it that you get for free if you use it. I'm just trying to save Thomas's tired fingers from having to say the same thing in a week or two when he looks at this.