From Bugzilla Helper: User-Agent: Mozilla/4.72 [en] (X11; U; Linux 2.2.14-5.0smp i686) Description of problem: The qla2200 "addon" driver has incorrect number of handles for RIO types 1 and 2 IOCBs. These are documented has having 15 and 30 handles respectively, but in qla2x00.h the rio_iocb_type1_entry and rio_iocb_type2_entry structures are one short. This "short" limit is also present in qla2x00_handle_RIO_type2_iocb() and qla2x00_handle_RIO_type1_iocb() functions. When the number of handles in an RIO is at the real maximum, the qla2200 issues a warning, and then (in qla2x00_process_good_request()) marks the HBA as needing a reset (due to bad handle). Under anything but a light load, I'm getting constant resets (which generate a LIP on the fabric). I'm using direct-attached FC JBODs, but the issue is also present when using a switch. The qla2200 driver appears to be using a signature ("RESPONSE_PROCESSED") to identify completed entries in the response ring. This is strange. The ISP (processor) maintains "in" and "out" pointers for this ring. For the ISP 2300, the "in" pointer appears to need "debouncing". Feral's ISP driver correctly uses response ring pointers, and has correct sizes for the RIOs. It does not constantly reset. Could, either; a) Use feral's driver as the default for both 2200 and 2300; http://www.feral.com/ b) Fix the qla2200 addon driver Version-Release number of selected component (if applicable): kernel-bigmem-2.4.21-1.1931.2.349.2.2.ent How reproducible: Always Steps to Reproduce: 1. Use the qla2200 driver, either with a 2200 or 2300 2. An "dd if=/dev/sdc of=/dev/null", where sdc is on the fabric, will show constant resets. 3. Actual Results: The "dd" will cause back-to-back resets. Performance will _crawl_. Expected Results: No resets under normal operation. Good performance. Additional info:
a fix for this has been merged
Closing MODIFIED bugs as fixed. Please reopen if the problem perists.