Re: [PATCH v7 5/5] Add debugfs based statistical counter support in DWC
From: Fan Ni <hidden>
Date: 2025-03-05 04:26:10
Also in:
linux-pci, linux-perf-users, lkml
On Tue, Mar 04, 2025 at 10:40:43PM +0530, Shradha Todi wrote:
quoted
-----Original Message----- From: Fan Ni <redacted> Sent: 04 March 2025 02:33 To: Krzysztof Wilczyński <redacted> Cc: Fan Ni <redacted>; Shradha Todi <redacted>; linux-kernel@vger.kernel.org; linux- pci@vger.kernel.org; linux-arm-kernel@lists.infradead.org; linux-perf-users@vger.kernel.org; manivannan.sadhasivam@linaro.org; lpieralisi@kernel.org; robh@kernel.org; bhelgaas@google.com; jingoohan1@gmail.com; Jonathan.Cameron@huawei.com; a.manzanares@samsung.com; pankaj.dubey@samsung.com; cassel@kernel.org; 18255117159@163.com; xueshuai@linux.alibaba.com; renyu.zj@linux.alibaba.com; will@kernel.org; mark.rutland@arm.com 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:quoted
Hello, [...]quoted
quoted
+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-manivannan.sa dhasivam@linaro.orgMaybe 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"? FanHey 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. Fan
quoted
quoted
Thank you! Krzysztof