[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <81adf7e1-b9c2-e906-95a3-c6e08cbcc52a@intel.com>
Date: Tue, 28 Aug 2018 14:26:36 -0700
From: Dave Hansen <dave.hansen@...el.com>
To: Sean Christopherson <sean.j.christopherson@...el.com>
Cc: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>, x86@...nel.org,
platform-driver-x86@...r.kernel.org, nhorman@...hat.com,
npmccallum@...hat.com, linux-sgx@...r.kernel.org,
Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>,
"H. Peter Anvin" <hpa@...or.com>,
Suresh Siddha <suresh.b.siddha@...el.com>,
Serge Ayoun <serge.ayoun@...el.com>,
"open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v13 09/13] x86/sgx: Enclave Page Cache (EPC) memory
manager
On 08/28/2018 02:22 PM, Sean Christopherson wrote:
> On Tue, Aug 28, 2018 at 07:07:33AM -0700, Dave Hansen wrote:
>> On 08/28/2018 01:35 AM, Jarkko Sakkinen wrote:
>>> On Mon, Aug 27, 2018 at 02:15:34PM -0700, Dave Hansen wrote:
>>>> On 08/27/2018 11:53 AM, Jarkko Sakkinen wrote:
>>>>> +struct sgx_epc_page_ops {
>>>>> + bool (*get)(struct sgx_epc_page *epc_page);
>>>>> + void (*put)(struct sgx_epc_page *epc_page);
>>>>> + bool (*reclaim)(struct sgx_epc_page *epc_page);
>>>>> + void (*block)(struct sgx_epc_page *epc_page);
>>>>> + void (*write)(struct sgx_epc_page *epc_page);
>>>>> +};
>>>> Why do we need a fancy, slow (retpoline'd) set of function pointers when
>>>> we only have one user of these (the SGX driver)?
>>> KVM has its own implementation for these operations.
>>
>> That belongs in the changelog.
>>
>> Also, where is the implementation? How can we assess this code that was
>> built to create an abstraction without both of the users?
>
> I can provide an early preview of the KVM reclaim code, but honestly
> I think that would do more harm than good. The VMX architecture for
> EPC reclaim is complex, even for SGX standards. Opening that can of
> worms would likely derail this discussion. That being said, this
> abstraction isn't exactly what KVM will need, but it's pretty close
> and gives us something to build on.
Please remove the abstraction code. We don't introduce infrastructure
which no one will use.
Powered by blists - more mailing lists