Atn: Add sanity check for invalid fsi reads
We recently saw traces where fsi reads were reporting values that seemed
to be duplicates of the last known good read. Added a sanity check that
will indicate whether this occurs due to a pdbg library issue or a sbe
fifo issue.
Signed-off-by: Ben Tyner <ben.tyner@ibm.com>
Change-Id: I56888f1cdb66650915ad1b2b350b5cd22861ef76
diff --git a/attn/attn_handler.cpp b/attn/attn_handler.cpp
index 3e51f57..b8181b8 100644
--- a/attn/attn_handler.cpp
+++ b/attn/attn_handler.cpp
@@ -103,6 +103,8 @@
ss << "target - " << path;
trace<level::INFO>(ss.str().c_str());
+ isr_val = 0xffffffff; // invalid isr value
+
// get active attentions on processor
if (RC_SUCCESS != fsi_read(attnTarget, 0x1007, &isr_val))
{
@@ -110,6 +112,11 @@
trace<level::INFO>("Error! cfam read 0x1007 FAILED");
eventAttentionFail(RC_CFAM_ERROR);
}
+ else if (0xffffffff == isr_val)
+ {
+ trace<level::INFO>("Error! cfam read 0x1007 INVALID");
+ continue;
+ }
else
{
// trace isr
@@ -119,6 +126,8 @@
<< isr_val;
trace<level::INFO>(ss.str().c_str());
+ isr_mask = 0xffffffff; // invalid isr mask
+
// get interrupt enabled special attentions mask
if (RC_SUCCESS != fsi_read(attnTarget, 0x100d, &isr_mask))
{
@@ -126,6 +135,11 @@
trace<level::INFO>("Error! cfam read 0x100d FAILED");
eventAttentionFail(RC_CFAM_ERROR);
}
+ else if (0xffffffff == isr_mask)
+ {
+ trace<level::INFO>("Error! cfam read 0x100d INVALID");
+ continue;
+ }
else
{
// trace true-mask