From: Anju T Sudhakar <hidden> Date: 2019-05-20 09:00:52
Currently init_imc_pmu() can be failed either because
an IMC unit with invalid domain(i.e an IMC node not
supported by the kernel) is attempted a pmu-registration
or something went wrong while registering a valid IMC unit.
In both the cases kernel provides a 'Registration failed'
error message.
Example:
Log message, when trace-imc node is not supported by the kernel, and the
skiboot supports trace-imc node.
So for kernel, trace-imc node is now an unknown domain.
[ 1.731870] nest_phb5_imc performance monitor hardware support registered
[ 1.731944] nest_powerbus0_imc performance monitor hardware support registered
[ 1.734458] thread_imc performance monitor hardware support registered
[ 1.734460] IMC Unknown Device type
[ 1.734462] IMC PMU (null) Register failed
[ 1.734558] nest_xlink0_imc performance monitor hardware support registered
[ 1.734614] nest_xlink1_imc performance monitor hardware support registered
[ 1.734670] nest_xlink2_imc performance monitor hardware support registered
[ 1.747043] Initialise system trusted keyrings
[ 1.747054] Key type blacklist registered
To avoid ambiguity on the error message, return for invalid domain
before attempting a pmu registration.
Fixes: 8f95faaac56c1 (`powerpc/powernv: Detect and create IMC device`)
Reported-by: Pavaman Subramaniyam <redacted>
Signed-off-by: Anju T Sudhakar <redacted>
---
arch/powerpc/platforms/powernv/opal-imc.c | 4 ++++
1 file changed, 4 insertions(+)
@@ -161,6 +161,10 @@ static int imc_pmu_create(struct device_node *parent, int pmu_index, int domain)structimc_pmu*pmu_ptr;u32offset;+/* Return for unknown domain */+if(domain<0)+return-EINVAL;+/* memory for pmu */pmu_ptr=kzalloc(sizeof(*pmu_ptr),GFP_KERNEL);if(!pmu_ptr)
Currently init_imc_pmu() can be failed either because
an IMC unit with invalid domain(i.e an IMC node not
supported by the kernel) is attempted a pmu-registration
or something went wrong while registering a valid IMC unit.
In both the cases kernel provides a 'Registration failed'
error message.
Example:
Log message, when trace-imc node is not supported by the kernel, and the
skiboot supports trace-imc node.
So for kernel, trace-imc node is now an unknown domain.
[ 1.731870] nest_phb5_imc performance monitor hardware support registered
[ 1.731944] nest_powerbus0_imc performance monitor hardware support registered
[ 1.734458] thread_imc performance monitor hardware support registered
[ 1.734460] IMC Unknown Device type
[ 1.734462] IMC PMU (null) Register failed
[ 1.734558] nest_xlink0_imc performance monitor hardware support registered
[ 1.734614] nest_xlink1_imc performance monitor hardware support registered
[ 1.734670] nest_xlink2_imc performance monitor hardware support registered
[ 1.747043] Initialise system trusted keyrings
[ 1.747054] Key type blacklist registered
To avoid ambiguity on the error message, return for invalid domain
before attempting a pmu registration.
@@ -161,6 +161,10 @@ static int imc_pmu_create(struct device_node *parent, int pmu_index, int domain)structimc_pmu*pmu_ptr;u32offset;+/* Return for unknown domain */+if(domain<0)+return-EINVAL;+/* memory for pmu */pmu_ptr=kzalloc(sizeof(*pmu_ptr),GFP_KERNEL);if(!pmu_ptr)
From: Michael Ellerman <mpe@ellerman.id.au> Date: 2019-05-21 11:50:19
Anju T Sudhakar [off-list ref] writes:
Currently init_imc_pmu() can be failed either because
an IMC unit with invalid domain(i.e an IMC node not
supported by the kernel) is attempted a pmu-registration
or something went wrong while registering a valid IMC unit.
In both the cases kernel provides a 'Registration failed'
error message.
Example:
Log message, when trace-imc node is not supported by the kernel, and the
skiboot supports trace-imc node.
So for kernel, trace-imc node is now an unknown domain.
[ 1.731870] nest_phb5_imc performance monitor hardware support registered
[ 1.731944] nest_powerbus0_imc performance monitor hardware support registered
[ 1.734458] thread_imc performance monitor hardware support registered
[ 1.734460] IMC Unknown Device type
[ 1.734462] IMC PMU (null) Register failed
[ 1.734558] nest_xlink0_imc performance monitor hardware support registered
[ 1.734614] nest_xlink1_imc performance monitor hardware support registered
[ 1.734670] nest_xlink2_imc performance monitor hardware support registered
[ 1.747043] Initialise system trusted keyrings
[ 1.747054] Key type blacklist registered
To avoid ambiguity on the error message, return for invalid domain
before attempting a pmu registration.
What do we print once the patch is applied?
cheers
@@ -161,6 +161,10 @@ static int imc_pmu_create(struct device_node *parent, int pmu_index, int domain)structimc_pmu*pmu_ptr;u32offset;+/* Return for unknown domain */+if(domain<0)+return-EINVAL;+/* memory for pmu */pmu_ptr=kzalloc(sizeof(*pmu_ptr),GFP_KERNEL);if(!pmu_ptr)
From: Anju T Sudhakar <hidden> Date: 2019-05-22 07:46:09
Hi,
On 5/21/19 5:18 PM, Michael Ellerman wrote:
Anju T Sudhakar [off-list ref] writes:
quoted
Currently init_imc_pmu() can be failed either because
an IMC unit with invalid domain(i.e an IMC node not
supported by the kernel) is attempted a pmu-registration
or something went wrong while registering a valid IMC unit.
In both the cases kernel provides a 'Registration failed'
error message.
Example:
Log message, when trace-imc node is not supported by the kernel, and the
skiboot supports trace-imc node.
So for kernel, trace-imc node is now an unknown domain.
[ 1.731870] nest_phb5_imc performance monitor hardware support registered
[ 1.731944] nest_powerbus0_imc performance monitor hardware support registered
[ 1.734458] thread_imc performance monitor hardware support registered
[ 1.734460] IMC Unknown Device type
[ 1.734462] IMC PMU (null) Register failed
[ 1.734558] nest_xlink0_imc performance monitor hardware support registered
[ 1.734614] nest_xlink1_imc performance monitor hardware support registered
[ 1.734670] nest_xlink2_imc performance monitor hardware support registered
[ 1.747043] Initialise system trusted keyrings
[ 1.747054] Key type blacklist registered
To avoid ambiguity on the error message, return for invalid domain
before attempting a pmu registration.
What do we print once the patch is applied?
Once the patch is applied, we return for invalid domains. so we will
only have
`/IMC Unknown Device type/` message printed for *unknown domains*.
And `/IMC PMU (null) Register failed/` message will appear only if the
registration fails for a *known domain*.
Thanks,
Anju
From: Michael Ellerman <hidden> Date: 2019-05-25 00:57:45
On Mon, 2019-05-20 at 08:57:53 UTC, Anju T Sudhakar wrote:
Currently init_imc_pmu() can be failed either because
an IMC unit with invalid domain(i.e an IMC node not
supported by the kernel) is attempted a pmu-registration
or something went wrong while registering a valid IMC unit.
In both the cases kernel provides a 'Registration failed'
error message.
Example:
Log message, when trace-imc node is not supported by the kernel, and the
skiboot supports trace-imc node.
So for kernel, trace-imc node is now an unknown domain.
[ 1.731870] nest_phb5_imc performance monitor hardware support registered
[ 1.731944] nest_powerbus0_imc performance monitor hardware support registered
[ 1.734458] thread_imc performance monitor hardware support registered
[ 1.734460] IMC Unknown Device type
[ 1.734462] IMC PMU (null) Register failed
[ 1.734558] nest_xlink0_imc performance monitor hardware support registered
[ 1.734614] nest_xlink1_imc performance monitor hardware support registered
[ 1.734670] nest_xlink2_imc performance monitor hardware support registered
[ 1.747043] Initialise system trusted keyrings
[ 1.747054] Key type blacklist registered
To avoid ambiguity on the error message, return for invalid domain
before attempting a pmu registration.
Fixes: 8f95faaac56c1 (`powerpc/powernv: Detect and create IMC device`)
Reported-by: Pavaman Subramaniyam <redacted>
Signed-off-by: Anju T Sudhakar <redacted>
Reviewed-by: Madhavan Srinivasan <redacted>