Bug 102591

Summary: QLogic drivers for ISP 2200/2300 are bad
Product: Red Hat Enterprise Linux 3 Reporter: Mark Hemment <markhe>
Component: kernelAssignee: Dave Jones <davej>
Status: CLOSED CURRENTRELEASE QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: pfrields
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-10-11 15:23:46 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 101028    

Description Mark Hemment 2003-08-18 14:19:30 UTC
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:

Comment 1 Arjan van de Ven 2003-09-03 21:03:21 UTC
a fix for this has been merged

Comment 2 Bill Nottingham 2004-10-11 15:23:46 UTC
Closing MODIFIED bugs as fixed. Please reopen if the problem perists.