x86: Add per-cpu stat counter for APIC ICR read tries
authorFernando Luis Vázquez Cao <fernando@oss.ntt.co.jp>
Tue, 13 Dec 2011 02:51:53 +0000 (11:51 +0900)
committerIngo Molnar <mingo@elte.hu>
Wed, 14 Dec 2011 08:32:05 +0000 (09:32 +0100)
commit346b46be5f10e4d247160ea94ac34450be60ce1e
treee7515a97d2f0da032c8e1d1371aa94e866c50065
parentb95a7bd700466c10fda84acbd33f70cf66ec91ce
x86: Add per-cpu stat counter for APIC ICR read tries

In the IPI delivery slow path (NMI delivery) we retry the ICR
read to check for delivery completion a limited number of times.

[ The reason for the limited retries is that some of the places
  where it is used (cpu boot, kdump, etc) IPI delivery might not
  succeed (due to a firmware bug or system crash, for example)
  and in such a case it is better to give up and resume
  execution of other code. ]

This patch adds a new entry to /proc/interrupts, RTR, which
tells user space the number of times we retried the ICR read in
the IPI delivery slow path.

This should give some insight into how well the APIC
message delivery hardware is working - if the counts are way
too large then we are hitting a (very-) slow path way too
often.

Signed-off-by: Fernando Luis Vazquez Cao <fernando@oss.ntt.co.jp>
Cc: Jörn Engel <joern@logfs.org>
Cc: Suresh Siddha <suresh.b.siddha@intel.com>
Link: http://lkml.kernel.org/n/tip-vzsp20lo2xdzh5f70g0eis2s@git.kernel.org
[ extended the changelog ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/apic.h
arch/x86/kernel/apic/apic.c
arch/x86/kernel/irq.c