Re: [PATCH v6 0/4] Add perf interface to expose nvdimm
From: kajoljain <hidden>
Date: 2022-02-25 08:40:25
Also in:
lkml, nvdimm
On 2/25/22 13:17, Aneesh Kumar K V wrote:
On Fri, 2022-02-25 at 12:08 +0530, kajoljain wrote:quoted
On 2/25/22 11:25, Nageswara Sastry wrote:quoted
On 17/02/22 10:03 pm, Kajol Jain wrote:quoted
....quoted
quoted
quoted
ChangelogTested these patches with the automated tests at avocado-misc-tests/perf/perf_nmem.py URL: https://github.com/avocado-framework-tests/avocado-misc-tests/blob/master/perf/perf_nmem.py 1. On the system where target id and online id were different then not seeing value in 'cpumask' and those tests failed. Example: Log from dmesg ... papr_scm ibm,persistent-memory:ibm,pmemory@44100003: Region registered with target node 1 and online node 0 ...Hi Nageswara Sastry, Thanks for testing the patch set. Yes you right, incase target node id and online node id is different, it can happen when target node is not online and hence can cause this issue, thanks for pointing it. Function dev_to_node will return node id for a given nvdimm device which can be offline in some scenarios. We should use numa node id return by numa_map_to_online_node function in that scenario. This function incase given node is offline, it will lookup for next closest online node and return that nodeid. Can you try with below change and see, if you are still getting this issue. Please let me know.diff --git a/arch/powerpc/platforms/pseries/papr_scm.cb/arch/powerpc/platforms/pseries/papr_scm.c index bdf2620db461..4dd513d7c029 100644--- a/arch/powerpc/platforms/pseries/papr_scm.c +++ b/arch/powerpc/platforms/pseries/papr_scm.c@@ -536,7 +536,7 @@ static void papr_scm_pmu_register(structpapr_scm_priv *p) PERF_PMU_CAP_NO_EXCLUDE; /*updating the cpumask variable */ - nodeid = dev_to_node(&p->pdev->dev); + nodeid = numa_map_to_online_node(dev_to_node(&p->pdev->dev)); nd_pmu->arch_cpumask = *cpumask_of_node(nodeid);quoted
Can you use p->region->numa_node?
Hi Aneesh,
Thanks for reviewing the changes. Actually we can't use numa_node
field of region structure directly inside papr_scm.c as we will get
dereferencing issue
Result of build with this change:
arch/powerpc/platforms/pseries/papr_scm.c: In function
'papr_scm_pmu_register':
arch/powerpc/platforms/pseries/papr_scm.c:539:21: error: dereferencing
pointer to incomplete type 'struct nd_region'
nodeid = &p->region->numa_node;
^~
make[3]: *** [scripts/Makefile.build:288:
arch/powerpc/platforms/pseries/papr_scm.o] Error 1
make[2]: *** [scripts/Makefile.build:550:
arch/powerpc/platforms/pseries] Erro
This is because, this structure is defined inside drivers/nvdimm/nd.h
code which is not included in this file.
So, thats why I am using
`numa_map_to_online_node(dev_to_node(&p->pdev->dev));` directly.
Let me know if you are ok with initial change.
Thanks,
Kajol Jain
-aneesh