diff mbox series

[v3,3/3] cxl/region: Simplify cxl_region_nid()

Message ID 20240618084639.1419629-4-ying.huang@intel.com
State New
Headers show
Series cxl/region: Support to calculate memory tier abstract distance | expand

Commit Message

Huang, Ying June 18, 2024, 8:46 a.m. UTC
The node ID of the region can be gotten via resource start address
directly.  This simplifies the implementation of cxl_region_nid().

Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
Suggested-by: Alison Schofield <alison.schofield@intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Bharata B Rao <bharata@amd.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Ira Weiny <ira.weiny@intel.com>
---
 drivers/cxl/core/region.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Jonathan Cameron June 20, 2024, 11:15 a.m. UTC | #1
On Tue, 18 Jun 2024 16:46:39 +0800
Huang Ying <ying.huang@intel.com> wrote:

> The node ID of the region can be gotten via resource start address
> directly.  This simplifies the implementation of cxl_region_nid().
> 
> Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
> Suggested-by: Alison Schofield <alison.schofield@intel.com>
> Cc: Dan Williams <dan.j.williams@intel.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Dave Jiang <dave.jiang@intel.com>
> Cc: Bharata B Rao <bharata@amd.com>
> Cc: Alistair Popple <apopple@nvidia.com>
> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> Cc: Davidlohr Bueso <dave@stgolabs.net>
> Cc: Vishal Verma <vishal.l.verma@intel.com>
> Cc: Ira Weiny <ira.weiny@intel.com>
> ---
>  drivers/cxl/core/region.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index dc15ceba7ab7..605efe3562c6 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -2309,15 +2309,13 @@ static bool cxl_region_update_coordinates(struct cxl_region *cxlr, int nid)
>  static int cxl_region_nid(struct cxl_region *cxlr)
>  {
>  	struct cxl_region_params *p = &cxlr->params;
> -	struct cxl_endpoint_decoder *cxled;
> -	struct cxl_decoder *cxld;
> +	struct resource *res;
>  
>  	guard(rwsem_read)(&cxl_region_rwsem);
> -	cxled = p->targets[0];
> -	if (!cxled)
> +        res = p->res;

Odd indent - I think spaces rather than tab.  Otherwise seems reasonable.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>


> +	if (!res)
>  		return NUMA_NO_NODE;
> -	cxld = &cxled->cxld;
> -	return phys_to_target_node(cxld->hpa_range.start);
> +	return phys_to_target_node(res->start);
>  }
>  
>  static int cxl_region_perf_attrs_callback(struct notifier_block *nb,
Huang, Ying June 21, 2024, 2:25 a.m. UTC | #2
Jonathan Cameron <Jonathan.Cameron@Huawei.com> writes:

> On Tue, 18 Jun 2024 16:46:39 +0800
> Huang Ying <ying.huang@intel.com> wrote:
>
>> The node ID of the region can be gotten via resource start address
>> directly.  This simplifies the implementation of cxl_region_nid().
>> 
>> Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
>> Suggested-by: Alison Schofield <alison.schofield@intel.com>
>> Cc: Dan Williams <dan.j.williams@intel.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>> Cc: Dave Jiang <dave.jiang@intel.com>
>> Cc: Bharata B Rao <bharata@amd.com>
>> Cc: Alistair Popple <apopple@nvidia.com>
>> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
>> Cc: Davidlohr Bueso <dave@stgolabs.net>
>> Cc: Vishal Verma <vishal.l.verma@intel.com>
>> Cc: Ira Weiny <ira.weiny@intel.com>
>> ---
>>  drivers/cxl/core/region.c | 10 ++++------
>>  1 file changed, 4 insertions(+), 6 deletions(-)
>> 
>> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
>> index dc15ceba7ab7..605efe3562c6 100644
>> --- a/drivers/cxl/core/region.c
>> +++ b/drivers/cxl/core/region.c
>> @@ -2309,15 +2309,13 @@ static bool cxl_region_update_coordinates(struct cxl_region *cxlr, int nid)
>>  static int cxl_region_nid(struct cxl_region *cxlr)
>>  {
>>  	struct cxl_region_params *p = &cxlr->params;
>> -	struct cxl_endpoint_decoder *cxled;
>> -	struct cxl_decoder *cxld;
>> +	struct resource *res;
>>  
>>  	guard(rwsem_read)(&cxl_region_rwsem);
>> -	cxled = p->targets[0];
>> -	if (!cxled)
>> +        res = p->res;
>
> Odd indent - I think spaces rather than tab.  Otherwise seems
> reasonable.

Good catch!  I used spaces accidently.

Hi, Dave,

Do you need me to send a new version?  Or you can change it?

> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

Thank you very much for your review!

--
Best Regards,
Huang, Ying

>
>> +	if (!res)
>>  		return NUMA_NO_NODE;
>> -	cxld = &cxled->cxld;
>> -	return phys_to_target_node(cxld->hpa_range.start);
>> +	return phys_to_target_node(res->start);
>>  }
>>  
>>  static int cxl_region_perf_attrs_callback(struct notifier_block *nb,
Dave Jiang June 24, 2024, 3:24 p.m. UTC | #3
On 6/20/24 7:25 PM, Huang, Ying wrote:
> Jonathan Cameron <Jonathan.Cameron@Huawei.com> writes:
> 
>> On Tue, 18 Jun 2024 16:46:39 +0800
>> Huang Ying <ying.huang@intel.com> wrote:
>>
>>> The node ID of the region can be gotten via resource start address
>>> directly.  This simplifies the implementation of cxl_region_nid().
>>>
>>> Signed-off-by: "Huang, Ying" <ying.huang@intel.com>
>>> Suggested-by: Alison Schofield <alison.schofield@intel.com>
>>> Cc: Dan Williams <dan.j.williams@intel.com>
>>> Cc: Andrew Morton <akpm@linux-foundation.org>
>>> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>>> Cc: Dave Jiang <dave.jiang@intel.com>
>>> Cc: Bharata B Rao <bharata@amd.com>
>>> Cc: Alistair Popple <apopple@nvidia.com>
>>> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
>>> Cc: Davidlohr Bueso <dave@stgolabs.net>
>>> Cc: Vishal Verma <vishal.l.verma@intel.com>
>>> Cc: Ira Weiny <ira.weiny@intel.com>
>>> ---
>>>  drivers/cxl/core/region.c | 10 ++++------
>>>  1 file changed, 4 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
>>> index dc15ceba7ab7..605efe3562c6 100644
>>> --- a/drivers/cxl/core/region.c
>>> +++ b/drivers/cxl/core/region.c
>>> @@ -2309,15 +2309,13 @@ static bool cxl_region_update_coordinates(struct cxl_region *cxlr, int nid)
>>>  static int cxl_region_nid(struct cxl_region *cxlr)
>>>  {
>>>  	struct cxl_region_params *p = &cxlr->params;
>>> -	struct cxl_endpoint_decoder *cxled;
>>> -	struct cxl_decoder *cxld;
>>> +	struct resource *res;
>>>  
>>>  	guard(rwsem_read)(&cxl_region_rwsem);
>>> -	cxled = p->targets[0];
>>> -	if (!cxled)
>>> +        res = p->res;
>>
>> Odd indent - I think spaces rather than tab.  Otherwise seems
>> reasonable.
> 
> Good catch!  I used spaces accidently.
> 
> Hi, Dave,
> 
> Do you need me to send a new version?  Or you can change it?

The series LGTM. I can fix it up unless there are other comments from someone else that require changes. Also thanks for the fix in 1/3. 

> 
>> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> 
> Thank you very much for your review!
> 
> --
> Best Regards,
> Huang, Ying
> 
>>
>>> +	if (!res)
>>>  		return NUMA_NO_NODE;
>>> -	cxld = &cxled->cxld;
>>> -	return phys_to_target_node(cxld->hpa_range.start);
>>> +	return phys_to_target_node(res->start);
>>>  }
>>>  
>>>  static int cxl_region_perf_attrs_callback(struct notifier_block *nb,
diff mbox series

Patch

diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index dc15ceba7ab7..605efe3562c6 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -2309,15 +2309,13 @@  static bool cxl_region_update_coordinates(struct cxl_region *cxlr, int nid)
 static int cxl_region_nid(struct cxl_region *cxlr)
 {
 	struct cxl_region_params *p = &cxlr->params;
-	struct cxl_endpoint_decoder *cxled;
-	struct cxl_decoder *cxld;
+	struct resource *res;
 
 	guard(rwsem_read)(&cxl_region_rwsem);
-	cxled = p->targets[0];
-	if (!cxled)
+        res = p->res;
+	if (!res)
 		return NUMA_NO_NODE;
-	cxld = &cxled->cxld;
-	return phys_to_target_node(cxld->hpa_range.start);
+	return phys_to_target_node(res->start);
 }
 
 static int cxl_region_perf_attrs_callback(struct notifier_block *nb,