Message ID | 20220826160503.1576966-2-zhiquan1.li@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86/sgx: fine grained SGX MCA behavior | expand |
On Sat, Aug 27, 2022 at 12:05:01AM +0800, Zhiquan Li wrote: > In order to describe the purpose of 'owner' field more exactly, > rename the 'owner' field of struct sgx_epc_page as 'encl_owner', > and update all of references. > > Signed-off-by: Zhiquan Li <zhiquan1.li@intel.com> Is this rename really worth of doing? I'd only consider such if there was two 'owner' fields but since there is no name collision, why bother? Thoughts? Please correct me if I've forgot something essential previously discussed. BR, Jarkko > --- > arch/x86/kernel/cpu/sgx/main.c | 20 ++++++++++---------- > arch/x86/kernel/cpu/sgx/sgx.h | 2 +- > 2 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c > index 515e2a5f25bb..1315c69a733e 100644 > --- a/arch/x86/kernel/cpu/sgx/main.c > +++ b/arch/x86/kernel/cpu/sgx/main.c > @@ -102,7 +102,7 @@ static void __sgx_sanitize_pages(struct list_head *dirty_page_list) > > static bool sgx_reclaimer_age(struct sgx_epc_page *epc_page) > { > - struct sgx_encl_page *page = epc_page->owner; > + struct sgx_encl_page *page = epc_page->encl_owner; > struct sgx_encl *encl = page->encl; > struct sgx_encl_mm *encl_mm; > bool ret = true; > @@ -134,7 +134,7 @@ static bool sgx_reclaimer_age(struct sgx_epc_page *epc_page) > > static void sgx_reclaimer_block(struct sgx_epc_page *epc_page) > { > - struct sgx_encl_page *page = epc_page->owner; > + struct sgx_encl_page *page = epc_page->encl_owner; > unsigned long addr = page->desc & PAGE_MASK; > struct sgx_encl *encl = page->encl; > int ret; > @@ -191,7 +191,7 @@ void sgx_ipi_cb(void *info) > static void sgx_encl_ewb(struct sgx_epc_page *epc_page, > struct sgx_backing *backing) > { > - struct sgx_encl_page *encl_page = epc_page->owner; > + struct sgx_encl_page *encl_page = epc_page->encl_owner; > struct sgx_encl *encl = encl_page->encl; > struct sgx_va_page *va_page; > unsigned int va_offset; > @@ -244,7 +244,7 @@ static void sgx_encl_ewb(struct sgx_epc_page *epc_page, > static void sgx_reclaimer_write(struct sgx_epc_page *epc_page, > struct sgx_backing *backing) > { > - struct sgx_encl_page *encl_page = epc_page->owner; > + struct sgx_encl_page *encl_page = epc_page->encl_owner; > struct sgx_encl *encl = encl_page->encl; > struct sgx_backing secs_backing; > int ret; > @@ -306,7 +306,7 @@ static void sgx_reclaim_pages(void) > epc_page = list_first_entry(&sgx_active_page_list, > struct sgx_epc_page, list); > list_del_init(&epc_page->list); > - encl_page = epc_page->owner; > + encl_page = epc_page->encl_owner; > > if (kref_get_unless_zero(&encl_page->encl->refcount) != 0) > chunk[cnt++] = epc_page; > @@ -320,7 +320,7 @@ static void sgx_reclaim_pages(void) > > for (i = 0; i < cnt; i++) { > epc_page = chunk[i]; > - encl_page = epc_page->owner; > + encl_page = epc_page->encl_owner; > > if (!sgx_reclaimer_age(epc_page)) > goto skip; > @@ -359,7 +359,7 @@ static void sgx_reclaim_pages(void) > if (!epc_page) > continue; > > - encl_page = epc_page->owner; > + encl_page = epc_page->encl_owner; > sgx_reclaimer_write(epc_page, &backing[i]); > > kref_put(&encl_page->encl->refcount, sgx_encl_release); > @@ -560,7 +560,7 @@ struct sgx_epc_page *sgx_alloc_epc_page(void *owner, bool reclaim) > for ( ; ; ) { > page = __sgx_alloc_epc_page(); > if (!IS_ERR(page)) { > - page->owner = owner; > + page->encl_owner = owner; > break; > } > > @@ -603,7 +603,7 @@ void sgx_free_epc_page(struct sgx_epc_page *page) > > spin_lock(&node->lock); > > - page->owner = NULL; > + page->encl_owner = NULL; > if (page->poison) > list_add(&page->list, &node->sgx_poison_page_list); > else > @@ -638,7 +638,7 @@ static bool __init sgx_setup_epc_section(u64 phys_addr, u64 size, > for (i = 0; i < nr_pages; i++) { > section->pages[i].section = index; > section->pages[i].flags = 0; > - section->pages[i].owner = NULL; > + section->pages[i].encl_owner = NULL; > section->pages[i].poison = 0; > list_add_tail(§ion->pages[i].list, &sgx_dirty_page_list); > } > diff --git a/arch/x86/kernel/cpu/sgx/sgx.h b/arch/x86/kernel/cpu/sgx/sgx.h > index 0f2020653fba..4d88abccd12e 100644 > --- a/arch/x86/kernel/cpu/sgx/sgx.h > +++ b/arch/x86/kernel/cpu/sgx/sgx.h > @@ -33,7 +33,7 @@ struct sgx_epc_page { > unsigned int section; > u16 flags; > u16 poison; > - struct sgx_encl_page *owner; > + struct sgx_encl_page *encl_owner; > struct list_head list; > }; > > -- > 2.25.1 >
On 2022/8/28 11:27, Jarkko Sakkinen wrote: > On Sat, Aug 27, 2022 at 12:05:01AM +0800, Zhiquan Li wrote: >> In order to describe the purpose of 'owner' field more exactly, >> rename the 'owner' field of struct sgx_epc_page as 'encl_owner', >> and update all of references. >> >> Signed-off-by: Zhiquan Li <zhiquan1.li@intel.com> > Is this rename really worth of doing? I'd only consider > such if there was two 'owner' fields but since there is > no name collision, why bother? > > Thoughts? Please correct me if I've forgot something > essential previously discussed. > > BR, Jarkko > > Hello Jarkko, The field name and union comes from Dave's suggestion: https://lore.kernel.org/linux-sgx/Yrf27fugD7lkyaek@kernel.org/T/#m2ff4778948cdc9ee65f09672f1d02f8dc467247b - If the rename make the thing complicated we can consider drop this patch, it might introduce potential conflict with the SGX patches under reviewing. - If you think the union introduced by patch 02 is also unnecessary, then we need to discuss it with Dave. Best Regards, Zhiquan
On Mon, Aug 29, 2022 at 09:23:48AM +0800, Zhiquan Li wrote: > > On 2022/8/28 11:27, Jarkko Sakkinen wrote: > > On Sat, Aug 27, 2022 at 12:05:01AM +0800, Zhiquan Li wrote: > >> In order to describe the purpose of 'owner' field more exactly, > >> rename the 'owner' field of struct sgx_epc_page as 'encl_owner', > >> and update all of references. > >> > >> Signed-off-by: Zhiquan Li <zhiquan1.li@intel.com> > > Is this rename really worth of doing? I'd only consider > > such if there was two 'owner' fields but since there is > > no name collision, why bother? > > > > Thoughts? Please correct me if I've forgot something > > essential previously discussed. > > > > BR, Jarkko > > > > > > Hello Jarkko, > > The field name and union comes from Dave's suggestion: > > https://lore.kernel.org/linux-sgx/Yrf27fugD7lkyaek@kernel.org/T/#m2ff4778948cdc9ee65f09672f1d02f8dc467247b > > - If the rename make the thing complicated we can consider drop this patch, it might introduce potential conflict with the SGX patches under reviewing. > - If you think the union introduced by patch 02 is also unnecessary, then we need to discuss it with Dave. > > Best Regards, > Zhiquan "In order to avoid unnecessary casting" might then be a better way to start the sentence. BR, Jarkko
On 2022/8/29 20:14, Jarkko Sakkinen wrote: > On Mon, Aug 29, 2022 at 09:23:48AM +0800, Zhiquan Li wrote: >> >> On 2022/8/28 11:27, Jarkko Sakkinen wrote: >>> On Sat, Aug 27, 2022 at 12:05:01AM +0800, Zhiquan Li wrote: >>>> In order to describe the purpose of 'owner' field more exactly, >>>> rename the 'owner' field of struct sgx_epc_page as 'encl_owner', >>>> and update all of references. >>>> >>>> Signed-off-by: Zhiquan Li <zhiquan1.li@intel.com> >>> Is this rename really worth of doing? I'd only consider >>> such if there was two 'owner' fields but since there is >>> no name collision, why bother? >>> >>> Thoughts? Please correct me if I've forgot something >>> essential previously discussed. >>> >>> BR, Jarkko >>> >>> >> >> Hello Jarkko, >> >> The field name and union comes from Dave's suggestion: >> >> https://lore.kernel.org/linux-sgx/Yrf27fugD7lkyaek@kernel.org/T/#m2ff4778948cdc9ee65f09672f1d02f8dc467247b >> >> - If the rename make the thing complicated we can consider drop this patch, it might introduce potential conflict with the SGX patches under reviewing. >> - If you think the union introduced by patch 02 is also unnecessary, then we need to discuss it with Dave. >> >> Best Regards, >> Zhiquan > > "In order to avoid unnecessary casting" might then be a better > way to start the sentence. > > BR, Jarkko No problem, I'll revise the commit message and send V7 soon. Thanks for your review. Best Regards, Zhiquan
diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c index 515e2a5f25bb..1315c69a733e 100644 --- a/arch/x86/kernel/cpu/sgx/main.c +++ b/arch/x86/kernel/cpu/sgx/main.c @@ -102,7 +102,7 @@ static void __sgx_sanitize_pages(struct list_head *dirty_page_list) static bool sgx_reclaimer_age(struct sgx_epc_page *epc_page) { - struct sgx_encl_page *page = epc_page->owner; + struct sgx_encl_page *page = epc_page->encl_owner; struct sgx_encl *encl = page->encl; struct sgx_encl_mm *encl_mm; bool ret = true; @@ -134,7 +134,7 @@ static bool sgx_reclaimer_age(struct sgx_epc_page *epc_page) static void sgx_reclaimer_block(struct sgx_epc_page *epc_page) { - struct sgx_encl_page *page = epc_page->owner; + struct sgx_encl_page *page = epc_page->encl_owner; unsigned long addr = page->desc & PAGE_MASK; struct sgx_encl *encl = page->encl; int ret; @@ -191,7 +191,7 @@ void sgx_ipi_cb(void *info) static void sgx_encl_ewb(struct sgx_epc_page *epc_page, struct sgx_backing *backing) { - struct sgx_encl_page *encl_page = epc_page->owner; + struct sgx_encl_page *encl_page = epc_page->encl_owner; struct sgx_encl *encl = encl_page->encl; struct sgx_va_page *va_page; unsigned int va_offset; @@ -244,7 +244,7 @@ static void sgx_encl_ewb(struct sgx_epc_page *epc_page, static void sgx_reclaimer_write(struct sgx_epc_page *epc_page, struct sgx_backing *backing) { - struct sgx_encl_page *encl_page = epc_page->owner; + struct sgx_encl_page *encl_page = epc_page->encl_owner; struct sgx_encl *encl = encl_page->encl; struct sgx_backing secs_backing; int ret; @@ -306,7 +306,7 @@ static void sgx_reclaim_pages(void) epc_page = list_first_entry(&sgx_active_page_list, struct sgx_epc_page, list); list_del_init(&epc_page->list); - encl_page = epc_page->owner; + encl_page = epc_page->encl_owner; if (kref_get_unless_zero(&encl_page->encl->refcount) != 0) chunk[cnt++] = epc_page; @@ -320,7 +320,7 @@ static void sgx_reclaim_pages(void) for (i = 0; i < cnt; i++) { epc_page = chunk[i]; - encl_page = epc_page->owner; + encl_page = epc_page->encl_owner; if (!sgx_reclaimer_age(epc_page)) goto skip; @@ -359,7 +359,7 @@ static void sgx_reclaim_pages(void) if (!epc_page) continue; - encl_page = epc_page->owner; + encl_page = epc_page->encl_owner; sgx_reclaimer_write(epc_page, &backing[i]); kref_put(&encl_page->encl->refcount, sgx_encl_release); @@ -560,7 +560,7 @@ struct sgx_epc_page *sgx_alloc_epc_page(void *owner, bool reclaim) for ( ; ; ) { page = __sgx_alloc_epc_page(); if (!IS_ERR(page)) { - page->owner = owner; + page->encl_owner = owner; break; } @@ -603,7 +603,7 @@ void sgx_free_epc_page(struct sgx_epc_page *page) spin_lock(&node->lock); - page->owner = NULL; + page->encl_owner = NULL; if (page->poison) list_add(&page->list, &node->sgx_poison_page_list); else @@ -638,7 +638,7 @@ static bool __init sgx_setup_epc_section(u64 phys_addr, u64 size, for (i = 0; i < nr_pages; i++) { section->pages[i].section = index; section->pages[i].flags = 0; - section->pages[i].owner = NULL; + section->pages[i].encl_owner = NULL; section->pages[i].poison = 0; list_add_tail(§ion->pages[i].list, &sgx_dirty_page_list); } diff --git a/arch/x86/kernel/cpu/sgx/sgx.h b/arch/x86/kernel/cpu/sgx/sgx.h index 0f2020653fba..4d88abccd12e 100644 --- a/arch/x86/kernel/cpu/sgx/sgx.h +++ b/arch/x86/kernel/cpu/sgx/sgx.h @@ -33,7 +33,7 @@ struct sgx_epc_page { unsigned int section; u16 flags; u16 poison; - struct sgx_encl_page *owner; + struct sgx_encl_page *encl_owner; struct list_head list; };
In order to describe the purpose of 'owner' field more exactly, rename the 'owner' field of struct sgx_epc_page as 'encl_owner', and update all of references. Signed-off-by: Zhiquan Li <zhiquan1.li@intel.com> --- arch/x86/kernel/cpu/sgx/main.c | 20 ++++++++++---------- arch/x86/kernel/cpu/sgx/sgx.h | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-)