From: "Huang, Kai" <kai.huang@intel.com> To: "jarkko.sakkinen@linux.intel.com" <jarkko.sakkinen@linux.intel.com>, "platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>, "x86@kernel.org" <x86@kernel.org> Cc: "nhorman@redhat.com" <nhorman@redhat.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Christopherson, Sean J" <sean.j.christopherson@intel.com>, "tglx@linutronix.de" <tglx@linutronix.de>, "suresh.b.siddha@intel.com" <suresh.b.siddha@intel.com>, "Ayoun, Serge" <serge.ayoun@intel.com>, "hpa@zytor.com" <hpa@zytor.com>, "npmccallum@redhat.com" <npmccallum@redhat.com>, "mingo@redhat.com" <mingo@redhat.com>, "linux-sgx@vger.kernel.org" <linux-sgx@vger.kernel.org>, "Hansen, Dave" <dave.hansen@intel.com> Subject: Re: [PATCH v13 10/13] x86/sgx: Add sgx_einit() for initializing enclaves Date: Mon, 27 Aug 2018 21:41:22 +0000 [thread overview] Message-ID: <1535406078.3416.9.camel@intel.com> (raw) In-Reply-To: <20180827185507.17087-11-jarkko.sakkinen@linux.intel.com> On Mon, 2018-08-27 at 21:53 +0300, Jarkko Sakkinen wrote: > From: Sean Christopherson <sean.j.christopherson@intel.com> > > Add a function to perform ENCLS(EINIT), which initializes an enclave, > which can be used by a driver for running enclaves and VMMs. > > Writing the LE hash MSRs is extraordinarily expensive, e.g. 3-4x > slower > than normal MSRs, so we use a per-cpu cache to track the last known > value > of the MSRs to avoid unnecessarily writing the MSRs with the current > value. > > Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> > Co-developed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> > --- > arch/x86/include/asm/sgx.h | 2 + > arch/x86/kernel/cpu/intel_sgx.c | 86 > +++++++++++++++++++++++++++++++-- > 2 files changed, 85 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/include/asm/sgx.h b/arch/x86/include/asm/sgx.h > index baf30d49b71f..c15c156436be 100644 > --- a/arch/x86/include/asm/sgx.h > +++ b/arch/x86/include/asm/sgx.h > @@ -108,6 +108,8 @@ void sgx_free_page(struct sgx_epc_page *page); > void sgx_page_reclaimable(struct sgx_epc_page *page); > struct page *sgx_get_backing(struct file *file, pgoff_t index); > void sgx_put_backing(struct page *backing_page, bool write); > +int sgx_einit(struct sgx_sigstruct *sigstruct, struct sgx_einittoken > *token, > + struct sgx_epc_page *secs_page, u64 lepubkeyhash[4]); > > #define ENCLS_FAULT_FLAG 0x40000000UL > #define ENCLS_FAULT_FLAG_ASM "$0x40000000" > diff --git a/arch/x86/kernel/cpu/intel_sgx.c > b/arch/x86/kernel/cpu/intel_sgx.c > index 1046478a3ab9..fe25e6805680 100644 > --- a/arch/x86/kernel/cpu/intel_sgx.c > +++ b/arch/x86/kernel/cpu/intel_sgx.c > @@ -9,6 +9,7 @@ > #include <linux/sched/signal.h> > #include <linux/shmem_fs.h> > #include <linux/slab.h> > +#include <linux/suspend.h> > #include <asm/sgx.h> > #include <asm/sgx_pr.h> > > @@ -38,6 +39,18 @@ static LIST_HEAD(sgx_active_page_list); > static DEFINE_SPINLOCK(sgx_active_page_list_lock); > static struct task_struct *ksgxswapd_tsk; > static DECLARE_WAIT_QUEUE_HEAD(ksgxswapd_waitq); > +static struct notifier_block sgx_pm_notifier; > +static u64 sgx_pm_cnt; > + > +/* The cache for the last known values of IA32_SGXLEPUBKEYHASHx MSRs > for each > + * CPU. The entries are initialized when they are first used by > sgx_einit(). > + */ > +struct sgx_lepubkeyhash { > + u64 msrs[4]; > + u64 pm_cnt; May I ask why do we need pm_cnt here? In fact why do we need suspend staff (namely, sgx_pm_cnt above, and related code in this patch) here in this patch? From the patch commit message I don't see why we need PM staff here. Please give comment why you need PM staff, or you may consider to split the PM staff to another patch. > +}; > + > +static DEFINE_PER_CPU(struct sgx_lepubkeyhash *, > sgx_lepubkeyhash_cache); > > /** > * sgx_reclaim_pages - reclaim EPC pages from the consumers > @@ -328,6 +341,54 @@ void sgx_put_backing(struct page *backing_page, > bool write) > } > EXPORT_SYMBOL_GPL(sgx_put_backing); > > +/** > + * sgx_einit - initialize an enclave > + * @sigstruct: a pointer to the SIGSTRUCT > + * @token: a pointer to the EINITTOKEN > + * @secs_page: a pointer to the SECS EPC page > + * @lepubkeyhash: the desired value for IA32_SGXLEPUBKEYHASHx > MSRs > + * > + * Try to perform EINIT operation. If the MSRs are writable, they > are updated > + * according to @lepubkeyhash. > + * > + * Return: > + * 0 on success, > + * -errno on failure > + * SGX error code if EINIT fails > + */ > +int sgx_einit(struct sgx_sigstruct *sigstruct, struct sgx_einittoken > *token, > + struct sgx_epc_page *secs_page, u64 lepubkeyhash[4]) > +{ > + struct sgx_lepubkeyhash __percpu *cache; > + bool cache_valid; > + int i, ret; > + > + if (!sgx_lc_enabled) > + return __einit(sigstruct, token, > sgx_epc_addr(secs_page)); > + > + cache = per_cpu(sgx_lepubkeyhash_cache, smp_processor_id()); > + if (!cache) { > + cache = kzalloc(sizeof(struct sgx_lepubkeyhash), > GFP_KERNEL); > + if (!cache) > + return -ENOMEM; > + } It seems per-cpu variable is a pointer to struct sgx_lepubkeyhash, and the actual structure is allocated at the first time the function is called. May I ask when will it be freed? It seems the free is not in this patch. Or I am misunderstanding something? > + > + cache_valid = cache->pm_cnt == sgx_pm_cnt; > + cache->pm_cnt = sgx_pm_cnt; > + preempt_disable(); > + for (i = 0; i < 4; i++) { > + if (cache_valid && lepubkeyhash[i] == cache- > >msrs[i]) > + continue; > + > + wrmsrl(MSR_IA32_SGXLEPUBKEYHASH0 + i, > lepubkeyhash[i]); > + cache->msrs[i] = lepubkeyhash[i]; > + } > + ret = __einit(sigstruct, token, sgx_epc_addr(secs_page)); > + preempt_enable(); > + return ret; > +} > +EXPORT_SYMBOL(sgx_einit); > + > static __init int sgx_init_epc_bank(u64 addr, u64 size, unsigned > long index, > struct sgx_epc_bank *bank) > { > @@ -426,6 +487,15 @@ static __init int sgx_page_cache_init(void) > return 0; > } > > +static int sgx_pm_notifier_cb(struct notifier_block *nb, unsigned > long action, > + void *data) > +{ > + if (action == PM_SUSPEND_PREPARE || action == > PM_HIBERNATION_PREPARE) > + sgx_pm_cnt++; > + > + return NOTIFY_DONE; > +} > + > static __init int sgx_init(void) > { > struct task_struct *tsk; > @@ -452,20 +522,30 @@ static __init int sgx_init(void) > if (!(fc & FEATURE_CONTROL_SGX_LE_WR)) > pr_info("IA32_SGXLEPUBKEYHASHn MSRs are not > writable\n"); > > - ret = sgx_page_cache_init(); > + sgx_pm_notifier.notifier_call = sgx_pm_notifier_cb; > + ret = register_pm_notifier(&sgx_pm_notifier); > if (ret) > return ret; > > + ret = sgx_page_cache_init(); > + if (ret) > + goto out_pm; > + > tsk = kthread_run(ksgxswapd, NULL, "ksgxswapd"); > if (IS_ERR(tsk)) { > - sgx_page_cache_teardown(); > - return PTR_ERR(tsk); > + ret = PTR_ERR(tsk); > + goto out_pcache; > } > ksgxswapd_tsk = tsk; > > sgx_enabled = true; > sgx_lc_enabled = !!(fc & FEATURE_CONTROL_SGX_LE_WR); > return 0; > +out_pcache: > + sgx_page_cache_teardown(); I don't think this particular 2 lines of code of 'out_pcache' case should be in this patch? Thanks, -Kai > +out_pm: > + unregister_pm_notifier(&sgx_pm_notifier); > + return ret; > } > > arch_initcall(sgx_init);
WARNING: multiple messages have this Message-ID (diff)
From: "Huang, Kai" <kai.huang@intel.com> To: "jarkko.sakkinen@linux.intel.com" <jarkko.sakkinen@linux.intel.com>, "platform-driver-x86@vger.kernel.org" <platform-driver-x86@vger.kernel.org>, "x86@kernel.org" <x86@kernel.org> Cc: "nhorman@redhat.com" <nhorman@redhat.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Christopherson, Sean J" <sean.j.christopherson@intel.com>, "tglx@linutronix.de" <tglx@linutronix.de>, "suresh.b.siddha@intel.com" <suresh.b.siddha@intel.com>, "Ayoun, Serge" <serge.ayoun@intel.com>, "hpa@zytor.com" <hpa@zytor.com>, "npmccallum@redhat.com" <npmccallum@redhat.com>, "mingo@redhat.com" <mingo@redhat.com>, "linux-sgx@vger.kernel.org" <linux-sgx@vger.kernel.org>, "Hansen, Dave" <dave.hansen@intel.com> Subject: Re: [PATCH v13 10/13] x86/sgx: Add sgx_einit() for initializing enclaves Date: Mon, 27 Aug 2018 14:41:22 -0700 [thread overview] Message-ID: <1535406078.3416.9.camel@intel.com> (raw) In-Reply-To: <20180827185507.17087-11-jarkko.sakkinen@linux.intel.com> T24gTW9uLCAyMDE4LTA4LTI3IGF0IDIxOjUzICswMzAwLCBKYXJra28gU2Fra2luZW4gd3JvdGU6 DQo+IEZyb206IFNlYW4gQ2hyaXN0b3BoZXJzb24gPHNlYW4uai5jaHJpc3RvcGhlcnNvbkBpbnRl bC5jb20+DQo+IA0KPiBBZGQgYSBmdW5jdGlvbiB0byBwZXJmb3JtIEVOQ0xTKEVJTklUKSwgd2hp Y2ggaW5pdGlhbGl6ZXMgYW4gZW5jbGF2ZSwNCj4gd2hpY2ggY2FuIGJlIHVzZWQgYnkgYSBkcml2 ZXIgZm9yIHJ1bm5pbmcgZW5jbGF2ZXMgYW5kIFZNTXMuDQo+IA0KPiBXcml0aW5nIHRoZSBMRSBo YXNoIE1TUnMgaXMgZXh0cmFvcmRpbmFyaWx5IGV4cGVuc2l2ZSwgZS5nLiAzLTR4DQo+IHNsb3dl cg0KPiB0aGFuIG5vcm1hbCBNU1JzLCBzbyB3ZSB1c2UgYSBwZXItY3B1IGNhY2hlIHRvIHRyYWNr IHRoZSBsYXN0IGtub3duDQo+IHZhbHVlDQo+IG9mIHRoZSBNU1JzIHRvIGF2b2lkIHVubmVjZXNz YXJpbHkgd3JpdGluZyB0aGUgTVNScyB3aXRoIHRoZSBjdXJyZW50DQo+IHZhbHVlLg0KPiANCj4g U2lnbmVkLW9mZi1ieTogU2VhbiBDaHJpc3RvcGhlcnNvbiA8c2Vhbi5qLmNocmlzdG9waGVyc29u QGludGVsLmNvbT4NCj4gQ28tZGV2ZWxvcGVkLWJ5OiBKYXJra28gU2Fra2luZW4gPGphcmtrby5z YWtraW5lbkBsaW51eC5pbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEphcmtrbyBTYWtraW5l biA8amFya2tvLnNha2tpbmVuQGxpbnV4LmludGVsLmNvbT4NCj4gLS0tDQo+ICBhcmNoL3g4Ni9p bmNsdWRlL2FzbS9zZ3guaCAgICAgIHwgIDIgKw0KPiAgYXJjaC94ODYva2VybmVsL2NwdS9pbnRl bF9zZ3guYyB8IDg2DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiAgMiBm aWxlcyBjaGFuZ2VkLCA4NSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NneC5oIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vc2d4LmgNCj4gaW5kZXggYmFmMzBkNDliNzFmLi5jMTVjMTU2NDM2YmUgMTAwNjQ0DQo+IC0t LSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3NneC5oDQo+ICsrKyBiL2FyY2gveDg2L2luY2x1ZGUv YXNtL3NneC5oDQo+IEBAIC0xMDgsNiArMTA4LDggQEAgdm9pZCBzZ3hfZnJlZV9wYWdlKHN0cnVj dCBzZ3hfZXBjX3BhZ2UgKnBhZ2UpOw0KPiAgdm9pZCBzZ3hfcGFnZV9yZWNsYWltYWJsZShzdHJ1 Y3Qgc2d4X2VwY19wYWdlICpwYWdlKTsNCj4gIHN0cnVjdCBwYWdlICpzZ3hfZ2V0X2JhY2tpbmco c3RydWN0IGZpbGUgKmZpbGUsIHBnb2ZmX3QgaW5kZXgpOw0KPiAgdm9pZCBzZ3hfcHV0X2JhY2tp bmcoc3RydWN0IHBhZ2UgKmJhY2tpbmdfcGFnZSwgYm9vbCB3cml0ZSk7DQo+ICtpbnQgc2d4X2Vp bml0KHN0cnVjdCBzZ3hfc2lnc3RydWN0ICpzaWdzdHJ1Y3QsIHN0cnVjdCBzZ3hfZWluaXR0b2tl bg0KPiAqdG9rZW4sDQo+ICsJICAgICAgc3RydWN0IHNneF9lcGNfcGFnZSAqc2Vjc19wYWdlLCB1 NjQgbGVwdWJrZXloYXNoWzRdKTsNCj4gIA0KPiAgI2RlZmluZSBFTkNMU19GQVVMVF9GTEFHIDB4 NDAwMDAwMDBVTA0KPiAgI2RlZmluZSBFTkNMU19GQVVMVF9GTEFHX0FTTSAiJDB4NDAwMDAwMDAi DQo+IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsX3NneC5jDQo+IGIvYXJj aC94ODYva2VybmVsL2NwdS9pbnRlbF9zZ3guYw0KPiBpbmRleCAxMDQ2NDc4YTNhYjkuLmZlMjVl NjgwNTY4MCAxMDA2NDQNCj4gLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9pbnRlbF9zZ3guYw0K PiArKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2ludGVsX3NneC5jDQo+IEBAIC05LDYgKzksNyBA QA0KPiAgI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4 L3NobWVtX2ZzLmg+DQo+ICAjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KPiArI2luY2x1ZGUgPGxp bnV4L3N1c3BlbmQuaD4NCj4gICNpbmNsdWRlIDxhc20vc2d4Lmg+DQo+ICAjaW5jbHVkZSA8YXNt L3NneF9wci5oPg0KPiAgDQo+IEBAIC0zOCw2ICszOSwxOCBAQCBzdGF0aWMgTElTVF9IRUFEKHNn eF9hY3RpdmVfcGFnZV9saXN0KTsNCj4gIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0soc2d4X2FjdGl2 ZV9wYWdlX2xpc3RfbG9jayk7DQo+ICBzdGF0aWMgc3RydWN0IHRhc2tfc3RydWN0ICprc2d4c3dh cGRfdHNrOw0KPiAgc3RhdGljIERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEKGtzZ3hzd2FwZF93YWl0 cSk7DQo+ICtzdGF0aWMgc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHNneF9wbV9ub3RpZmllcjsNCj4g K3N0YXRpYyB1NjQgc2d4X3BtX2NudDsNCj4gKw0KPiArLyogVGhlIGNhY2hlIGZvciB0aGUgbGFz dCBrbm93biB2YWx1ZXMgb2YgSUEzMl9TR1hMRVBVQktFWUhBU0h4IE1TUnMNCj4gZm9yIGVhY2gN Cj4gKyAqIENQVS4gVGhlIGVudHJpZXMgYXJlIGluaXRpYWxpemVkIHdoZW4gdGhleSBhcmUgZmly c3QgdXNlZCBieQ0KPiBzZ3hfZWluaXQoKS4NCj4gKyAqLw0KPiArc3RydWN0IHNneF9sZXB1Ymtl eWhhc2ggew0KPiArCXU2NCBtc3JzWzRdOw0KPiArCXU2NCBwbV9jbnQ7DQoNCk1heSBJIGFzayB3 aHkgZG8gd2UgbmVlZCBwbV9jbnQgaGVyZT8gSW4gZmFjdCB3aHkgZG8gd2UgbmVlZCBzdXNwZW5k DQpzdGFmZiAobmFtZWx5LCBzZ3hfcG1fY250IGFib3ZlLCBhbmQgcmVsYXRlZCBjb2RlIGluIHRo aXMgcGF0Y2gpIGhlcmUNCmluIHRoaXMgcGF0Y2g/IEZyb20gdGhlIHBhdGNoIGNvbW1pdCBtZXNz YWdlIEkgZG9uJ3Qgc2VlIHdoeSB3ZSBuZWVkIFBNDQpzdGFmZiBoZXJlLiBQbGVhc2UgZ2l2ZSBj b21tZW50IHdoeSB5b3UgbmVlZCBQTSBzdGFmZiwgb3IgeW91IG1heQ0KY29uc2lkZXIgdG8gc3Bs aXQgdGhlIFBNIHN0YWZmIHRvIGFub3RoZXIgcGF0Y2guDQoNCj4gK307DQo+ICsNCj4gK3N0YXRp YyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2d4X2xlcHVia2V5aGFzaCAqLA0KPiBzZ3hfbGVwdWJr ZXloYXNoX2NhY2hlKTsNCj4gIA0KPiAgLyoqDQo+ICAgKiBzZ3hfcmVjbGFpbV9wYWdlcyAtIHJl Y2xhaW0gRVBDIHBhZ2VzIGZyb20gdGhlIGNvbnN1bWVycw0KPiBAQCAtMzI4LDYgKzM0MSw1NCBA QCB2b2lkIHNneF9wdXRfYmFja2luZyhzdHJ1Y3QgcGFnZSAqYmFja2luZ19wYWdlLA0KPiBib29s IHdyaXRlKQ0KPiAgfQ0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoc2d4X3B1dF9iYWNraW5nKTsNCj4g IA0KPiArLyoqDQo+ICsgKiBzZ3hfZWluaXQgLSBpbml0aWFsaXplIGFuIGVuY2xhdmUNCj4gKyAq IEBzaWdzdHJ1Y3Q6CQlhIHBvaW50ZXIgdG8gdGhlIFNJR1NUUlVDVA0KPiArICogQHRva2VuOgkJ YSBwb2ludGVyIHRvIHRoZSBFSU5JVFRPS0VODQo+ICsgKiBAc2Vjc19wYWdlOgkJYSBwb2ludGVy IHRvIHRoZSBTRUNTIEVQQyBwYWdlDQo+ICsgKiBAbGVwdWJrZXloYXNoOgl0aGUgZGVzaXJlZCB2 YWx1ZSBmb3IgSUEzMl9TR1hMRVBVQktFWUhBU0h4DQo+IE1TUnMNCj4gKyAqDQo+ICsgKiBUcnkg dG8gcGVyZm9ybSBFSU5JVCBvcGVyYXRpb24uIElmIHRoZSBNU1JzIGFyZSB3cml0YWJsZSwgdGhl eQ0KPiBhcmUgdXBkYXRlZA0KPiArICogYWNjb3JkaW5nIHRvIEBsZXB1YmtleWhhc2guDQo+ICsg Kg0KPiArICogUmV0dXJuOg0KPiArICogICAwIG9uIHN1Y2Nlc3MsDQo+ICsgKiAgIC1lcnJubyBv biBmYWlsdXJlDQo+ICsgKiAgIFNHWCBlcnJvciBjb2RlIGlmIEVJTklUIGZhaWxzDQo+ICsgKi8N Cj4gK2ludCBzZ3hfZWluaXQoc3RydWN0IHNneF9zaWdzdHJ1Y3QgKnNpZ3N0cnVjdCwgc3RydWN0 IHNneF9laW5pdHRva2VuDQo+ICp0b2tlbiwNCj4gKwkgICAgICBzdHJ1Y3Qgc2d4X2VwY19wYWdl ICpzZWNzX3BhZ2UsIHU2NCBsZXB1YmtleWhhc2hbNF0pDQo+ICt7DQo+ICsJc3RydWN0IHNneF9s ZXB1YmtleWhhc2ggX19wZXJjcHUgKmNhY2hlOw0KPiArCWJvb2wgY2FjaGVfdmFsaWQ7DQo+ICsJ aW50IGksIHJldDsNCj4gKw0KPiArCWlmICghc2d4X2xjX2VuYWJsZWQpDQo+ICsJCXJldHVybiBf X2Vpbml0KHNpZ3N0cnVjdCwgdG9rZW4sDQo+IHNneF9lcGNfYWRkcihzZWNzX3BhZ2UpKTsNCj4g Kw0KPiArCWNhY2hlID0gcGVyX2NwdShzZ3hfbGVwdWJrZXloYXNoX2NhY2hlLCBzbXBfcHJvY2Vz c29yX2lkKCkpOw0KPiArCWlmICghY2FjaGUpIHsNCj4gKwkJY2FjaGUgPSBremFsbG9jKHNpemVv ZihzdHJ1Y3Qgc2d4X2xlcHVia2V5aGFzaCksDQo+IEdGUF9LRVJORUwpOw0KPiArCQlpZiAoIWNh Y2hlKQ0KPiArCQkJcmV0dXJuIC1FTk9NRU07DQo+ICsJfQ0KDQpJdCBzZWVtcyBwZXItY3B1IHZh cmlhYmxlIGlzIGEgcG9pbnRlciB0byBzdHJ1Y3Qgc2d4X2xlcHVia2V5aGFzaCwgYW5kDQp0aGUg YWN0dWFsIHN0cnVjdHVyZSBpcyBhbGxvY2F0ZWQgYXQgdGhlIGZpcnN0IHRpbWUgdGhlIGZ1bmN0 aW9uIGlzDQpjYWxsZWQuIE1heSBJIGFzayB3aGVuIHdpbGwgaXQgYmUgZnJlZWQ/IEl0IHNlZW1z IHRoZSBmcmVlIGlzIG5vdCBpbg0KdGhpcyBwYXRjaC4gT3IgSSBhbSBtaXN1bmRlcnN0YW5kaW5n IHNvbWV0aGluZz8NCg0KPiArDQo+ICsJY2FjaGVfdmFsaWQgPSBjYWNoZS0+cG1fY250ID09IHNn eF9wbV9jbnQ7DQo+ICsJY2FjaGUtPnBtX2NudCA9IHNneF9wbV9jbnQ7DQo+ICsJcHJlZW1wdF9k aXNhYmxlKCk7DQo+ICsJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgew0KPiArCQlpZiAoY2FjaGVf dmFsaWQgJiYgbGVwdWJrZXloYXNoW2ldID09IGNhY2hlLQ0KPiA+bXNyc1tpXSkNCj4gKwkJCWNv bnRpbnVlOw0KPiArDQo+ICsJCXdybXNybChNU1JfSUEzMl9TR1hMRVBVQktFWUhBU0gwICsgaSwN Cj4gbGVwdWJrZXloYXNoW2ldKTsNCj4gKwkJY2FjaGUtPm1zcnNbaV0gPSBsZXB1YmtleWhhc2hb aV07DQo+ICsJfQ0KPiArCXJldCA9IF9fZWluaXQoc2lnc3RydWN0LCB0b2tlbiwgc2d4X2VwY19h ZGRyKHNlY3NfcGFnZSkpOw0KPiArCXByZWVtcHRfZW5hYmxlKCk7DQo+ICsJcmV0dXJuIHJldDsN Cj4gK30NCj4gK0VYUE9SVF9TWU1CT0woc2d4X2Vpbml0KTsNCj4gKw0KPiAgc3RhdGljIF9faW5p dCBpbnQgc2d4X2luaXRfZXBjX2JhbmsodTY0IGFkZHIsIHU2NCBzaXplLCB1bnNpZ25lZA0KPiBs b25nIGluZGV4LA0KPiAgCQkJCSAgICBzdHJ1Y3Qgc2d4X2VwY19iYW5rICpiYW5rKQ0KPiAgew0K PiBAQCAtNDI2LDYgKzQ4NywxNSBAQCBzdGF0aWMgX19pbml0IGludCBzZ3hfcGFnZV9jYWNoZV9p bml0KHZvaWQpDQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4gK3N0YXRpYyBpbnQgc2d4X3Bt X25vdGlmaWVyX2NiKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkDQo+IGxvbmcg YWN0aW9uLA0KPiArCQkJICAgICAgdm9pZCAqZGF0YSkNCj4gK3sNCj4gKwlpZiAoYWN0aW9uID09 IFBNX1NVU1BFTkRfUFJFUEFSRSB8fCBhY3Rpb24gPT0NCj4gUE1fSElCRVJOQVRJT05fUFJFUEFS RSkNCj4gKwkJc2d4X3BtX2NudCsrOw0KPiArDQo+ICsJcmV0dXJuIE5PVElGWV9ET05FOw0KPiAr fQ0KPiArDQo+ICBzdGF0aWMgX19pbml0IGludCBzZ3hfaW5pdCh2b2lkKQ0KPiAgew0KPiAgCXN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrOw0KPiBAQCAtNDUyLDIwICs1MjIsMzAgQEAgc3RhdGljIF9f aW5pdCBpbnQgc2d4X2luaXQodm9pZCkNCj4gIAlpZiAoIShmYyAmIEZFQVRVUkVfQ09OVFJPTF9T R1hfTEVfV1IpKQ0KPiAgCQlwcl9pbmZvKCJJQTMyX1NHWExFUFVCS0VZSEFTSG4gTVNScyBhcmUg bm90DQo+IHdyaXRhYmxlXG4iKTsNCj4gIA0KPiAtCXJldCA9IHNneF9wYWdlX2NhY2hlX2luaXQo KTsNCj4gKwlzZ3hfcG1fbm90aWZpZXIubm90aWZpZXJfY2FsbCA9IHNneF9wbV9ub3RpZmllcl9j YjsNCj4gKwlyZXQgPSByZWdpc3Rlcl9wbV9ub3RpZmllcigmc2d4X3BtX25vdGlmaWVyKTsNCj4g IAlpZiAocmV0KQ0KPiAgCQlyZXR1cm4gcmV0Ow0KPiAgDQo+ICsJcmV0ID0gc2d4X3BhZ2VfY2Fj aGVfaW5pdCgpOw0KPiArCWlmIChyZXQpDQo+ICsJCWdvdG8gb3V0X3BtOw0KPiArDQo+ICAJdHNr ID0ga3RocmVhZF9ydW4oa3NneHN3YXBkLCBOVUxMLCAia3NneHN3YXBkIik7DQo+ICAJaWYgKElT X0VSUih0c2spKSB7DQo+IC0JCXNneF9wYWdlX2NhY2hlX3RlYXJkb3duKCk7DQo+IC0JCXJldHVy biBQVFJfRVJSKHRzayk7DQo+ICsJCXJldCA9IFBUUl9FUlIodHNrKTsNCj4gKwkJZ290byBvdXRf cGNhY2hlOw0KPiAgCX0NCj4gIAlrc2d4c3dhcGRfdHNrID0gdHNrOw0KPiAgDQo+ICAJc2d4X2Vu YWJsZWQgPSB0cnVlOw0KPiAgCXNneF9sY19lbmFibGVkID0gISEoZmMgJiBGRUFUVVJFX0NPTlRS T0xfU0dYX0xFX1dSKTsNCj4gIAlyZXR1cm4gMDsNCj4gK291dF9wY2FjaGU6DQo+ICsJc2d4X3Bh Z2VfY2FjaGVfdGVhcmRvd24oKTsNCg0KSSBkb24ndCB0aGluayB0aGlzIHBhcnRpY3VsYXIgMiBs aW5lcyBvZiBjb2RlIG9mICdvdXRfcGNhY2hlJyBjYXNlDQpzaG91bGQgYmUgaW4gdGhpcyBwYXRj aD8NCg0KVGhhbmtzLA0KLUthaQ0KDQo+ICtvdXRfcG06DQo+ICsJdW5yZWdpc3Rlcl9wbV9ub3Rp Zmllcigmc2d4X3BtX25vdGlmaWVyKTsNCj4gKwlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiAgDQo+ICBh cmNoX2luaXRjYWxsKHNneF9pbml0KTs=
next prev parent reply other threads:[~2018-08-27 21:42 UTC|newest] Thread overview: 259+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-27 18:53 [PATCH v13 00/13] Intel SGX1 support Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 01/13] x86/sgx: Update MAINTAINERS Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-09-03 12:56 ` Andy Shevchenko 2018-09-03 12:56 ` Andy Shevchenko 2018-09-03 19:10 ` Jarkko Sakkinen 2018-09-03 19:10 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 02/13] x86/cpufeature: Add SGX and SGX_LC CPU features Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-28 0:07 ` Huang, Kai 2018-08-28 0:07 ` Huang, Kai 2018-08-28 0:07 ` Huang, Kai 2018-08-28 7:17 ` Jarkko Sakkinen 2018-08-28 7:17 ` Jarkko Sakkinen 2018-08-29 7:36 ` Huang, Kai 2018-08-29 7:36 ` Huang, Kai 2018-08-29 7:36 ` Huang, Kai 2018-08-31 12:19 ` Jarkko Sakkinen 2018-08-31 12:19 ` Jarkko Sakkinen 2018-08-31 12:19 ` Jarkko Sakkinen 2018-08-31 16:18 ` Dr. Greg 2018-08-31 16:18 ` Dr. Greg 2018-08-31 16:18 ` Dr. Greg 2018-08-27 18:53 ` [PATCH v13 03/13] x86/cpufeatures: Add Intel-defined SGX leaf CPUID_12_EAX Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 19:39 ` Dave Hansen 2018-08-27 19:39 ` Dave Hansen 2018-08-27 19:39 ` Dave Hansen 2018-08-27 19:39 ` Dave Hansen 2018-08-28 7:23 ` Jarkko Sakkinen 2018-08-28 7:23 ` Jarkko Sakkinen 2018-08-28 10:21 ` Borislav Petkov 2018-08-28 10:21 ` Borislav Petkov 2018-08-28 10:38 ` Jarkko Sakkinen 2018-08-28 10:38 ` Jarkko Sakkinen 2018-08-28 10:38 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 04/13] x86/sgx: Architectural structures Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 19:41 ` Dave Hansen 2018-08-27 19:41 ` Dave Hansen 2018-08-27 19:41 ` Dave Hansen 2018-08-28 8:08 ` Jarkko Sakkinen 2018-08-28 8:08 ` Jarkko Sakkinen 2018-08-28 8:08 ` Jarkko Sakkinen 2018-09-03 13:16 ` Andy Shevchenko 2018-09-03 13:16 ` Andy Shevchenko 2018-09-03 19:17 ` Jarkko Sakkinen 2018-09-03 19:17 ` Jarkko Sakkinen 2018-09-04 16:04 ` Dave Hansen 2018-09-04 16:04 ` Dave Hansen 2018-09-04 16:06 ` Andy Shevchenko 2018-09-04 16:06 ` Andy Shevchenko 2018-09-05 17:32 ` Jarkko Sakkinen 2018-09-05 17:32 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 05/13] x86/msr: Add SGX definitions to msr-index.h Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 19:42 ` Dave Hansen 2018-08-27 19:42 ` Dave Hansen 2018-08-27 19:42 ` Dave Hansen 2018-08-28 8:11 ` Jarkko Sakkinen 2018-08-28 8:11 ` Jarkko Sakkinen 2018-08-28 8:11 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 06/13] x86/sgx: Detect Intel SGX Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 19:53 ` Dave Hansen 2018-08-27 19:53 ` Dave Hansen 2018-08-27 19:53 ` Dave Hansen 2018-08-28 8:28 ` Jarkko Sakkinen 2018-08-28 8:28 ` Jarkko Sakkinen 2018-08-28 8:28 ` Jarkko Sakkinen 2018-09-03 14:26 ` Andy Shevchenko 2018-09-03 14:26 ` Andy Shevchenko 2018-09-04 9:56 ` Jarkko Sakkinen 2018-09-04 9:56 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 07/13] x86/sgx: Add data structures for tracking the EPC pages Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 21:07 ` Dave Hansen 2018-08-27 21:07 ` Dave Hansen 2018-08-27 21:07 ` Dave Hansen 2018-08-28 10:30 ` Jarkko Sakkinen 2018-08-28 10:30 ` Jarkko Sakkinen 2018-08-28 10:30 ` Jarkko Sakkinen 2018-08-28 16:53 ` Dave Hansen 2018-08-28 16:53 ` Dave Hansen 2018-08-28 16:53 ` Dave Hansen 2018-08-28 21:34 ` Sean Christopherson 2018-08-28 21:34 ` Sean Christopherson 2018-08-28 21:34 ` Sean Christopherson 2018-08-31 11:13 ` Jarkko Sakkinen 2018-08-31 11:13 ` Jarkko Sakkinen 2018-08-31 11:13 ` Jarkko Sakkinen 2018-08-31 11:10 ` Jarkko Sakkinen 2018-08-31 11:10 ` Jarkko Sakkinen 2018-08-31 11:10 ` Jarkko Sakkinen 2018-09-03 14:41 ` Andy Shevchenko 2018-09-03 14:41 ` Andy Shevchenko 2018-09-04 9:59 ` Jarkko Sakkinen 2018-09-04 9:59 ` Jarkko Sakkinen 2018-09-04 17:49 ` Sean Christopherson 2018-09-04 17:49 ` Sean Christopherson 2018-09-04 18:01 ` Andy Shevchenko 2018-09-04 18:01 ` Andy Shevchenko 2018-09-04 18:17 ` Sean Christopherson 2018-09-04 18:17 ` Sean Christopherson 2018-09-05 17:36 ` Jarkko Sakkinen 2018-09-05 17:36 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 08/13] x86/sgx: Add wrappers for ENCLS leaf functions Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-09-03 15:01 ` Andy Shevchenko 2018-09-03 15:01 ` Andy Shevchenko 2018-09-04 11:09 ` Jarkko Sakkinen 2018-09-04 11:09 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 09/13] x86/sgx: Enclave Page Cache (EPC) memory manager Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 21:14 ` Dave Hansen 2018-08-27 21:14 ` Dave Hansen 2018-08-27 21:14 ` Dave Hansen 2018-08-28 8:36 ` Jarkko Sakkinen 2018-08-28 8:36 ` Jarkko Sakkinen 2018-08-28 8:36 ` Jarkko Sakkinen 2018-08-27 21:15 ` Dave Hansen 2018-08-27 21:15 ` Dave Hansen 2018-08-27 21:15 ` Dave Hansen 2018-08-28 8:35 ` Jarkko Sakkinen 2018-08-28 8:35 ` Jarkko Sakkinen 2018-08-28 8:35 ` Jarkko Sakkinen 2018-08-28 14:07 ` Dave Hansen 2018-08-28 14:07 ` Dave Hansen 2018-08-28 14:07 ` Dave Hansen 2018-08-28 21:22 ` Sean Christopherson 2018-08-28 21:22 ` Sean Christopherson 2018-08-28 21:22 ` Sean Christopherson 2018-08-28 21:26 ` Dave Hansen 2018-08-28 21:26 ` Dave Hansen 2018-08-28 21:26 ` Dave Hansen 2018-08-28 21:52 ` Sean Christopherson 2018-08-28 21:52 ` Sean Christopherson 2018-08-28 21:52 ` Sean Christopherson 2018-08-31 11:22 ` Jarkko Sakkinen 2018-08-31 11:22 ` Jarkko Sakkinen 2018-08-31 11:22 ` Jarkko Sakkinen 2018-09-03 19:02 ` Andy Shevchenko 2018-09-03 19:02 ` Andy Shevchenko 2018-09-04 15:38 ` Jarkko Sakkinen 2018-09-04 15:38 ` Jarkko Sakkinen 2018-09-04 15:45 ` Sean Christopherson 2018-09-04 15:45 ` Sean Christopherson 2018-09-11 15:04 ` Sean Christopherson 2018-09-11 15:04 ` Sean Christopherson 2018-09-11 15:04 ` Sean Christopherson 2018-09-16 11:40 ` Jarkko Sakkinen 2018-09-16 11:40 ` Jarkko Sakkinen 2018-09-16 11:40 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 10/13] x86/sgx: Add sgx_einit() for initializing enclaves Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 21:41 ` Huang, Kai [this message] 2018-08-27 21:41 ` Huang, Kai 2018-08-27 21:41 ` Huang, Kai 2018-08-28 7:01 ` Jarkko Sakkinen 2018-08-28 7:01 ` Jarkko Sakkinen 2018-08-29 7:33 ` Huang, Kai 2018-08-29 7:33 ` Huang, Kai 2018-08-29 7:33 ` Huang, Kai 2018-08-29 20:33 ` Sean Christopherson 2018-08-29 20:33 ` Sean Christopherson 2018-08-29 20:58 ` Huang, Kai 2018-08-29 20:58 ` Huang, Kai 2018-08-29 20:58 ` Huang, Kai 2018-08-29 21:09 ` Sean Christopherson 2018-08-29 21:09 ` Sean Christopherson 2018-08-30 1:45 ` Huang, Kai 2018-08-30 1:45 ` Huang, Kai 2018-08-30 1:45 ` Huang, Kai 2018-08-31 17:43 ` Sean Christopherson 2018-08-31 17:43 ` Sean Christopherson 2018-08-31 21:34 ` Dr. Greg 2018-08-31 21:34 ` Dr. Greg 2018-08-31 21:34 ` Dr. Greg 2018-09-03 19:27 ` Jarkko Sakkinen 2018-09-03 19:27 ` Jarkko Sakkinen 2018-09-03 18:15 ` Jarkko Sakkinen 2018-09-03 18:15 ` Jarkko Sakkinen 2018-08-31 12:17 ` Jarkko Sakkinen 2018-08-31 12:17 ` Jarkko Sakkinen 2018-08-31 18:15 ` Sean Christopherson 2018-08-31 18:15 ` Sean Christopherson 2018-09-03 19:19 ` Jarkko Sakkinen 2018-09-03 19:19 ` Jarkko Sakkinen 2018-09-03 23:45 ` Huang, Kai 2018-09-03 23:45 ` Huang, Kai 2018-09-03 23:45 ` Huang, Kai 2018-09-04 14:54 ` Sean Christopherson 2018-09-04 14:54 ` Sean Christopherson 2018-09-04 15:30 ` Jarkko Sakkinen 2018-09-04 15:30 ` Jarkko Sakkinen 2018-09-04 16:35 ` Sean Christopherson 2018-09-04 16:35 ` Sean Christopherson 2018-09-04 22:13 ` Huang, Kai 2018-09-04 22:13 ` Huang, Kai 2018-09-04 22:13 ` Huang, Kai 2018-09-05 17:39 ` Jarkko Sakkinen 2018-09-05 17:39 ` Jarkko Sakkinen 2018-09-04 15:26 ` Jarkko Sakkinen 2018-09-04 15:26 ` Jarkko Sakkinen 2018-09-03 13:53 ` Jann Horn 2018-09-03 13:53 ` Jann Horn 2018-09-04 9:55 ` Jarkko Sakkinen 2018-09-04 9:55 ` Jarkko Sakkinen 2018-09-04 16:05 ` Andy Shevchenko 2018-09-04 16:05 ` Andy Shevchenko 2018-08-27 18:53 ` [PATCH v13 11/13] platform/x86: Intel SGX driver Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-09-04 17:59 ` Andy Shevchenko 2018-09-04 17:59 ` Andy Shevchenko 2018-09-05 17:33 ` Jarkko Sakkinen 2018-09-05 17:33 ` Jarkko Sakkinen 2018-09-05 17:36 ` Andy Shevchenko 2018-09-05 17:36 ` Andy Shevchenko 2018-09-06 9:21 ` Jarkko Sakkinen 2018-09-06 9:21 ` Jarkko Sakkinen 2018-09-06 17:35 ` Miguel Ojeda 2018-09-06 17:35 ` Miguel Ojeda 2018-09-07 0:50 ` Joe Perches 2018-09-07 0:50 ` Joe Perches 2018-09-07 17:02 ` Sean Christopherson 2018-09-07 17:02 ` Sean Christopherson 2018-09-07 17:02 ` Sean Christopherson 2018-09-10 18:37 ` Jarkko Sakkinen 2018-09-10 18:37 ` Jarkko Sakkinen 2018-09-10 21:22 ` Joe Perches 2018-09-10 21:22 ` Joe Perches 2018-09-10 18:33 ` Jarkko Sakkinen 2018-09-10 18:33 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 12/13] platform/x86: ptrace() support for the " Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` [PATCH v13 13/13] x86/sgx: Driver documentation Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 18:53 ` Jarkko Sakkinen 2018-08-27 19:40 ` Randy Dunlap 2018-08-27 19:40 ` Randy Dunlap 2018-08-28 7:58 ` Jarkko Sakkinen 2018-08-28 7:58 ` Jarkko Sakkinen 2018-08-28 8:03 ` Jarkko Sakkinen 2018-08-28 8:03 ` Jarkko Sakkinen
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1535406078.3416.9.camel@intel.com \ --to=kai.huang@intel.com \ --cc=dave.hansen@intel.com \ --cc=hpa@zytor.com \ --cc=jarkko.sakkinen@linux.intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sgx@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=nhorman@redhat.com \ --cc=npmccallum@redhat.com \ --cc=platform-driver-x86@vger.kernel.org \ --cc=sean.j.christopherson@intel.com \ --cc=serge.ayoun@intel.com \ --cc=suresh.b.siddha@intel.com \ --cc=tglx@linutronix.de \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.