[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251013134335.26191-1-davthompson@nvidia.com>
Date: Mon, 13 Oct 2025 09:43:35 -0400
From: David Thompson <davthompson@...dia.com>
To: <hansg@...nel.org>, <ilpo.jarvinen@...ux.intel.com>, <vadimp@...dia.com>
CC: <platform-driver-x86@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<davthompson@...dia.com>, Shravan Kumar Ramani <shravankr@...dia.com>
Subject: [PATCH] platform/mellanox: mlxbf-pmc: add sysfs_attr_init() to count_clock init
The lock-related debug logic (CONFIG_LOCK_STAT) in the kernel is noting
the following warning when the BlueField-3 SOC is booted:
[ 10.231318] BUG: key ffff00008a3402a8 has not been registered!
[ 10.237249] ------------[ cut here ]------------
[ 10.241914] DEBUG_LOCKS_WARN_ON(1)
[ 10.241927] WARNING: CPU: 4 PID: 592 at kernel/locking/lockdep.c:4801 lockdep_init_map_type+0x1d4/0x2a0
[ 10.254700] Modules linked in: mlxbf_pmc(+) mlxbf_pka mlxbf_bootctl cppc_cpufreq(+) sch_fq_codel dm_multipath scsi_dh_rdac scsi_dh_emc scsi_dh_alua drm ip_tables x_tables virtio_net crct10dif_ce ghash_ce sha2_ce net_failover sha256_arm64 failover sha1_ce nvme nvme_core vitesse gpio_mlxbf3 sdhci_of_dwcmshc sdhci_pltfm sdhci mlxbf_gige i2c_mlxbf pinctrl_mlxbf3 mlxbf_tmfifo pwr_mlxbf autofs4 aes_ce_blk crypto_simd cryptd aes_ce_cipher
[ 10.282360] mlxbf_gige MLNXBF17:00 oob_net0: renamed from eth0
[ 10.292917] CPU: 4 PID: 592 Comm: systemd-udevd Not tainted 5.15.189+ #2
[ 10.292922] Hardware name: https://www.mellandx.com BlueField-3 DPU/BlueField-3 DPU, BIOS 4.13.0.13780 Sep 30 2025
[ 10.292922] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 10.292925] pc : lockdep_init_map_type+0x1d4/0x2a0
[ 10.292931] lr : lockdep_init_map_type+0x1d4/0x2a0
[ 10.292932] sp : ffff8000096a3350
[ 10.292933] x29: ffff8000096a3350 x28: 00000000000001a4 x27: 00000000ffffee4b
[ 10.292937] x26: ffff00008a3402e0 x25: 0000000000000000 x24: 0000000000000000
[ 10.292939] x23: ffff00008a3402a8 x22: 0000000000000000 x21: ffffd1acf2833000
[ 10.292941] x20: ffff00008a3402a8 x19: ffff00008c10d378 x18: ffffd1acf1d3d000
[ 10.292944] x17: 000000007bba6d3c x16: ffffd1acef416114 x15: ffff0003dd914d88
[ 10.292946] x14: 0000000000000000 x13: 284e4f5f4e524157 x12: 5f534b434f4c5f47
[ 10.292949] x11: 656820747563205b x10: 0000000000000029 x9 : ffffd1acef49deb4
[ 10.292951] x8 : ffffd1acf0e93008 x7 : 0000000000000001 x6 : 0000000000000001
[ 10.385410] x5 : ffff8000096a31a0 x4 : ffff2e56eca7f000 x3 : ffff0003d20a5e80
[ 10.385412] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0003d20a5e80
[ 10.385415] Call trace:
[ 10.385417] lockdep_init_map_type+0x1d4/0x2a0
[ 10.385423] __kernfs_create_file+0x84/0x140
[ 10.385428] sysfs_add_file_mode_ns+0xcc/0x1cc
[ 10.385431] internal_create_group+0x110/0x3d4
[ 10.385434] internal_create_groups.part.0+0x54/0xcc
[ 10.385436] sysfs_create_groups+0x24/0x40
[ 10.385438] device_add+0x6e8/0x93c
[ 10.444559] device_register+0x28/0x40
[ 10.448299] __hwmon_device_register+0x4b0/0x8a0
[ 10.452907] devm_hwmon_device_register_with_groups+0x7c/0xe0
[ 10.458641] mlxbf_pmc_probe+0x1e8/0x3e0 [mlxbf_pmc]
[ 10.463598] platform_probe+0x70/0x110
The mlxbf_pmc driver must call sysfs_attr_init() during the
initialization of the "count_clock" data structure to avoid
this warning.
Signed-off-by: David Thompson <davthompson@...dia.com>
Reviewed-by: Shravan Kumar Ramani <shravankr@...dia.com>
Fixes: 5efc800975d9 ("platform/mellanox: mlxbf-pmc: Add support for monitoring cycle count")
---
drivers/platform/mellanox/mlxbf-pmc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/platform/mellanox/mlxbf-pmc.c b/drivers/platform/mellanox/mlxbf-pmc.c
index 4776013e0764..16a2fd9fdd9b 100644
--- a/drivers/platform/mellanox/mlxbf-pmc.c
+++ b/drivers/platform/mellanox/mlxbf-pmc.c
@@ -2015,6 +2015,7 @@ static int mlxbf_pmc_init_perftype_counter(struct device *dev, unsigned int blk_
if (pmc->block[blk_num].type == MLXBF_PMC_TYPE_CRSPACE) {
/* Program crspace counters to count clock cycles using "count_clock" sysfs */
attr = &pmc->block[blk_num].attr_count_clock;
+ sysfs_attr_init(&attr->dev_attr.attr);
attr->dev_attr.attr.mode = 0644;
attr->dev_attr.show = mlxbf_pmc_count_clock_show;
attr->dev_attr.store = mlxbf_pmc_count_clock_store;
--
2.43.2
Powered by blists - more mailing lists