On 10/9/20 10:34 AM, Michael Ellerman wrote:
Vasant Hegde <hegdevas...@linux.vnet.ibm.com> writes:
OPAL interrupts kernel whenever it has new error log. Kernel calls
interrupt handler (elog_event()) to retrieve event. elog_event makes
OPAL API call (opal_get_elog_size()) to retrieve elog info.

In some case before kernel makes opal_get_elog_size() call, it gets interrupt
again. So second time when elog_event() calls opal_get_elog_size API OPAL
returns error.

Can you give more detail there? Do you have a stack trace?

I observe below log in dmesg
  [  615.708709] ELOG: OPAL log info read failed

That means elog_event called twice for same error log event.
I don't have stack trace.


We use IRQF_ONESHOT for elog_event(), which (I thought) meant it
shouldn't be called again until it has completed.

Yes. I thought so.. But once in a while we get above message (mostly when we have multiple event bits are set).

-Vasant



So I'm unclear how you're seeing the behaviour you describe.

cheers

Its safe to ignore this error. Hence reduce the severity
of log message.

CC: Mahesh Salgaonkar <mah...@linux.ibm.com>
Signed-off-by: Vasant Hegde <hegdevas...@linux.vnet.ibm.com>
---
  arch/powerpc/platforms/powernv/opal-elog.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/platforms/powernv/opal-elog.c 
b/arch/powerpc/platforms/powernv/opal-elog.c
index 62ef7ad995da..67f435bb1ec4 100644
--- a/arch/powerpc/platforms/powernv/opal-elog.c
+++ b/arch/powerpc/platforms/powernv/opal-elog.c
@@ -247,7 +247,7 @@ static irqreturn_t elog_event(int irq, void *data)
rc = opal_get_elog_size(&id, &size, &type);
        if (rc != OPAL_SUCCESS) {
-               pr_err("ELOG: OPAL log info read failed\n");
+               pr_debug("ELOG: OPAL log info read failed\n");
                return IRQ_HANDLED;
        }
--
2.26.2

Reply via email to