summaryrefslogtreecommitdiffstats
path: root/arch/ia64/include
diff options
context:
space:
mode:
authorCliff Wickman <cpw@sgi.com>2012-01-16 15:19:47 -0600
committerIngo Molnar <mingo@elte.hu>2012-01-17 09:09:54 +0100
commitc5d35d399e685acccc85a675e8765c26b2a9813a (patch)
tree5b66e875217ccc2e106162a089efddd5fec40c21 /arch/ia64/include
parentd059f9fa84a30e04279c6ff615e9e2cf3b260191 (diff)
x86/UV2: Work around BAU bug
This patch implements a workaround for a UV2 hardware bug. The bug is a non-atomic update of a memory-mapped register. When hardware message delivery and software message acknowledge occur simultaneously the pending message acknowledge for the arriving message may be lost. This causes the sender's message status to stay busy. Part of the workaround is to not acknowledge a completed message until it is verified that no other message is actually using the resource that is mistakenly recorded in the completed message. Part of the workaround is to test for long elapsed time in such a busy condition, then handle it by using a spare sending descriptor. The stay-busy condition is eventually timed out by hardware, and then the original sending descriptor can be re-used. Most of that logic change is in keeping track of the current descriptor and the state of the spares. The occurrences of the workaround are added to the BAU statistics. Signed-off-by: Cliff Wickman <cpw@sgi.com> Link: http://lkml.kernel.org/r/20120116211947.GC5767@sgi.com Cc: <stable@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/ia64/include')
0 files changed, 0 insertions, 0 deletions