Bug 11120
Summary: | [PATCH, TRIVIAL]aacraid driver stalls on high-load SMP machines | ||
---|---|---|---|
Product: | SCSI Drivers | Reporter: | Matthias Urlichs (smurf) |
Component: | AACRAID | Assignee: | Alan (alan) |
Status: | CLOSED WILL_NOT_FIX | ||
Severity: | normal | CC: | alan, stefan.nader |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.24 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Matthias Urlichs
2008-07-18 14:36:00 UTC
Update: my uniprocessor band-aid, besides significantly decreasing performance, resulted in an eventual CPU soft-hang (all of them) some hours later, so this workaround obviously doesn't. Increase your scsi bus timeouts and/or decrease the device queue depth. The driver is doing what it can when the Adapter's Firmware gets overloaded and reticent. One of the changes post 2.6.18 was to increase the maximum SGB Length to 256 from 128 as safe at the time, this may have allowed this series of Adapters to run out of internal resources in combination with other changes and improvement in the block and scsi subsystem. The line in .../drivers/scsi/aacraid/aacraid.h: #define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)256) affects this value. Thank you. I will test this workaround today. Works. --- Reduce AACRAID hardware queue size (kernel bug#11120) Signed-Off-By: Mathias Urlichs <matthias@urlichs.de> diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 73916ad..b1b10b3 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h @@ -24,7 +24,7 @@ #define AAC_MAX_LUN (8) #define AAC_MAX_HOSTPHYSMEMPAGES (0xfffff) -#define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)256) +#define AAC_MAX_32BIT_SGBCOUNT ((unsigned short)127) /* * These macros convert from physical channels to virtual channels Also confirm CentOS 5.3 x64 - Adaptec 2810SA Owning to kick upstream James the SCSI maintainer says: The maximum transfer length critically impacts I/O throughput and performance ... I can't just penalise everyone for the sake of two bug reports. This value can already be altered on the fly using the /sys/block/<dev>/queue/max_sectors_kb So closing as wont fix (pending other evidence obviously) |