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;
+ 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,
--
2.39.2
On Tue, Jun 18, 2024 at 04:46:39PM +0800, Huang Ying 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;
> + 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,
> --
> 2.39.2
>
Reviewed-by: Fan Ni <fan.ni@samsung.com>
On Tue, Jun 18, 2024 at 04:46:39PM +0800, Huang Ying 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> Reviewed-by: Gregory Price <gourry@gourry.net>
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,
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,
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,
© 2016 - 2025 Red Hat, Inc.