diff options
| author | Nikhil P. Rao <nikhil.rao@amd.com> | 2026-07-30 04:25:23 +0000 |
|---|---|---|
| committer | Jakub Kicinski <kuba@kernel.org> | 2026-08-05 17:59:30 -0700 |
| commit | 0b5091b64ad6f870c2484211cd02f96056e64515 (patch) | |
| tree | 8fba5f5ab5d2093ae4c03183503e511f53b81f62 /drivers | |
| parent | b311af86b58f56ce81b85bd789c98e474851de90 (diff) | |
| download | linux-next-0b5091b64ad6f870c2484211cd02f96056e64515.tar.gz linux-next-0b5091b64ad6f870c2484211cd02f96056e64515.zip | |
pds_core: add debugfs support for host backed memory
Add debugfs entry to dump host backed memory allocations for debug
purposes.
Signed-off-by: Vamsi Atluri <Vamsi.Atluri@amd.com>
Signed-off-by: Nikhil P. Rao <nikhil.rao@amd.com>
Link: https://patch.msgid.link/20260730-upstream_v8-v12-6-136cd174ee85@amd.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/ethernet/amd/pds_core/core.c | 2 | ||||
| -rw-r--r-- | drivers/net/ethernet/amd/pds_core/core.h | 1 | ||||
| -rw-r--r-- | drivers/net/ethernet/amd/pds_core/debugfs.c | 45 |
3 files changed, 48 insertions, 0 deletions
diff --git a/drivers/net/ethernet/amd/pds_core/core.c b/drivers/net/ethernet/amd/pds_core/core.c index 26ddcbbfc14c..922e3ec8af1b 100644 --- a/drivers/net/ethernet/amd/pds_core/core.c +++ b/drivers/net/ethernet/amd/pds_core/core.c @@ -506,6 +506,7 @@ void pdsc_teardown(struct pdsc *pdsc, bool removing) pdsc->viftype_status = NULL; } + pdsc_debugfs_del_host_mem(pdsc); pdsc_host_mem_free(pdsc); pdsc_dev_uninit(pdsc); @@ -517,6 +518,7 @@ int pdsc_start(struct pdsc *pdsc) pds_core_intr_mask(&pdsc->intr_ctrl[pdsc->adminqcq.intx], PDS_CORE_INTR_MASK_CLEAR); pdsc_host_mem_add(pdsc); + pdsc_debugfs_add_host_mem(pdsc); return 0; } diff --git a/drivers/net/ethernet/amd/pds_core/core.h b/drivers/net/ethernet/amd/pds_core/core.h index 085f2e988aa0..791756a50870 100644 --- a/drivers/net/ethernet/amd/pds_core/core.h +++ b/drivers/net/ethernet/amd/pds_core/core.h @@ -306,6 +306,7 @@ void pdsc_debugfs_add_irqs(struct pdsc *pdsc); void pdsc_debugfs_add_qcq(struct pdsc *pdsc, struct pdsc_qcq *qcq); void pdsc_debugfs_del_qcq(struct pdsc_qcq *qcq); void pdsc_debugfs_add_host_mem(struct pdsc *pdsc); +void pdsc_debugfs_del_host_mem(struct pdsc *pdsc); int pdsc_err_to_errno(enum pds_core_status_code code); bool pdsc_is_fw_running(struct pdsc *pdsc); diff --git a/drivers/net/ethernet/amd/pds_core/debugfs.c b/drivers/net/ethernet/amd/pds_core/debugfs.c index 810a0cd9bcac..ef0a1b7d159b 100644 --- a/drivers/net/ethernet/amd/pds_core/debugfs.c +++ b/drivers/net/ethernet/amd/pds_core/debugfs.c @@ -178,3 +178,48 @@ void pdsc_debugfs_del_qcq(struct pdsc_qcq *qcq) debugfs_remove_recursive(qcq->dentry); qcq->dentry = NULL; } + +static int host_mem_show(struct seq_file *seq, void *v) +{ + struct pdsc *pdsc = seq->private; + struct pdsc_host_mem *hm; + int i; + + if (!pdsc->host_mem_reqs || pdsc->num_host_mem_reqs == 0) { + seq_puts(seq, "No host memory allocated\n"); + return 0; + } + + seq_printf(seq, "Host memory requests: %u\n\n", + pdsc->num_host_mem_reqs); + seq_puts(seq, "Tag Size Order PA\n"); + seq_puts(seq, "--- ---- ----- --\n"); + + for (i = 0; i < pdsc->num_host_mem_reqs; i++) { + hm = &pdsc->host_mem_reqs[i]; + + if (!hm->pg) + continue; + + seq_printf(seq, "%-6u %-12u %-6u %pad\n", + hm->tag, hm->size, hm->order, &hm->pa); + } + + return 0; +} +DEFINE_SHOW_ATTRIBUTE(host_mem); + +void pdsc_debugfs_add_host_mem(struct pdsc *pdsc) +{ + if (!(pdsc->dev_ident.capabilities & + cpu_to_le64(PDS_CORE_DEV_CAP_HOST_MEM))) + return; + + debugfs_create_file("host_mem", 0400, pdsc->dentry, + pdsc, &host_mem_fops); +} + +void pdsc_debugfs_del_host_mem(struct pdsc *pdsc) +{ + debugfs_lookup_and_remove("host_mem", pdsc->dentry); +} |
