Bug 463550 - [LTC 6.0 FEAT] 201049:DM-MP SCSI Hardware Handlers - bug fixes
[LTC 6.0 FEAT] 201049:DM-MP SCSI Hardware Handlers - bug fixes
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: kernel (Show other bugs)
6.0
ppc64 All
high Severity high
: alpha
: 6.0
Assigned To: Mike Christie
Barry Donahue
: FutureFeature
Depends On:
Blocks: 356741 RHEL6Kernel2.6.27 554559
  Show dependency treegraph
 
Reported: 2008-09-23 17:01 EDT by IBM Bug Proxy
Modified: 2010-11-15 09:10 EST (History)
9 users (show)

See Also:
Fixed In Version: kernel-2.6.32-1.el6
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-11-15 09:10:28 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
[SCSI] scsi dh alua: fix group id masking (1.27 KB, text/plain)
2009-07-29 22:31 EDT, IBM Bug Proxy
no flags Details
[SCSI] scsi_dh_rdac: Retry for Quiescence in Progress in rdac device handler (1.41 KB, text/plain)
2009-07-29 22:31 EDT, IBM Bug Proxy
no flags Details
[SCSI] scsi_dh_rdac: Retry mode select for NO_SENSE, ABORTED_COMMAND, UNIT_ATTENTION, NOT_READY(02/04/01) (2.59 KB, text/plain)
2009-07-29 22:31 EDT, IBM Bug Proxy
no flags Details
[SCSI] scsi_dh_rdac: Retry for NOT_READY check condition (1.22 KB, text/plain)
2009-07-29 22:31 EDT, IBM Bug Proxy
no flags Details
[SCSI] scsi_dh_rdac: Retry for NOT_READY(02/04/01) in rdac device handler (1.60 KB, text/plain)
2009-07-29 22:31 EDT, IBM Bug Proxy
no flags Details
dm mpath: call activate fn for each path in pg_init (6.14 KB, text/plain)
2009-07-29 22:31 EDT, IBM Bug Proxy
no flags Details
[SCSI] scsi_dh: Reference count scsi_dh_attach (2.88 KB, text/plain)
2009-07-29 22:41 EDT, IBM Bug Proxy
no flags Details

  None (edit)
Description IBM Bug Proxy 2008-09-23 17:01:42 EDT
=Comment: #0=================================================
Emily J. Ratliff <emilyr@us.ibm.com> - 2008-09-16 17:55 EDT
1. Feature Overview:
Feature Id:	[201049]
a. Name of Feature:	DM-MP SCSI Hardware Handlers
b. Feature Description
The SCSI HW Handler work is a community driven effort to address issues with the current dm-mp
handling of device specific errors. The current dm hardware handlers will be migrated to the SCSI
subsystem where the handlers can obtain more detailed failure information and obtain more detailed
information about the devices. This will also allow the dm-mp layer to deal with devices in a more
generic fashion and not have to decode SCSI specific data. This migration of the handlers is needed
to fully support a number of storage devices and increase the utility of Linux's multipath solution.

Additional Comments:	Request updates/follow-on as necessary to 5.3 feature
https://bugzilla.redhat.com/show_bug.cgi?id=438761 If no updates available, then this is validation
only.

2. Feature Details:
Sponsor:	PPC
Architectures:
x86_64
ppc64
s390x

Arch Specificity: Purely Common Code
Affects Core Kernel: Yes
Delivery Mechanism: Direct from community
Category:	Device Drivers and IO
Request Type:	Kernel - Enhancement from IBM
d. Upstream Acceptance:	Accepted
Sponsor Priority	1
f. Severity: High
IBM Confidential:	no
Code Contribution:	IBM code
g. Component Version Target:	2.6.27-rc1

3. Business Case
Follow the Linux storage system strategy of having a single unifying multipath solution that
supports all devices. Currently the DM-MP hardware handler solution cannot meet customer
expectations for devices having a active / passive path device model. This results in the
utilization of out of distro multipath drivers causing delays in certifications of the storage and
increased support costs managing the out of distro drivers.

Benefits
Fully compliant and support the multipath IO with Device Mapper for IBM hardware.

4. Primary contact at Red Hat: 
John Jarvis
jjarvis@redhat.com

5. Primary contacts at Partner:
Project Management Contact:
Stephanie Glass, sglass@us.ibm.com, 512-838-9284

Technical contact(s):
Daisy Chang, daisyc@us.ibm.com
Chandra Seetharaman, chandra.seetharaman@us.ibm.com

IBM Manager:
Wendel Voigt, wvoigt@us.ibm.com
Comment 1 IBM Bug Proxy 2008-09-25 20:01:04 EDT
Dear RedHat,

