Message ID | 20240618084639.1419629-4-ying.huang@intel.com |
---|---|
State | Superseded |
Headers | show |
Series | cxl/region: Support to calculate memory tier abstract distance | expand |
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,
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, 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>
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,
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(-)