From patchwork Mon Dec 20 17:12:56 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tejun Heo X-Patchwork-Id: 76213 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 000E0B7088 for ; Tue, 21 Dec 2010 04:13:04 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932945Ab0LTRNB (ORCPT ); Mon, 20 Dec 2010 12:13:01 -0500 Received: from mail-bw0-f45.google.com ([209.85.214.45]:60172 "EHLO mail-bw0-f45.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932939Ab0LTRNA (ORCPT ); Mon, 20 Dec 2010 12:13:00 -0500 Received: by bwz16 with SMTP id 16so3529569bwz.4 for ; Mon, 20 Dec 2010 09:12:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=xMq+hDcaKguG7eBPYx88S0Reyw25rM6ZpS9G8IzhLSI=; b=Ig2I+zVsrAhIVNuUFPRravdgqQlZZ0EvoXVhk1cRa/eofBcc7TVpG8OzJM970Nx09u 9FbkUEXBrDgva/IM0NjpuRjn+Xirz+Lq5WE3tyWYDNrYIVetw7UOeqI6SsM02ZgbpJ95 PZ1PIyYrSTn0YebCMy0xHfdfr4RUwIcNMMzKk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=VkkM+kFsNU7e7xAvuhJz70+8uGbX/i6MftXtG+dnV8bO5a/AWXFiIIE5jh6pCY81G5 d0exPtkg/PxxVRgmu24eZaUuIpR66c+HTjYDwUChvsNH4lHc18syBkXEmGW9uIBWovJd TTxLZmSX1OpBcH/ja/Wyv1v6CrSIuxOJGwujE= Received: by 10.204.32.206 with SMTP id e14mr3686809bkd.152.1292865179028; Mon, 20 Dec 2010 09:12:59 -0800 (PST) Received: from [130.75.117.88] ([130.75.117.88]) by mx.google.com with ESMTPS id x38sm2465265bkj.1.2010.12.20.09.12.57 (version=SSLv3 cipher=RC4-MD5); Mon, 20 Dec 2010 09:12:58 -0800 (PST) Message-ID: <4D0F8E98.9070500@kernel.org> Date: Mon, 20 Dec 2010 18:12:56 +0100 From: Tejun Heo User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7 MIME-Version: 1.0 To: Martin Steigerwald CC: linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org Subject: Re: [regression] 2.6.37-rc5: scsi_eh_11 CPU loop References: <201012201105.08993.Martin@lichtvoll.de> In-Reply-To: <201012201105.08993.Martin@lichtvoll.de> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org Hello, On 12/20/2010 11:05 AM, Martin Steigerwald wrote: > Hi! > > top - 10:49:07 up 3 days, 14:24, 8 users, load average: 2.31, 2.62, 2.28 > Tasks: 198 total, 2 running, 194 sleeping, 0 stopped, 2 zombie > Cpu(s): 6.8%us, 93.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, > 0.0%st > Mem: 2073660k total, 1941152k used, 132508k free, 153876k buffers > Swap: 4000180k total, 243452k used, 3756728k free, 676612k cached > > PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND > 735 root 20 0 0 0 0 R 85.2 0.0 137:28.94 scsi_eh_11 > > I don't see anything in dmesg. Everything appears to work as normal, > except for the slowness. Which got a bit better upon renicing scsi_eh_11 > to 19 (not knowing whether its really safe, but it works for now). > > Interrupts appear to be within usual range as well: Can you please apply the following patch, trigger the problem and attach the kernel log? diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 5e59050..c748b5a 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -888,12 +888,19 @@ void ata_eh_fastdrain_timerfn(unsigned long arg) */ static void ata_eh_set_pending(struct ata_port *ap, int fastdrain) { + static int xxx; int cnt; /* already scheduled? */ if (ap->pflags & ATA_PFLAG_EH_PENDING) return; + if (!(ap->pflags & ATA_PFLAG_LOADING) && xxx < 16) { + ata_port_printk(ap, KERN_WARNING, "XXX ata_eh_set_pending()\n"); + dump_stack(); + xxx++; + } + ap->pflags |= ATA_PFLAG_EH_PENDING; if (!fastdrain)