This involves making the SCSI Hardware Handler functionality available in the
kernel by making them available as modules, and making them available in initrd
images.
Comment 2 Mike Christie 2009-02-11 15:20:26 EST
IBM,

Is this bz for the userspace changes that are needed? I thought we had a 5.4 bugzilla for this? Do we need to make a new one?

Or

Is this bz for the scsi_dh kernel module changes that will be needed?

I also have this bz 471426 from you guys to add some fix to the rdac module. Do you guys have any other related bug fixes or bug fix bzs?
Comment 3 IBM Bug Proxy 2009-02-11 20:40:50 EST
Mike,

This is for getting the scsi_dh modules available in the kernel.
Comment 4 IBM Bug Proxy 2009-03-12 22:21:04 EDT
Code is available in mainline since 2.6.27. Enabling the code by including teh config option SCSI_DH_RDAC is needed.
Comment 5 IBM Bug Proxy 2009-07-29 22:31:11 EDT
------- Comment From sekharan@us.ibm.com 2009-07-29 22:21 EDT-------
Some of the patches had made to mainline after 2.6.29. These patches need to be added to RHEL6.

Please consider including these.
Comment 6 IBM Bug Proxy 2009-07-29 22:31:16 EDT
Created attachment 355626 [details]
[SCSI] scsi dh alua: fix group id masking


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:23 EDT-------


The buf[i] is a byte but we are only asking 4 bits off the
group_id. This patch has us take off a byte.
Comment 7 IBM Bug Proxy 2009-07-29 22:31:19 EDT
Created attachment 355627 [details]
[SCSI] scsi_dh_rdac: Retry for Quiescence in Progress in rdac device handler


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:24 EDT-------


During device discovery read capacity fails with 0x068b02 and sets the
device size to 0. As a reason any I/O submitted to this path gets
killed at sd_prep_fn with BLKPREP_KILL. This patch is to retry for
0x068b02
Comment 8 IBM Bug Proxy 2009-07-29 22:31:24 EDT
Created attachment 355628 [details]
[SCSI] scsi_dh_rdac: Retry mode select for NO_SENSE, ABORTED_COMMAND, UNIT_ATTENTION, NOT_READY(02/04/01)


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:26 EDT-------



This patch is to add retry for mode select if mode select command is
returned with sense NO_SENSE, UNIT_ATTENTION, ABORTED_COMMAND,
NOT_READY(02/04/01). This patch reorganise the sense keys from if-else
to switch-case format for better maintainability.
Comment 9 IBM Bug Proxy 2009-07-29 22:31:27 EDT
Created attachment 355629 [details]
[SCSI] scsi_dh_rdac: Retry for NOT_READY check condition


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:27 EDT-------


This patch adds retry for NOT_READY check condition - Quiesce in
progress (02/A1/02)
Comment 10 IBM Bug Proxy 2009-07-29 22:31:31 EDT
Created attachment 355630 [details]
[SCSI] scsi_dh_rdac: Retry for NOT_READY(02/04/01) in rdac device handler


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:27 EDT-------


During device discovery read capacity fails with 0x020401 and sets the
device size to 0. As a reason any I/O submitted to this path gets
killed at sd_prep_fn with BLKPREP_KILL. This patch is to retry for
0x020401. NEED_RETRY in scsi_decide_disposition does not give
sufficient time for the device to become ready.
Comment 11 IBM Bug Proxy 2009-07-29 22:31:35 EDT
Created attachment 355631 [details]
dm mpath: call activate fn for each path in pg_init


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:29 EDT-------



Before we moved the hardware handler from dm to SCSI, it performed a pg_init
for a path group and didn't maintain any state about each path in hardware
handler code.

But in SCSI dh, such state is now maintained, as we want to fail I/O early on a
path if it is not the active path.

All the hardware handlers have a state now and set to active or some form of
inactive.  They have prep_fn() which uses this state to fail the I/O without
it ever being sent to the device.

So in effect when dm-multipath calls scsi_dh_activate(), activate is
sent to only one path and the "state" of that path is changed appropriately
to "active" while other paths in the same path group are never changed
as they never got an "activate".

In order make sure all the paths in a path group gets their state set
properly when a pg_init happens, we need to call scsi_dh_activate() on
all paths in a path group.

Doing this at the hardware handler layer is not a good option as we
want the multipath layer to define the relationship between path and path
groups and not the hardware handler.

Attached patch sends an "activate" on each path in a path group when a
path group is switched. It also sends an activate when a path is reinstated.
Comment 12 IBM Bug Proxy 2009-07-29 22:41:03 EDT
Created attachment 355632 [details]
[SCSI] scsi_dh: Reference count scsi_dh_attach


