From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754638Ab0IAJlA (ORCPT ); Wed, 1 Sep 2010 05:41:00 -0400 Received: from lucidpixels.com ([75.144.35.66]:32789 "EHLO lucidpixels.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754481Ab0IAJk4 (ORCPT ); Wed, 1 Sep 2010 05:40:56 -0400 Date: Wed, 1 Sep 2010 05:40:52 -0400 (EDT) From: Justin Piszcz To: adam radford cc: linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org Subject: Re: 3w-9xxx: scsi0: WARNING: (0x06:0x0037): Character ioctl (0x108) timed out, resetting card. In-Reply-To: Message-ID: References: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 31 Aug 2010, Justin Piszcz wrote: >> Hi Adam and LSI, LSI got back to me, they said to try their latest firwmare and that the high I/O wait was solved in that release. # tw_cli /c0 show all | grep -i firmware /c0 Firmware Version = FE9X 4.10.00.016 # tw_cli /c1 show all | grep -i firmware /c1 Firmware Version = FE9X 4.10.00.016 I upgraded to the newest firmware, 2.6.34 remains solid. However, when I moved to 2.6.35, the high I/O weight and system freezes recur. Has anyone not noticed this? I have two different controllers, a 4 and 16 port 9650SE, both with BBUs, one with a RAID-1 the other with a RAID-6 and I've never had any problems like this before (this high I/O wait/ctrl reset) until I moved to 2.6.35. There is something wrong/happening here in 2.6.35 that causes the system to become unresponsive and reset the controllers under high load. Prior to 2.6.35, the problem does not exist, I have confirmed this on both firmwares now. Could the lock/unlock be causing the issue? Again, in 2.6.34, there are no latency problems or controller resets. 3ware diff: --- linux-2.6.34.6/drivers/scsi/3w-9xxx.c 2010-08-26 19:44:38.000000000 -0400 +++ linux-2.6.35.4/drivers/scsi/3w-9xxx.c 2010-08-26 19:47:12.000000000 -0400 - Written By: Adam Radford - Modifications By: Tom Couch + Written By: Adam Radford + Modifications By: Tom Couch + Copyright (C) 2010 LSI Corporation. - linuxraid@amcc.com + linuxraid@lsi.com - http://www.amcc.com + http://www.lsi.com + 2.26.02.014 - Force 60 second timeout default. -#define TW_DRIVER_VERSION "2.26.02.013" +#define TW_DRIVER_VERSION "2.26.02.014" -MODULE_AUTHOR ("AMCC"); +MODULE_AUTHOR ("LSI"); -static int twa_chrdev_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg); +static long twa_chrdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg); - .ioctl = twa_chrdev_ioctl, + .unlocked_ioctl = twa_chrdev_ioctl, -static int twa_chrdev_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) +static long twa_chrdev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) + struct inode *inode = file->f_path.dentry->d_inode; + lock_kernel(); + + unlock_kernel(); +/* This function gets called when a disk is coming on-line */ +static int twa_slave_configure(struct scsi_device *sdev) +{ + /* Force 60 second timeout */ + blk_queue_rq_timeout(sdev->request_queue, 60 * HZ); + + return 0; +} /* End twa_slave_configure() */ + + .slave_configure = twa_slave_configure,