Message ID | 20230131184804.220756-1-kjain@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 60bd7936f99fd8cdbeca67180f80ea13d8b97a76 |
Headers | show |
Series | powerpc/hv-24x7: Fix pvr check when setting interface version | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | success | Successfully ran 4 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | success | Successfully ran 24 jobs. |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 6 jobs. |
> On 01-Feb-2023, at 12:18 AM, Kajol Jain <kjain@linux.ibm.com> wrote: > > Commit ec3eb9d941a9 ("powerpc/perf: Use PVR rather than > oprofile field to determine CPU version") added usage > of pvr value instead of oprofile field to determine the > platform. In hv-24x7 pmu driver code, pvr check uses PVR_POWER8 > when assigning the interface version for power8 platform. > But power8 can also have other pvr values like PVR_POWER8E and > PVR_POWER8NVL. Hence the interface version won't be set > properly incase of PVR_POWER8E and PVR_POWER8NVL. > Fix this issue by adding the checks for PVR_POWER8E and > PVR_POWER8NVL as well. > > Fixes: ec3eb9d941a9 ("powerpc/perf: Use PVR rather than oprofile field to determine CPU version") > Reported-by: Sachin Sant <sachinp@linux.ibm.com> > Signed-off-by: Kajol Jain <kjain@linux.ibm.com> > --- Thanks for the fix. Tested on Power8 successfully. Tested-by: Sachin Sant <sachinp@linux.ibm.com> > arch/powerpc/perf/hv-24x7.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/powerpc/perf/hv-24x7.c b/arch/powerpc/perf/hv-24x7.c > index 33c23225fd54..8c3253df133d 100644 > --- a/arch/powerpc/perf/hv-24x7.c > +++ b/arch/powerpc/perf/hv-24x7.c > @@ -1727,7 +1727,8 @@ static int hv_24x7_init(void) > } > > /* POWER8 only supports v1, while POWER9 only supports v2. */ > - if (PVR_VER(pvr) == PVR_POWER8) > + if (PVR_VER(pvr) == PVR_POWER8 || PVR_VER(pvr) == PVR_POWER8E || > + PVR_VER(pvr) == PVR_POWER8NVL) Do we really need the check for Power8NV?
On 2/1/23 19:41, Sachin Sant wrote: > > >> On 01-Feb-2023, at 12:18 AM, Kajol Jain <kjain@linux.ibm.com> wrote: >> >> Commit ec3eb9d941a9 ("powerpc/perf: Use PVR rather than >> oprofile field to determine CPU version") added usage >> of pvr value instead of oprofile field to determine the >> platform. In hv-24x7 pmu driver code, pvr check uses PVR_POWER8 >> when assigning the interface version for power8 platform. >> But power8 can also have other pvr values like PVR_POWER8E and >> PVR_POWER8NVL. Hence the interface version won't be set >> properly incase of PVR_POWER8E and PVR_POWER8NVL. >> Fix this issue by adding the checks for PVR_POWER8E and >> PVR_POWER8NVL as well. >> >> Fixes: ec3eb9d941a9 ("powerpc/perf: Use PVR rather than oprofile field to determine CPU version") >> Reported-by: Sachin Sant <sachinp@linux.ibm.com> >> Signed-off-by: Kajol Jain <kjain@linux.ibm.com> >> --- > > Thanks for the fix. Tested on Power8 successfully. > Tested-by: Sachin Sant <sachinp@linux.ibm.com> > >> arch/powerpc/perf/hv-24x7.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/perf/hv-24x7.c b/arch/powerpc/perf/hv-24x7.c >> index 33c23225fd54..8c3253df133d 100644 >> --- a/arch/powerpc/perf/hv-24x7.c >> +++ b/arch/powerpc/perf/hv-24x7.c >> @@ -1727,7 +1727,8 @@ static int hv_24x7_init(void) >> } >> >> /* POWER8 only supports v1, while POWER9 only supports v2. */ >> - if (PVR_VER(pvr) == PVR_POWER8) >> + if (PVR_VER(pvr) == PVR_POWER8 || PVR_VER(pvr) == PVR_POWER8E || >> + PVR_VER(pvr) == PVR_POWER8NVL) > > Do we really need the check for Power8NV? Hi Sachin, Thanks for testing the patch. Here the NVL in POWER8NVL corresponds to "NVLink" and its not related to PowerNV. PVR value used to specify processor version which might be in used in any of pseries/powernv, hence I added this check. Thanks, Kajol Jain
On Wed, 1 Feb 2023 00:18:04 +0530, Kajol Jain wrote: > Commit ec3eb9d941a9 ("powerpc/perf: Use PVR rather than > oprofile field to determine CPU version") added usage > of pvr value instead of oprofile field to determine the > platform. In hv-24x7 pmu driver code, pvr check uses PVR_POWER8 > when assigning the interface version for power8 platform. > But power8 can also have other pvr values like PVR_POWER8E and > PVR_POWER8NVL. Hence the interface version won't be set > properly incase of PVR_POWER8E and PVR_POWER8NVL. > Fix this issue by adding the checks for PVR_POWER8E and > PVR_POWER8NVL as well. > > [...] Applied to powerpc/next. [1/1] powerpc/hv-24x7: Fix pvr check when setting interface version https://git.kernel.org/powerpc/c/60bd7936f99fd8cdbeca67180f80ea13d8b97a76 cheers
diff --git a/arch/powerpc/perf/hv-24x7.c b/arch/powerpc/perf/hv-24x7.c index 33c23225fd54..8c3253df133d 100644 --- a/arch/powerpc/perf/hv-24x7.c +++ b/arch/powerpc/perf/hv-24x7.c @@ -1727,7 +1727,8 @@ static int hv_24x7_init(void) } /* POWER8 only supports v1, while POWER9 only supports v2. */ - if (PVR_VER(pvr) == PVR_POWER8) + if (PVR_VER(pvr) == PVR_POWER8 || PVR_VER(pvr) == PVR_POWER8E || + PVR_VER(pvr) == PVR_POWER8NVL) interface_version = 1; else { interface_version = 2;
Commit ec3eb9d941a9 ("powerpc/perf: Use PVR rather than oprofile field to determine CPU version") added usage of pvr value instead of oprofile field to determine the platform. In hv-24x7 pmu driver code, pvr check uses PVR_POWER8 when assigning the interface version for power8 platform. But power8 can also have other pvr values like PVR_POWER8E and PVR_POWER8NVL. Hence the interface version won't be set properly incase of PVR_POWER8E and PVR_POWER8NVL. Fix this issue by adding the checks for PVR_POWER8E and PVR_POWER8NVL as well. Fixes: ec3eb9d941a9 ("powerpc/perf: Use PVR rather than oprofile field to determine CPU version") Reported-by: Sachin Sant <sachinp@linux.ibm.com> Signed-off-by: Kajol Jain <kjain@linux.ibm.com> --- arch/powerpc/perf/hv-24x7.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)