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);