Message ID | 167995357195.2857312.5279274659737251140.stgit@djiang5-mobl3 |
---|---|
State | New |
Headers | show |
Series | cxl: Add support for QTG ID retrieval for CXL subsystem | expand |
On Mon, Mar 27, 2023 at 02:46:11PM -0700, Dave Jiang wrote: > Add debugfs output to /sys/kernel/debug/cxl/memX/qtgmap > The debugfs attribute will dump out all the DSMAS ranges and the associated > QTG ID exported by the CXL device CDAT. Do you want to document these? The poison inject & clear inflight patchset documents in: Documentation/ABI/testing/debugfs-cxl Alison > > Suggested-by: Dan Williams <dan.j.williams@intel.com> > Signed-off-by: Dave Jiang <dave.jiang@intel.com> > --- > drivers/cxl/mem.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/drivers/cxl/mem.c b/drivers/cxl/mem.c > index 39c4b54f0715..bf2cb5a54a7f 100644 > --- a/drivers/cxl/mem.c > +++ b/drivers/cxl/mem.c > @@ -45,6 +45,21 @@ static int cxl_mem_dpa_show(struct seq_file *file, void *data) > return 0; > } > > +static int cxl_mem_qtg_show(struct seq_file *file, void *data) > +{ > + struct device *dev = file->private; > + struct cxl_memdev *cxlmd = to_cxl_memdev(dev); > + struct qos_prop_entry *qos; > + > + list_for_each_entry(qos, &cxlmd->qos_list, list) { > + seq_printf(file, "%08llx-%08llx : QTG ID %u\n", > + qos->dpa_range.start, qos->dpa_range.end, > + qos->qtg_id); > + } > + > + return 0; > +} > + > static int devm_cxl_add_endpoint(struct device *host, struct cxl_memdev *cxlmd, > struct cxl_dport *parent_dport) > { > @@ -117,6 +132,7 @@ static int cxl_mem_probe(struct device *dev) > > dentry = cxl_debugfs_create_dir(dev_name(dev)); > debugfs_create_devm_seqfile(dev, "dpamem", dentry, cxl_mem_dpa_show); > + debugfs_create_devm_seqfile(dev, "qtgmap", dentry, cxl_mem_qtg_show); > rc = devm_add_action_or_reset(dev, remove_debugfs, dentry); > if (rc) > return rc; > >
On 3/28/23 6:13 PM, Alison Schofield wrote: > On Mon, Mar 27, 2023 at 02:46:11PM -0700, Dave Jiang wrote: >> Add debugfs output to /sys/kernel/debug/cxl/memX/qtgmap >> The debugfs attribute will dump out all the DSMAS ranges and the associated >> QTG ID exported by the CXL device CDAT. > > Do you want to document these? > > The poison inject & clear inflight patchset documents in: > Documentation/ABI/testing/debugfs-cxl Sure. I'll take a look at your series to see what it should look like. > > Alison > >> >> Suggested-by: Dan Williams <dan.j.williams@intel.com> >> Signed-off-by: Dave Jiang <dave.jiang@intel.com> >> --- >> drivers/cxl/mem.c | 16 ++++++++++++++++ >> 1 file changed, 16 insertions(+) >> >> diff --git a/drivers/cxl/mem.c b/drivers/cxl/mem.c >> index 39c4b54f0715..bf2cb5a54a7f 100644 >> --- a/drivers/cxl/mem.c >> +++ b/drivers/cxl/mem.c >> @@ -45,6 +45,21 @@ static int cxl_mem_dpa_show(struct seq_file *file, void *data) >> return 0; >> } >> >> +static int cxl_mem_qtg_show(struct seq_file *file, void *data) >> +{ >> + struct device *dev = file->private; >> + struct cxl_memdev *cxlmd = to_cxl_memdev(dev); >> + struct qos_prop_entry *qos; >> + >> + list_for_each_entry(qos, &cxlmd->qos_list, list) { >> + seq_printf(file, "%08llx-%08llx : QTG ID %u\n", >> + qos->dpa_range.start, qos->dpa_range.end, >> + qos->qtg_id); >> + } >> + >> + return 0; >> +} >> + >> static int devm_cxl_add_endpoint(struct device *host, struct cxl_memdev *cxlmd, >> struct cxl_dport *parent_dport) >> { >> @@ -117,6 +132,7 @@ static int cxl_mem_probe(struct device *dev) >> >> dentry = cxl_debugfs_create_dir(dev_name(dev)); >> debugfs_create_devm_seqfile(dev, "dpamem", dentry, cxl_mem_dpa_show); >> + debugfs_create_devm_seqfile(dev, "qtgmap", dentry, cxl_mem_qtg_show); >> rc = devm_add_action_or_reset(dev, remove_debugfs, dentry); >> if (rc) >> return rc; >> >>
diff --git a/drivers/cxl/mem.c b/drivers/cxl/mem.c index 39c4b54f0715..bf2cb5a54a7f 100644 --- a/drivers/cxl/mem.c +++ b/drivers/cxl/mem.c @@ -45,6 +45,21 @@ static int cxl_mem_dpa_show(struct seq_file *file, void *data) return 0; } +static int cxl_mem_qtg_show(struct seq_file *file, void *data) +{ + struct device *dev = file->private; + struct cxl_memdev *cxlmd = to_cxl_memdev(dev); + struct qos_prop_entry *qos; + + list_for_each_entry(qos, &cxlmd->qos_list, list) { + seq_printf(file, "%08llx-%08llx : QTG ID %u\n", + qos->dpa_range.start, qos->dpa_range.end, + qos->qtg_id); + } + + return 0; +} + static int devm_cxl_add_endpoint(struct device *host, struct cxl_memdev *cxlmd, struct cxl_dport *parent_dport) { @@ -117,6 +132,7 @@ static int cxl_mem_probe(struct device *dev) dentry = cxl_debugfs_create_dir(dev_name(dev)); debugfs_create_devm_seqfile(dev, "dpamem", dentry, cxl_mem_dpa_show); + debugfs_create_devm_seqfile(dev, "qtgmap", dentry, cxl_mem_qtg_show); rc = devm_add_action_or_reset(dev, remove_debugfs, dentry); if (rc) return rc;
Add debugfs output to /sys/kernel/debug/cxl/memX/qtgmap The debugfs attribute will dump out all the DSMAS ranges and the associated QTG ID exported by the CXL device CDAT. Suggested-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Dave Jiang <dave.jiang@intel.com> --- drivers/cxl/mem.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)