diff mbox series

[RESEND,v6,1/3] x86/sgx: Rename the owner field of struct sgx_epc_page as encl_owner

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

Commit Message

Zhiquan Li Aug. 26, 2022, 4:05 p.m. UTC
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(-)

Comments

Jarkko Sakkinen Aug. 28, 2022, 3:27 a.m. UTC | #1
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(&section->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
>
Zhiquan Li Aug. 29, 2022, 1:23 a.m. UTC | #2
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
Jarkko Sakkinen Aug. 29, 2022, 12:14 p.m. UTC | #3
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
Zhiquan Li Aug. 30, 2022, 2:24 a.m. UTC | #4
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 mbox series

Patch

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(&section->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;
 };