[SCSI] ipr: improve interrupt service routine performance
authorWayne Boyer <wayneb@linux.vnet.ibm.com>
Tue, 12 Apr 2011 17:29:02 +0000 (10:29 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 1 May 2011 15:48:53 +0000 (10:48 -0500)
commit7dacb64f49848f1f28018fd3e58af8d6ba234960
tree329bbb35edbe457081fdfa42d15467c86fc169b2
parent3425fbfe2293244abba72c80b215d09ead32d1ad
[SCSI] ipr: improve interrupt service routine performance

During performance testing on P7 machines it was observed that the interrupt
service routine was doing unnecessary MMIO operations.

This patch rearranges the logic of the routine and moves some of the code out
of the main routine.  The result is that there are now fewer MMIO operations in
the performance path of the code.

As a result of the above change, an existing condition was exposed where the
driver could get an "unexpected" hrrq interrupt.  The original code would flag
the interrupt as unexpected and then reset the adapter.  After further analysis
it was confirmed that this condition can occasionally occur and that the
interrupt can safely be ignored.  Additional code in this patch detects this
condition, clears the interrupt and allows the driver to continue without
resetting the adapter.

Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/ipr.c