Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > fc11cd6e1c513a17304da94a5390f3cd > files > 2875

kernel-2.6.18-194.11.1.el5.src.rpm

From: AMEET M. PARANJAPE <aparanja@redhat.com>
Date: Thu, 21 May 2009 21:46:33 -0500
Subject: [ppc] LPAR hang on multipath device with FCS v2
Message-id: 4A161209.2090207@REDHAT.COM
O-Subject: Re: [PATCH RHEL5.4 BZ498927] Fix LPAR hang on a multipath device while enabling/disabling ports on the Fibre Channel Switch
Bugzilla: 498927
RH-Acked-by: David Howells <dhowells@redhat.com>

David Howells wrote:
> AMEET M. PARANJAPE <aparanja@redhat.com> wrote:
>
>
>> https://bugzilla.redhat.com/show_bug.cgi?id=498927
>>
>> Description:
>> ===========
>> Previously we had one timeout that was used for all types of operations.
>> This patch adds specific timeout values for different operations (init, login,
>> adapter info MAD, abort task, and LUN reset).
>>
>> The extremely short timeout present in the previous shipping code will lead
>> to data loss and possibly system hangs when the root fs is affected.
>>
>
> ACK.
>
Additional testing showed that some of the timeout values weren't big enough.
Timeout values were changed for init and ibmvscsi_slave_configure() queue.  The patch was
re-tested and worked fine.

Brewbuild tests ran fine:
https://brewweb.devel.redhat.com/taskinfo?taskID=1811038

--
Ameet M. Paranjape
aparanja@redhat.com
IBM/Red Hat POWER Liason
IRC name: aparanja

diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index bc7af95..93f7e65 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -84,7 +84,7 @@
  */
 static int max_id = 64;
 static int max_channel = 3;
-static int init_timeout = 120;
+static int init_timeout = 300;
 static int login_timeout = 60;
 static int info_timeout = 30;
 static int abort_timeout = 60;
@@ -1472,7 +1472,7 @@ static int ibmvscsi_slave_configure(struct scsi_device *sdev)
 	spin_lock_irqsave(shost->host_lock, lock_flags);
 	if(sdev->type == TYPE_DISK) {
 		sdev->allow_restart = 1;
-		sdev->timeout = 60 * HZ;
+		sdev->timeout = 120 * HZ;
 	}
 	scsi_adjust_queue_depth(sdev, 0, shost->cmd_per_lun);
 	spin_unlock_irqrestore(shost->host_lock, lock_flags);