linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: "Mathieu Bérard" <Mathieu.Berard@crans.org>
Cc: "Rafael J. Wysocki" <rjw@sisk.pl>,
	linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <andi@firstfloor.org>, Jeff Garzik <jeff@garzik.org>
Subject: Re: 2.6.25 to 2.6.26-rc8 regression  (related to ahci and acpi _GTF)
Date: Fri, 04 Jul 2008 13:36:42 +0900	[thread overview]
Message-ID: <486DA8DA.4070601@gmail.com> (raw)
In-Reply-To: <486B4490.7080904@crans.org>

[-- Attachment #1: Type: text/plain, Size: 1615 bytes --]

Mathieu Bérard wrote:
> Tejun Heo a écrit :
>> Rafael J. Wysocki wrote:
>>   
>>> [Adding CCs.]
>>>
>>> On Tuesday, 1 of July 2008, Mathieu Bérard wrote:
>>>     
>>>> Hi,
>>>> I have a laptop with an ICH6M SATA Controller and a Hitachi hard drive.
>>>> While it worked well using the ahci module and Linux 2.6.25, 
>>>> it get randomly 'stuck' for several seconds to several minutes with 2.6.26-rc8.
>>>> Successive errors progressively reduce the ATA link speed.
>>>>
>>>> Passing the libata.noacpi parameter is an effective workaround.
>>>>
>>>> Please note that it's not the first time i have this kind of issue, see:
>>>> http://marc.info/?l=linux-ide&m=117305595312399&w=2
>>>> This was found to be a bad interaction between my _GTF taskfile, which enable the
>>>> "Enable Device-Initiated Interface Power State Transitions" feature, and NCQ.
>>>> The driver was later NCQ blacklisted to correct the problem.
>>>>       
>> Can you please post the result of "hdparm -I /dev/sda" and full kernel
>> boot log?  0xca is not a NCQ command so the it's not related to NCQ at
>> all.  It seems we'll need to filter out DIPM commands from _GTF.
>>
>>   
> Hi,
> hdparm and dmesg output attached.
> 
> I was not expecting anything related to NCQ as my drive is blacklisted,
> I was just mentioning previous issue with that hardware.
> 
> Do you know what has changed in this version that is now causing failure
> with DIPM ?  I could bisect to try to find out, but this will be painful
> as the
> device hang may only appears after several minutes of disk activity.

Can you please test the attached patch?

-- 
tejun

[-- Attachment #2: filter-dipm.patch --]
[-- Type: text/x-patch, Size: 1291 bytes --]

diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 3ff8b14..abea74b 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -29,14 +29,16 @@
 enum {
 	ATA_ACPI_FILTER_SETXFER	= 1 << 0,
 	ATA_ACPI_FILTER_LOCK	= 1 << 1,
+	ATA_ACPI_FILTER_DIPM	= 1 << 2,
 
 	ATA_ACPI_FILTER_DEFAULT	= ATA_ACPI_FILTER_SETXFER |
-				  ATA_ACPI_FILTER_LOCK,
+				  ATA_ACPI_FILTER_LOCK |
+				  ATA_ACPI_FILTER_DIPM,
 };
 
 static unsigned int ata_acpi_gtf_filter = ATA_ACPI_FILTER_DEFAULT;
 module_param_named(acpi_gtf_filter, ata_acpi_gtf_filter, int, 0644);
-MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze lock)");
+MODULE_PARM_DESC(acpi_gtf_filter, "filter mask for ACPI _GTF commands, set to filter out (0x1=set xfermode, 0x2=lock/freeze lock, 0x4=DIPM)");
 
 #define NO_PORT_MULT		0xffff
 #define SATA_ADR(root, pmp)	(((root) << 16) | (pmp))
@@ -690,6 +692,14 @@ static int ata_acpi_filter_tf(const struct ata_taskfile *tf,
 			return 1;
 	}
 
+	if (ata_acpi_gtf_filter & ATA_ACPI_FILTER_DIPM) {
+		/* inhibit enabling DIPM */
+		if (tf->command == ATA_CMD_SET_FEATURES &&
+		    tf->feature == SETFEATURES_SATA_ENABLE &&
+		    tf->nsect == SATA_DIPM)
+			return 1;
+	}
+
 	return 0;
 }
 

  reply	other threads:[~2008-07-04  4:36 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-01  9:39 2.6.25 to 2.6.26-rc8 regression (related to ahci and acpi _GTF) Mathieu Bérard
2008-07-01 14:14 ` Rafael J. Wysocki
2008-07-02  2:55   ` Tejun Heo
2008-07-02  9:04     ` Mathieu Bérard
2008-07-04  4:36       ` Tejun Heo [this message]
2008-07-04 16:08         ` Mathieu Bérard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=486DA8DA.4070601@gmail.com \
    --to=htejun@gmail.com \
    --cc=Mathieu.Berard@crans.org \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=jeff@garzik.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjw@sisk.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).