Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753862AbbLVID6 (ORCPT ); Tue, 22 Dec 2015 03:03:58 -0500 Received: from mx2.suse.de ([195.135.220.15]:44462 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752337AbbLVID5 (ORCPT ); Tue, 22 Dec 2015 03:03:57 -0500 Subject: Re: [PATCH v3 66/77] ncr5380: Fix soft lockups To: Finn Thain , "James E.J. Bottomley" , Michael Schmitz , linux-m68k@vger.kernel.org, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, "Martin K. Petersen" , Russell King , linux-arm-kernel@lists.infradead.org References: <20151222011737.980475848@telegraphics.com.au> <20151222011755.965510468@telegraphics.com.au> From: Hannes Reinecke Message-ID: <567903EA.7030803@suse.de> Date: Tue, 22 Dec 2015 09:03:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20151222011755.965510468@telegraphics.com.au> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2147 Lines: 54 On 12/22/2015 02:18 AM, Finn Thain wrote: > Because of the rudimentary design of the chip, it is necessary to poll the > SCSI bus signals during PIO and this tends to hog the CPU. The driver will > accept new commands while others execute, and this causes a soft lockup > because the workqueue item will not terminate until the issue queue is > emptied. > > When exercising dmx3191d using sequential IO from dd, the driver is sent > 512 KiB WRITE commands and 128 KiB READs. For a PIO transfer, the rate is > is only about 300 KiB/s, so these are long-running commands. And although > PDMA may run at several MiB/s, interrupts are disabled for the duration > of the transfer. > > Fix the unresponsiveness and soft lockup issues by calling cond_resched() > after each command is completed and by limiting max_sectors for drivers > that don't implement real DMA. > > Signed-off-by: Finn Thain > > --- > > Changed since v2: > - Moved max_sectors initialization to wrapper drivers. It isn't really > relevant to the core driver and compile-time configuration using macros > like REAL_DMA should be avoided. > > --- > drivers/scsi/NCR5380.c | 6 ++++-- > drivers/scsi/arm/cumana_1.c | 1 + > drivers/scsi/arm/oak.c | 1 + > drivers/scsi/atari_NCR5380.c | 6 ++++-- > drivers/scsi/dmx3191d.c | 1 + > drivers/scsi/dtc.c | 1 + > drivers/scsi/g_NCR5380.c | 1 + > drivers/scsi/mac_scsi.c | 1 + > drivers/scsi/pas16.c | 1 + > drivers/scsi/t128.c | 1 + > 10 files changed, 16 insertions(+), 4 deletions(-) > Reviewed-by: Hannes Reinecke Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage hare@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: J. Hawn, J. Guild, F. Imend?rffer, HRB 16746 (AG N?rnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/