> -----Original Message----- > From: Fan Ni <nifan.cxl@xxxxxxxxx> > Sent: 05 March 2025 09:56 > To: Shradha Todi <shradha.t@xxxxxxxxxxx> > Cc: 'Fan Ni' <nifan.cxl@xxxxxxxxx>; 'Krzysztof Wilczyński' <kw@xxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx; > linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-perf-users@xxxxxxxxxxxxxxx; manivannan.sadhasivam@xxxxxxxxxx; lpieralisi@xxxxxxxxxx; > robh@xxxxxxxxxx; bhelgaas@xxxxxxxxxx; jingoohan1@xxxxxxxxx; Jonathan.Cameron@xxxxxxxxxx; a.manzanares@xxxxxxxxxxx; > pankaj.dubey@xxxxxxxxxxx; cassel@xxxxxxxxxx; 18255117159@xxxxxxx; xueshuai@xxxxxxxxxxxxxxxxx; renyu.zj@xxxxxxxxxxxxxxxxx; > will@xxxxxxxxxx; mark.rutland@xxxxxxx > Subject: Re: [PATCH v7 5/5] Add debugfs based statistical counter support in DWC > > On Tue, Mar 04, 2025 at 10:40:43PM +0530, Shradha Todi wrote: > > > > > > > -----Original Message----- > > > From: Fan Ni <nifan.cxl@xxxxxxxxx> > > > Sent: 04 March 2025 02:33 > > > To: Krzysztof Wilczyński <kw@xxxxxxxxx> > > > Cc: Fan Ni <nifan.cxl@xxxxxxxxx>; Shradha Todi > > > <shradha.t@xxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; linux- > > > pci@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > > > linux-perf-users@xxxxxxxxxxxxxxx; manivannan.sadhasivam@xxxxxxxxxx; > > > lpieralisi@xxxxxxxxxx; robh@xxxxxxxxxx; bhelgaas@xxxxxxxxxx; > > > jingoohan1@xxxxxxxxx; Jonathan.Cameron@xxxxxxxxxx; > > > a.manzanares@xxxxxxxxxxx; pankaj.dubey@xxxxxxxxxxx; > > > cassel@xxxxxxxxxx; 18255117159@xxxxxxx; xueshuai@xxxxxxxxxxxxxxxxx; > > > renyu.zj@xxxxxxxxxxxxxxxxx; will@xxxxxxxxxx; mark.rutland@xxxxxxx > > > Subject: Re: [PATCH v7 5/5] Add debugfs based statistical counter > > > support in DWC > > > > > > On Tue, Mar 04, 2025 at 04:42:28AM +0900, Krzysztof Wilczyński wrote: > > > > Hello, > > > > > > > > [...] > > > > > > +static ssize_t counter_value_read(struct file *file, char > > > > > > +__user *buf, size_t count, loff_t *ppos) { > > > > > > + struct dwc_pcie_rasdes_priv *pdata = file->private_data; > > > > > > + struct dw_pcie *pci = pdata->pci; > > > > > > + struct dwc_pcie_rasdes_info *rinfo = pci->debugfs->rasdes_info; > > > > > > + char debugfs_buf[DWC_DEBUGFS_BUF_MAX]; > > > > > > + ssize_t pos; > > > > > > + u32 val; > > > > > > + > > > > > > + mutex_lock(&rinfo->reg_event_lock); > > > > > > + set_event_number(pdata, pci, rinfo); > > > > > > + val = dw_pcie_readl_dbi(pci, rinfo->ras_cap_offset + RAS_DES_EVENT_COUNTER_DATA_REG); > > > > > > + mutex_unlock(&rinfo->reg_event_lock); > > > > > > + pos = scnprintf(debugfs_buf, DWC_DEBUGFS_BUF_MAX, "Counter > > > > > > +value: %d\n", val); > > > > > > + > > > > > > + return simple_read_from_buffer(buf, count, ppos, > > > > > > +debugfs_buf, pos); } > > > > > > > > > > Do we need to check whether the counter is enabled or not for > > > > > the event before retrieving the counter value? > > > > > > > > I believe, we have a patch that aims to address, have a look at: > > > > > > > > > > > > https://lore.kernel.org/linux-pci/20250225171239.19574-1-manivanna > > > > n.sa > > > > dhasivam@xxxxxxxxxx > > > > > > Maybe I missed something, that seems to fix counter_enable_read(), but here is to retrieve counter value. > > > How dw_pcie_readl_dbi() can return something like "Counter Disabled"? > > > > > > Fan > > > > Hey Fan, > > So the counter value will show 0 in case it is disabled so there will > > not be any issues as per say. We could add the check here but I feel I > > have already exposed the functionality to check if a counter is enabled or disabled, (by reading the counter_enable debugfs entry) > so this could be handled in user space to only read the counter if it's enabled. > Ok. > Returning 0 when the counter is disabled makes sense to me. > > Just some thought. > > It seems natural to me if we make "counter_value" only visiable to users when the counter is enabled. > Hey Fan, This looks like a good suggestion to me. I have implemented this and in the process of testing. Since there is no support in the debugfs framework for conditionally hiding certain files from user, the custom implementation is a little tricky and will need some discussion before taking in. So let's take this up as a top up patch and live with returning 0 when the counter is disabled for now? Thanks a lot for the suggestion. Shradha > Fan > > > > > > > > > > Thank you! > > > > > > > > Krzysztof > > > >