Dave Jiang wrote: > Keep the access_coordinate from the CDAT tables for region perf > calculations. The region perf calculation requires all participating > endpoints to have arrived in order to determine if there are limitations > of bandwidth data due to shared uplink. > > Signed-off-by: Dave Jiang <dave.jiang@xxxxxxxxx> > --- > drivers/cxl/core/cdat.c | 10 ++++++---- > drivers/cxl/cxlmem.h | 1 + > 2 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/cxl/core/cdat.c b/drivers/cxl/core/cdat.c > index bb83867d9fec..fea214340d4b 100644 > --- a/drivers/cxl/core/cdat.c > +++ b/drivers/cxl/core/cdat.c > @@ -15,7 +15,7 @@ struct dsmas_entry { > struct range dpa_range; > u8 handle; > struct access_coordinate coord[ACCESS_COORDINATE_MAX]; > - > + struct access_coordinate cdat_coord[ACCESS_COORDINATE_MAX]; > int entries; > int qos_class; > }; > @@ -163,7 +163,7 @@ static int cdat_dslbis_handler(union acpi_subtable_headers *header, void *arg, > val = cdat_normalize(le16_to_cpu(le_val), le64_to_cpu(le_base), > dslbis->data_type); > > - cxl_access_coordinate_set(dent->coord, dslbis->data_type, val); > + cxl_access_coordinate_set(dent->cdat_coord, dslbis->data_type, val); > > return 0; > } > @@ -220,7 +220,7 @@ static int cxl_port_perf_data_calculate(struct cxl_port *port, > xa_for_each(dsmas_xa, index, dent) { > int qos_class; > > - cxl_coordinates_combine(dent->coord, dent->coord, ep_c); > + cxl_coordinates_combine(dent->coord, dent->cdat_coord, ep_c); > dent->entries = 1; > rc = cxl_root->ops->qos_class(cxl_root, > &dent->coord[ACCESS_COORDINATE_CPU], > @@ -241,8 +241,10 @@ static int cxl_port_perf_data_calculate(struct cxl_port *port, > static void update_perf_entry(struct device *dev, struct dsmas_entry *dent, > struct cxl_dpa_perf *dpa_perf) > { > - for (int i = 0; i < ACCESS_COORDINATE_MAX; i++) > + for (int i = 0; i < ACCESS_COORDINATE_MAX; i++) { > dpa_perf->coord[i] = dent->coord[i]; > + dpa_perf->cdat_coord[i] = dent->cdat_coord[i]; > + } > dpa_perf->dpa_range = dent->dpa_range; > dpa_perf->qos_class = dent->qos_class; > dev_dbg(dev, > diff --git a/drivers/cxl/cxlmem.h b/drivers/cxl/cxlmem.h > index 19aba81cdf13..fb365453f996 100644 > --- a/drivers/cxl/cxlmem.h > +++ b/drivers/cxl/cxlmem.h > @@ -402,6 +402,7 @@ enum cxl_devtype { > struct cxl_dpa_perf { > struct range dpa_range; > struct access_coordinate coord[ACCESS_COORDINATE_MAX]; > + struct access_coordinate cdat_coord[ACCESS_COORDINATE_MAX]; Need to update the kdoc. Other than that. Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx> > int qos_class; > }; > > -- > 2.45.1 >