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;
}
next prev parent reply other threads:[~2008-07-04 4:37 UTC|newest]
Thread overview: 8+ 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-01 14:14 ` Rafael J. Wysocki
2008-07-02 2:55 ` Tejun Heo
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.