------- Comment on attachment From sekharan@us.ibm.com 2009-07-29 22:31 EDT-------


Problem reported: http://marc.info/?l=dm-devel&m=124585978305866&w=2

scsi_dh does not do a refernce count for attach/detach, and this affects
the way it is supposed to work with multipath when a device is not 
in the dev_list of the hardware handler. 

This patch adds a reference count that counts each attach.
Comment 15 IBM Bug Proxy 2009-11-11 20:41:16 EST
------- Comment From sekharan@us.ibm.com 2009-11-11 20:34 EDT-------
installed 10/29/2009 version of Alpha 2 (kernel version 2.6.31-33) and found that the last patch is not applied.
Comment 16 Steve Best 2010-01-18 11:25:11 EST
(In reply to comment #15)
> ------- Comment From sekharan@us.ibm.com 2009-11-11 20:34 EDT-------
> installed 10/29/2009 version of Alpha 2 (kernel version 2.6.31-33) and found
> that the last patch is not applied.    

Hi,

just wanted to make sure you are talking about [SCSI] scsi_dh: Reference count scsi_dh_attach patch which is upstream in 2.6.32 correct?

Thanks,
Steve
Comment 17 IBM Bug Proxy 2010-01-18 13:22:31 EST
------- Comment From sekharan@us.ibm.com 2010-01-18 13:17 EDT-------
(In reply to comment #17)
> (In reply to comment #15)
> > installed 10/29/2009 version of Alpha 2 (kernel version 2.6.31-33) and found
> > that the last patch is not applied.
>
> Hi,
>
> just wanted to make sure you are talking about [SCSI] scsi_dh: Reference count
> scsi_dh_attach patch which is upstream in 2.6.32 correct?
>
> Thanks,
> Steve

Yes. That is the patch I was referring to.
Comment 18 Steve Best 2010-01-19 09:03:40 EST
(In reply to comment #17)
> ------- Comment From sekharan@us.ibm.com 2010-01-18 13:17 EDT-------
> (In reply to comment #17)
> > (In reply to comment #15)
> > > installed 10/29/2009 version of Alpha 2 (kernel version 2.6.31-33) and found
> > > that the last patch is not applied.
> >
> > Hi,
> >
> > just wanted to make sure you are talking about [SCSI] scsi_dh: Reference count
> > scsi_dh_attach patch which is upstream in 2.6.32 correct?
> >
> > Thanks,
> > Steve
> 
> Yes. That is the patch I was referring to.    

Ok, thanks. [SCSI] scsi_dh: Reference count scsi_dh_attach patch is in 2.6.32 and we are in the process of moving RHEL 6 to 2.6.32, so I assume there isn't any additional work needed to be done here.

The other patches listed in the bz have already been checked and are in RHEL6 correct?

Steve
Comment 19 IBM Bug Proxy 2010-01-20 12:31:51 EST
------- Comment From sekharan@us.ibm.com 2010-01-20 12:24 EDT-------
> Ok, thanks. [SCSI] scsi_dh: Reference count scsi_dh_attach patch is in 2.6.32
> and we are in the process of moving RHEL 6 to 2.6.32, so I assume there isn't
> any additional work needed to be done here.
>
Which release would have 2.6.32 ?

Can you please comment in this bug when that happens.

> The other patches listed in the bz have already been checked and are in RHEL6
> correct?

Yes.

Thanks.
>
> Steve
Comment 20 Steve Best 2010-01-21 13:38:10 EST
(In reply to comment #19)
> ------- Comment From sekharan@us.ibm.com 2010-01-20 12:24 EDT-------
> > Ok, thanks. [SCSI] scsi_dh: Reference count scsi_dh_attach patch is in 2.6.32
> > and we are in the process of moving RHEL 6 to 2.6.32, so I assume there isn't
> > any additional work needed to be done here.
> >
> Which release would have 2.6.32 ?

beta

> 
> Can you please comment in this bug when that happens.
> 
> > The other patches listed in the bz have already been checked and are in RHEL6
> > correct?
> 
> Yes.
> 
> Thanks.
> >
> > Steve    

I just checked the latest source and it does have this patch. so this bz doesn't have any additional work to be done for it.

Steve
Comment 22 IBM Bug Proxy 2010-04-28 17:41:27 EDT
------- Comment From sekharan@us.ibm.com 2010-04-28 17:39 EDT-------
Verified to be available in Beta1
Comment 23 releng-rhel@redhat.com 2010-11-15 09:10:28 EST
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.

Note You need to log in before you can comment on or make changes to this bug.