* Serial ATA (SATA) for Linux status report
@ 2003-12-03 20:44 Jeff Garzik
2003-12-03 23:27 ` Andre Tomt
` (4 more replies)
0 siblings, 5 replies; 23+ messages in thread
From: Jeff Garzik @ 2003-12-03 20:44 UTC (permalink / raw)
To: linux-kernel, linux-ide, linux-scsi
Editor's preface: This is clearly a first draft, only covering the
basics. In order for this document to be effective, I request that
users and developers send me (or post) their SATA driver questions and
issues. I will do my best to address them here.
Serial ATA (SATA) for Linux
status report
Dec 3, 2003
Hardware support
================
Intel ICH5
----------
Summary: No TCQ. Looks like a PATA controller, but with a few added,
non-standard SATA port controls.
libata driver status: Production, but see issue #2, #3.
drivers/ide driver status: Production, but see issue #1, #2.
Issue #1: Depending on BIOS settings, IDE driver may lock up computer
when probing drives.
Issue #2: Excessive interrupts are seen in some configurations.
Issue #3: "Enhanced mode" or "SATA-only mode" may need to be set in BIOS.
Intel ICH6 ("AHCI")
-------------------
Summary: Per-device queues, full SATA control including hotplug
and PM.
libata driver status: In development.
Promise
-------
Summary: Per-host queues on all controllers. Full SATA control
including hotplug and PM on all but one controller.
libata driver status: Beta.
Silicon Image 3112
------------------
Summary: No TCQ. Looks like a PATA controller, but with full SATA
control including hotplug and PM.
libata driver status: Alpha.
drivers/ide driver status: Production, but see issue #4.
Issue #4: Need to have the most recent fixes posted to lkml, for stable
operation and full performance (where possible).
Broadcom/ServerWorks/Apple
--------------------------
Summary: Huge per-device queues, full SATA control including hotplug
and PM.
libata driver status: Beta.
VIA
---
Summary: No TCQ. Looks like a PATA controller, but with full SATA
control including hotplug and PM.
libata driver status: Beta.
Software support
================
Basic Serial ATA support
------------------------
The "ATA host state machine", the core of the entire driver, is
considered production-stable.
The error handling is _very_ simple, but at this stage that is an
advantage. Error handling code anywhere is inevitably both complex and
sorely under-tested. libata error handling is intentionally simple.
Positives: Easy to review and verify correctness. Never data
corruption. Negatives: if an error occurs, libata will simply send
the error back the block layer. There are limited retries by the block
layer, depending on the type of error, but there is never a bus reset.
Or in other words: "it's better to stop talking to the disk than
compound existing problems with further problems."
As Serial ATA matures, and host- and device-side errata become apparent,
the error handling will be slowly refined. I am planning to work with a
few (kind!) disk vendors, to obtain special drives/firmwares that allow
me to inject faults, and otherwise exercise error handling code.
Queueing support
----------------
Even though some SATA host controllers on the market already support
command queueing (a.k.a. "TCQ"), libata does not yet support it.
However, libata was designed from the ground-up to support queueing, so
I need only change a few lines of code, and write two functions, to
enable this behavior.
Queueing will be enabled in libata soon, but to do so requires a long
stretch of testing on a large variety of controllers and drives. This
is very time-intensive, and is the largest part of this task.
Tangent: Host-based queueing and Native Command Queueing
Queueing is the process of sending multiple commands to a single device,
without waiting for prior commands to finish. This increases
performance and reduces latency. There are three types of queueing in
the ATA world:
1) "legacy TCQ" -- some PATA devices support this. Just ignore it,
it's going away.
2) "host-based TCQ" -- the host controller supports a queue of drive
commands, whether or not the drive supports it.
3) "Native Command Queueing" -- both host and drive cooperate in the
queueing and execution of drive commands. This should provide the
highest performance and lowest latency of all three options.
#1 is support by drivers/ide _only_. libata will not support this.
#2 will soon be supported by libata.
#3 will be supported by libata when hardware is available from drive
manufacturers.
Hotplug support
---------------
All SATA is hotplug.
libata does not support hotplug... yet.
Power Management support
------------------------
Over and above the power management specified in the ATA/ATAPI
specification, one can aggressively control the power consumption of
SATA hosts, the SATA bus, and the SATA device.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 20:44 Jeff Garzik
@ 2003-12-03 23:27 ` Andre Tomt
2003-12-03 23:36 ` Jeff Garzik
2003-12-04 8:17 ` Arnaud Launay
` (3 subsequent siblings)
4 siblings, 1 reply; 23+ messages in thread
From: Andre Tomt @ 2003-12-03 23:27 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel, linux-ide, linux-scsi
On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
> Intel ICH5
> ----------
> Summary: No TCQ. Looks like a PATA controller, but with a few added,
> non-standard SATA port controls.
<snip>
> Intel ICH6 ("AHCI")
> -------------------
> Summary: Per-device queues, full SATA control including hotplug
> and PM.
Hi jeff! :)
One question - with "including hotplug", does that mean some set hotplug
standard? Reason I'm asking is, we have a few servers from SuperMicro,
with a ICH5R S-ATA controller that claims it's supporting hotplug, but
hotplug is not in your ICH5-summary.
PS, libata works great on those systems, good work!
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 23:27 ` Andre Tomt
@ 2003-12-03 23:36 ` Jeff Garzik
2003-12-03 23:49 ` Othmar Pasteka
` (3 more replies)
0 siblings, 4 replies; 23+ messages in thread
From: Jeff Garzik @ 2003-12-03 23:36 UTC (permalink / raw)
To: Andre Tomt; +Cc: linux-kernel, linux-ide, linux-scsi
Andre Tomt wrote:
> On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
>
>>Intel ICH5
>>----------
>>Summary: No TCQ. Looks like a PATA controller, but with a few added,
>>non-standard SATA port controls.
> One question - with "including hotplug", does that mean some set hotplug
> standard? Reason I'm asking is, we have a few servers from SuperMicro,
> with a ICH5R S-ATA controller that claims it's supporting hotplug, but
> hotplug is not in your ICH5-summary.
Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
One could argue there is "coldplug" support in that hardware -- disable
the entire interface, including any active devices, then re-enable and
re-scan -- but it's a bit of a hack. If there's enough demand, I could
write some code for that. It would involve something like
# /sbin/sata off
{ plug in or remove a device }
# /sbin/sata on
You really, really, really don't want to actually unplug a SATA drive
while it's active, on ICH5 hardware.
Jeff
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 23:36 ` Jeff Garzik
@ 2003-12-03 23:49 ` Othmar Pasteka
2003-12-03 23:51 ` Jeff Garzik
2003-12-04 0:59 ` Samuel Flory
` (2 subsequent siblings)
3 siblings, 1 reply; 23+ messages in thread
From: Othmar Pasteka @ 2003-12-03 23:49 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-ide
hi,
On Wed, Dec 03, 2003 at 06:36:28PM -0500, Jeff Garzik wrote:
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>
> One could argue there is "coldplug" support in that hardware -- disable
> the entire interface, including any active devices, then re-enable and
> re-scan -- but it's a bit of a hack. If there's enough demand, I could
> write some code for that. It would involve something like
>
> # /sbin/sata off
> { plug in or remove a device }
> # /sbin/sata on
>
> You really, really, really don't want to actually unplug a SATA drive
> while it's active, on ICH5 hardware.
are there chipsets which support SATA hot plugging? afaik sata is
supposed to be hotplugable.
TIA
Othmar Pasteka
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 23:49 ` Othmar Pasteka
@ 2003-12-03 23:51 ` Jeff Garzik
0 siblings, 0 replies; 23+ messages in thread
From: Jeff Garzik @ 2003-12-03 23:51 UTC (permalink / raw)
To: Othmar Pasteka; +Cc: linux-ide
Othmar Pasteka wrote:
> hi,
>
> On Wed, Dec 03, 2003 at 06:36:28PM -0500, Jeff Garzik wrote:
>
>>Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>>
>>One could argue there is "coldplug" support in that hardware -- disable
>>the entire interface, including any active devices, then re-enable and
>>re-scan -- but it's a bit of a hack. If there's enough demand, I could
>>write some code for that. It would involve something like
>>
>> # /sbin/sata off
>> { plug in or remove a device }
>> # /sbin/sata on
>>
>>You really, really, really don't want to actually unplug a SATA drive
>>while it's active, on ICH5 hardware.
>
>
> are there chipsets which support SATA hot plugging? afaik sata is
> supposed to be hotplugable.
_Most_ SATA chipsets support hotplugging. ICH5 is unique in that it
does not.
Jeff
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 23:36 ` Jeff Garzik
2003-12-03 23:49 ` Othmar Pasteka
@ 2003-12-04 0:59 ` Samuel Flory
2003-12-04 1:02 ` Andre Tomt
2003-12-04 13:38 ` Justin Cormack
3 siblings, 0 replies; 23+ messages in thread
From: Samuel Flory @ 2003-12-04 0:59 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Andre Tomt, linux-kernel, linux-ide, linux-scsi
Jeff Garzik wrote:
> Andre Tomt wrote:
>
>> On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
>>
>>> Intel ICH5
>>> ----------
>>> Summary: No TCQ. Looks like a PATA controller, but with a few added,
>>> non-standard SATA port controls.
>
>
>> One question - with "including hotplug", does that mean some set hotplug
>> standard? Reason I'm asking is, we have a few servers from SuperMicro,
>> with a ICH5R S-ATA controller that claims it's supporting hotplug, but
>> hotplug is not in your ICH5-summary.
>
>
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>
> One could argue there is "coldplug" support in that hardware -- disable
> the entire interface, including any active devices, then re-enable and
> re-scan -- but it's a bit of a hack. If there's enough demand, I could
> write some code for that. It would involve something like
>
> # /sbin/sata off
> { plug in or remove a device }
> # /sbin/sata on
>
> You really, really, really don't want to actually unplug a SATA drive
> while it's active, on ICH5 hardware.
>
In theroy the scsi driver allows you kill a drive, and do rescan by
echoing to /proc/scsi.scsi. I know it worked under 2.4 with sca drive
on a hotswap backplane. This was over a year ago. So it may have been
broken.
scsi.c:
* Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
* with "0 1 2 3" replaced by your "Host Channel Id Lun".
/*
* Usage: echo "scsi remove-single-device 0 1 2 3" >/proc/scsi/scsi
* with "0 1 2 3" replaced by your "Host Channel Id Lun".
*
PS- Yes I know says it isn't for hotswap, and that it's prebeta. This
comment dates back to at least 2.2. It's worked for least 4 years.
--
There is no such thing as obsolete hardware.
Merely hardware that other people don't want.
(The Second Rule of Hardware Acquisition)
Sam Flory <sflory@rackable.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 23:36 ` Jeff Garzik
2003-12-03 23:49 ` Othmar Pasteka
2003-12-04 0:59 ` Samuel Flory
@ 2003-12-04 1:02 ` Andre Tomt
2003-12-04 13:38 ` Justin Cormack
3 siblings, 0 replies; 23+ messages in thread
From: Andre Tomt @ 2003-12-04 1:02 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel, linux-ide
On Thu, 2003-12-04 at 00:36, Jeff Garzik wrote:
> Andre Tomt wrote:
> > One question - with "including hotplug", does that mean some set hotplug
> > standard? Reason I'm asking is, we have a few servers from SuperMicro,
> > with a ICH5R S-ATA controller that claims it's supporting hotplug, but
> > hotplug is not in your ICH5-summary.
>
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>
> One could argue there is "coldplug" support in that hardware -- disable
> the entire interface, including any active devices, then re-enable and
> re-scan -- but it's a bit of a hack. If there's enough demand, I could
> write some code for that. It would involve something like
>
> # /sbin/sata off
> { plug in or remove a device }
> # /sbin/sata on
>
> You really, really, really don't want to actually unplug a SATA drive
> while it's active, on ICH5 hardware.
Hmm. There is a backplane involved, that might change things a little.
Quoting the manual:
"A Serial ATA controller is incorporated into the 875P chipset to
provide a two-port Serial ATA subsystem, which is RAID 0 and RAID 1
supported. The Serial ATA drives are hot-swappable units. Note: The
operating system you use must have RAID support to enable the hot-swap
capability and RAID function of the Serial ATA drives."
"The Serial ATA drives plug into a backplane that provides power, drive
ID and bus termination. A RAID controller can be used with the backplane
to provide data security. The operating system you use must have RAID
support to enable the hot-swap capability of the Serial ATA drives."
The wording here is a little confusing, but hot-swap seems to work quite
well with intels windows fakeraid-drivers, at least. One just pushes the
"i'm going to pull you out now"-button on the tray, and pull the drive
tray out. Maybe it triggers an event to the fakeraid-driver, wich then
powers down the bus? black backplane-magic?
Anyways, REAL S-ATA hardware RAID controllers are pretty cheap over here
nowadays..
[trimmed off linux-scsi]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 20:44 Jeff Garzik
2003-12-03 23:27 ` Andre Tomt
@ 2003-12-04 8:17 ` Arnaud Launay
2003-12-04 15:01 ` Jeff Garzik
2003-12-09 19:59 ` J. Ryan Earl
` (2 subsequent siblings)
4 siblings, 1 reply; 23+ messages in thread
From: Arnaud Launay @ 2003-12-04 8:17 UTC (permalink / raw)
To: linux-kernel, linux-ide, linux-scsi
Le Wed, Dec 03, 2003 at 03:44:46PM -0500, Jeff Garzik a écrit:
> Intel ICH5
> ----------
> Summary: No TCQ. Looks like a PATA controller, but with a few
> added, non-standard SATA port controls.
No plan to add the so-called "raid" capabilities of the 82801EB ?
> Silicon Image 3112
Same here, is support for the 3114 underway ? Saw a message from
Andre Hedrick back in July saying he had something seemingly
working, but there's no news since...
(Andre, no rant here, just a question. It's for personal use and
I'm grateful you do that on your freetime).
Arnaud.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 23:36 ` Jeff Garzik
` (2 preceding siblings ...)
2003-12-04 1:02 ` Andre Tomt
@ 2003-12-04 13:38 ` Justin Cormack
2003-12-04 14:54 ` Jeff Garzik
3 siblings, 1 reply; 23+ messages in thread
From: Justin Cormack @ 2003-12-04 13:38 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Andre Tomt, Kernel mailing list, linux-ide, linux-scsi
On Wed, 2003-12-03 at 23:36, Jeff Garzik wrote:
> Andre Tomt wrote:
> > On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
> >
> >>Intel ICH5
> >>----------
> >>Summary: No TCQ. Looks like a PATA controller, but with a few added,
> >>non-standard SATA port controls.
>
> > One question - with "including hotplug", does that mean some set hotplug
> > standard? Reason I'm asking is, we have a few servers from SuperMicro,
> > with a ICH5R S-ATA controller that claims it's supporting hotplug, but
> > hotplug is not in your ICH5-summary.
>
> Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>
> One could argue there is "coldplug" support in that hardware -- disable
> the entire interface, including any active devices, then re-enable and
> re-scan -- but it's a bit of a hack. If there's enough demand, I could
> write some code for that. It would involve something like
>
> # /sbin/sata off
> { plug in or remove a device }
> # /sbin/sata on
>
> You really, really, really don't want to actually unplug a SATA drive
> while it's active, on ICH5 hardware.
How does it work on other hardware?
Justin
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-04 13:38 ` Justin Cormack
@ 2003-12-04 14:54 ` Jeff Garzik
0 siblings, 0 replies; 23+ messages in thread
From: Jeff Garzik @ 2003-12-04 14:54 UTC (permalink / raw)
To: Justin Cormack; +Cc: Andre Tomt, Kernel mailing list, linux-ide, linux-scsi
Justin Cormack wrote:
> On Wed, 2003-12-03 at 23:36, Jeff Garzik wrote:
>
>>Andre Tomt wrote:
>>
>>>On Wed, 2003-12-03 at 21:44, Jeff Garzik wrote:
>>>
>>>
>>>>Intel ICH5
>>>>----------
>>>>Summary: No TCQ. Looks like a PATA controller, but with a few added,
>>>>non-standard SATA port controls.
>>
>>>One question - with "including hotplug", does that mean some set hotplug
>>>standard? Reason I'm asking is, we have a few servers from SuperMicro,
>>>with a ICH5R S-ATA controller that claims it's supporting hotplug, but
>>>hotplug is not in your ICH5-summary.
>>
>>Alas, there is no hotplug support in the ICH5 or ICH5-R SATA hardware.
>>
>>One could argue there is "coldplug" support in that hardware -- disable
>>the entire interface, including any active devices, then re-enable and
>>re-scan -- but it's a bit of a hack. If there's enough demand, I could
>>write some code for that. It would involve something like
>>
>> # /sbin/sata off
>> { plug in or remove a device }
>> # /sbin/sata on
>>
>>You really, really, really don't want to actually unplug a SATA drive
>>while it's active, on ICH5 hardware.
>
>
> How does it work on other hardware?
Just yank the cord :)
Jeff
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-04 8:17 ` Arnaud Launay
@ 2003-12-04 15:01 ` Jeff Garzik
0 siblings, 0 replies; 23+ messages in thread
From: Jeff Garzik @ 2003-12-04 15:01 UTC (permalink / raw)
To: Arnaud Launay; +Cc: linux-kernel, linux-ide, linux-scsi
Arnaud Launay wrote:
> Le Wed, Dec 03, 2003 at 03:44:46PM -0500, Jeff Garzik a écrit:
>
>>Intel ICH5
>>----------
>>Summary: No TCQ. Looks like a PATA controller, but with a few
>>added, non-standard SATA port controls.
>
>
> No plan to add the so-called "raid" capabilities of the 82801EB ?
AFAIK the raid capabilities are entirely in software.
And Intel just wrote and posted this component. Look for "iswraid" in
the linux-kernel archives.
>>Silicon Image 3112
>
>
> Same here, is support for the 3114 underway ? Saw a message from
Underway, but beyond that cannot comment :)
Jeff
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 20:44 Jeff Garzik
2003-12-03 23:27 ` Andre Tomt
2003-12-04 8:17 ` Arnaud Launay
@ 2003-12-09 19:59 ` J. Ryan Earl
2004-01-14 22:18 ` Greg Stark
2004-01-18 13:32 ` Witold Krecicki
4 siblings, 0 replies; 23+ messages in thread
From: J. Ryan Earl @ 2003-12-09 19:59 UTC (permalink / raw)
To: Jeff Garzik, linux-kernel, linux-ide, linux-scsi
On Wednesday 03 December 2003 02:44 pm, Jeff Garzik wrote:
> Queueing support
> 3) "Native Command Queueing" -- both host and drive cooperate in the
> queueing and execution of drive commands. This should provide the
> highest performance and lowest latency of all three options.
Has anyone gotten their hands on any Silicon Image 3124 hardware? It was
announced 3 months ago and supports PCI-X plus it's designed to support
whatever the final SATA 2.0 spec ends up being. Full NCQ support.
http://www.siliconimage.com/products/sii3124.asp
> Hotplug support
> ---------------
> All SATA is hotplug.
>
> libata does not support hotplug... yet.
Hot-Plug seems like one of the most universally supported features. What will
it take to get it working? And what will it take to get it working on 2.4?
Is that a major feature we'll just have to wait for in libata?
I personally need hot-swap on production servers.
-ryan
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 20:44 Jeff Garzik
` (2 preceding siblings ...)
2003-12-09 19:59 ` J. Ryan Earl
@ 2004-01-14 22:18 ` Greg Stark
2004-01-14 22:56 ` Erik Andersen
2004-01-14 23:12 ` Erik Steffl
2004-01-18 13:32 ` Witold Krecicki
4 siblings, 2 replies; 23+ messages in thread
From: Greg Stark @ 2004-01-14 22:18 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-kernel, linux-ide, linux-scsi
Jeff Garzik <jgarzik@pobox.com> writes:
> Intel ICH5
>
> Issue #2: Excessive interrupts are seen in some configurations.
I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
an ICH5 chipset working completely. So far I've been living without the cdrom
or DVD players. I see lots of other posts on linux-kernel about the same
problems:
Whenever I try to access the cdrom my system becomes unusable. Due to high
interrupts, typically over 150k/s. I thought libata would help, but I don't
understand how to use the PATA drive and the cdrom drives while I'm using it.
The situation is that I have two SATA drives, a PATA drive and two cdrom
drives (actually one CD burner and one DVD drive). They are
Primary Master: PATA Drive
Secondary Master: CD Burner
Secondary Slave: DVD-Rom
SATA-1: SATA Drive
SATA-2: SATA Drive
I've tried 2.4.23pre4 (no libata), 2.6.1 (IDE drivers), and 2.6.1 (with scsi
libata drivers) with the following results:
2.4.23pre4: as soon as the cdrom is touched I see bursts of 150k interrupts
per second and the system becomes unresponsive momentarily every few
seconds.
2.6.1 with regular IDE drivers: same as above except the system feels
responsive except for disk i/o. I see printks of "Disabling interrupt #18"
and all disk i/o freezes for a few seconds.
2.6.1 with scsi ata_piix driver: the SATA drives show up and work fine but the
PATA drive and the cdroms doesn't show up at all. This is true even when I
compile with the CONFIG_IDE, CONFIG_BLK_DEV_IDE, and CONFIG_BLK_DEV_IDECD
enabled.
--
greg
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-14 22:18 ` Greg Stark
@ 2004-01-14 22:56 ` Erik Andersen
2004-01-14 23:31 ` James Courtier-Dutton
2004-01-14 23:12 ` Erik Steffl
1 sibling, 1 reply; 23+ messages in thread
From: Erik Andersen @ 2004-01-14 22:56 UTC (permalink / raw)
To: Greg Stark; +Cc: Jeff Garzik, linux-kernel, linux-ide, linux-scsi
On Wed Jan 14, 2004 at 05:18:34PM -0500, Greg Stark wrote:
>
> Jeff Garzik <jgarzik@pobox.com> writes:
>
> > Intel ICH5
> >
> > Issue #2: Excessive interrupts are seen in some configurations.
>
> I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
> an ICH5 chipset working completely. So far I've been living without the cdrom
> or DVD players. I see lots of other posts on linux-kernel about the same
> problems:
I have the same deal. My offer to send Jeff a P4P800 motherboard
to test with is still open....
-Erik
--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-14 22:18 ` Greg Stark
2004-01-14 22:56 ` Erik Andersen
@ 2004-01-14 23:12 ` Erik Steffl
1 sibling, 0 replies; 23+ messages in thread
From: Erik Steffl @ 2004-01-14 23:12 UTC (permalink / raw)
To: Greg Stark; +Cc: Jeff Garzik, linux-kernel, linux-ide, linux-scsi
Greg Stark wrote:
> Jeff Garzik <jgarzik@pobox.com> writes:
>
>
>>Intel ICH5
>>
>>Issue #2: Excessive interrupts are seen in some configurations.
>
>
> I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
> an ICH5 chipset working completely. So far I've been living without the cdrom
> or DVD players. I see lots of other posts on linux-kernel about the same
> problems:
>
> Whenever I try to access the cdrom my system becomes unusable. Due to high
> interrupts, typically over 150k/s. I thought libata would help, but I don't
> understand how to use the PATA drive and the cdrom drives while I'm using it.
>
> The situation is that I have two SATA drives, a PATA drive and two cdrom
> drives (actually one CD burner and one DVD drive). They are
>
> Primary Master: PATA Drive
> Secondary Master: CD Burner
> Secondary Slave: DVD-Rom
> SATA-1: SATA Drive
> SATA-2: SATA Drive
>
> I've tried 2.4.23pre4 (no libata), 2.6.1 (IDE drivers), and 2.6.1 (with scsi
> libata drivers) with the following results:
>
> 2.4.23pre4: as soon as the cdrom is touched I see bursts of 150k interrupts
> per second and the system becomes unresponsive momentarily every few
> seconds.
>
> 2.6.1 with regular IDE drivers: same as above except the system feels
> responsive except for disk i/o. I see printks of "Disabling interrupt #18"
> and all disk i/o freezes for a few seconds.
>
> 2.6.1 with scsi ata_piix driver: the SATA drives show up and work fine but the
> PATA drive and the cdroms doesn't show up at all. This is true even when I
> compile with the CONFIG_IDE, CONFIG_BLK_DEV_IDE, and CONFIG_BLK_DEV_IDECD
> enabled.
I have intel D865PERL, three IDE HDs, one CD burner, one SATA disk,
using scsi ata, kernel 2.4.21-ac4 with libata5 patches (libata patches
needed beacause SATA driver is over 133GB), seems to be working fine, I
am not using CD burner very often but I didn't see any instability when
I used it (read or burn CDs).
When I use cdparanoia to rip audio CDs the system is quite slow but
that was always the case (even with different MB, no SATA, different
kernels etc.)
Using SATA disk as IDE disk caused the system to freeze during boot
(right after the HDs were detected)
erik
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-14 22:56 ` Erik Andersen
@ 2004-01-14 23:31 ` James Courtier-Dutton
2004-01-15 0:41 ` Jeff Garzik
0 siblings, 1 reply; 23+ messages in thread
From: James Courtier-Dutton @ 2004-01-14 23:31 UTC (permalink / raw)
To: andersen; +Cc: Greg Stark, Jeff Garzik, linux-kernel, linux-ide, linux-scsi
Erik Andersen wrote:
> On Wed Jan 14, 2004 at 05:18:34PM -0500, Greg Stark wrote:
>
>>Jeff Garzik <jgarzik@pobox.com> writes:
>>
>>
>>>Intel ICH5
>>>
>>>Issue #2: Excessive interrupts are seen in some configurations.
>>
>>I guess I'm seeing this problem. I'm trying to get my P4P800 motherboard with
>>an ICH5 chipset working completely. So far I've been living without the cdrom
>>or DVD players. I see lots of other posts on linux-kernel about the same
>>problems:
>
>
> I have the same deal. My offer to send Jeff a P4P800 motherboard
> to test with is still open....
>
> -Erik
>
> --
> Erik B. Andersen http://codepoet-consulting.com/
I have a ABIT IC7-G motherboard with the ICH5 chipset.
No reported problems with it. I would be happy to do some tests, just in
case I have not actually noticed the problems.
hda=DVD-ROM
hdb=DVD writer
hdc=SATA Seagate Hard Disc 160 Gig.
hdd=Empty.
I do sometimes have problems during BIOS startup, with it not detecting
the SATA hard disc, but pressing the reset button a few times fixes that.
Jan 14 01:01:17 new kernel: Uniform Multi-Platform E-IDE driver
revision: 7.00alpha2
Jan 14 01:01:17 new kernel: ide: Assuming 33MHz system bus speed for PIO
modes; override with idebus=xx
Jan 14 01:01:17 new kernel: ICH5-SATA: IDE controller at PCI slot
0000:00:1f.2
Jan 14 01:01:17 new kernel: ICH5-SATA: chipset revision 2
Jan 14 01:01:17 new kernel: ICH5-SATA: not 100%% native mode: will probe
irqs later
Jan 14 01:01:17 new kernel: ide0: BM-DMA at 0xf000-0xf007, BIOS
settings: hda:DMA, hdb:DMA
Jan 14 01:01:17 new kernel: ide1: BM-DMA at 0xf008-0xf00f, BIOS
settings: hdc:DMA, hdd:pio
Jan 14 01:01:17 new kernel: hda: ATAPI DVD-ROM 16XMax, ATAPI CD/DVD-ROM
drive
Jan 14 01:01:17 new kernel: hdb: OPTORITEDVD RW DD0203, ATAPI CD/DVD-ROM
drive
Jan 14 01:01:17 new kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Jan 14 01:01:17 new kernel: hdc: ST3160023AS, ATA DISK drive
Jan 14 01:01:17 new kernel: ide1 at 0x170-0x177,0x376 on irq 15
Jan 14 01:01:17 new kernel: hdc: max request size: 1024KiB
Jan 14 01:01:17 new kernel: hdc: 312581808 sectors (160041 MB) w/8192KiB
Cache, CHS=19457/255/63, UDMA(33)
Jan 14 01:01:17 new kernel: /dev/ide/host0/bus1/target0/lun0: p1 p2 <
p5 p6 p7 >
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-14 23:31 ` James Courtier-Dutton
@ 2004-01-15 0:41 ` Jeff Garzik
2004-01-15 2:38 ` Erik Andersen
2004-01-18 12:34 ` Martin Schlemmer
0 siblings, 2 replies; 23+ messages in thread
From: Jeff Garzik @ 2004-01-15 0:41 UTC (permalink / raw)
To: James Courtier-Dutton
Cc: andersen, Greg Stark, linux-kernel, linux-ide, linux-scsi,
mplayer
[-- Attachment #1: Type: text/plain, Size: 407 bytes --]
I'm pretty sure the "excessive interrupts" issue was successfully
tracked down by Jon Burgess (thanks!). He found this post describing an
ICH5 hardware issue,
http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
and he also submitted the attached patch.
I've been meaning to rewrite his patch to isolate it more to ata_piix,
but in the meantime maybe folks could test this?
Jeff
[-- Attachment #2: libata-spurious2.diff --]
[-- Type: text/plain, Size: 1322 bytes --]
--- libata-core.c-orig 2003-12-07 01:54:19.000000000 +0000
+++ libata-core.c 2003-12-07 16:25:11.961806872 +0000
@@ -2386,6 +2386,37 @@
}
/**
+ * ata_chk_spurious_int - Check for spurious interrupts
+ * @ap: port to which command is being issued
+ *
+ * Examines the DMA status registers and clears
+ * unexpected interrupts
+ *
+ * LOCKING:
+ */
+static inline void ata_chk_spurious_int(struct ata_port *ap) {
+ int host_stat;
+
+ if (ap->flags & ATA_FLAG_MMIO) {
+ void *mmio = (void *) ap->ioaddr.bmdma_addr;
+ host_stat = readb(mmio + ATA_DMA_STATUS);
+ } else
+ host_stat = inb(ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
+
+ if ((host_stat & (ATA_DMA_INTR | ATA_DMA_ERR | ATA_DMA_ACTIVE)) == ATA_DMA_INTR) {
+ if (ap->flags & ATA_FLAG_MMIO) {
+ void *mmio = (void *) ap->ioaddr.bmdma_addr;
+ writeb(host_stat & ~ATA_DMA_ERR, mmio + ATA_DMA_STATUS);
+ } else
+ outb(host_stat & ~ATA_DMA_ERR, ap->ioaddr.bmdma_addr + ATA_DMA_STATUS);
+
+ DPRINTK("ata%u: Caught spurious interrupt, status 0x%X\n", ap->id, host_stat);
+ udelay(1);
+ }
+}
+
+
+/**
* ata_interrupt -
* @irq:
* @dev_instance:
@@ -2417,6 +2448,7 @@
qc = ata_qc_from_tag(ap, ap->active_tag);
if (qc && ((qc->flags & ATA_QCFLAG_POLL) == 0))
handled += ata_host_intr(ap, qc);
+ ata_chk_spurious_int(ap);
}
}
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-15 0:41 ` Jeff Garzik
@ 2004-01-15 2:38 ` Erik Andersen
2004-01-18 12:34 ` Martin Schlemmer
1 sibling, 0 replies; 23+ messages in thread
From: Erik Andersen @ 2004-01-15 2:38 UTC (permalink / raw)
To: Jeff Garzik
Cc: James Courtier-Dutton, Greg Stark, linux-kernel, linux-ide,
linux-scsi, mplayer
On Wed Jan 14, 2004 at 07:41:56PM -0500, Jeff Garzik wrote:
>
> I'm pretty sure the "excessive interrupts" issue was successfully
> tracked down by Jon Burgess (thanks!). He found this post describing an
> ICH5 hardware issue,
> http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
>
> and he also submitted the attached patch.
>
> I've been meaning to rewrite his patch to isolate it more to ata_piix,
> but in the meantime maybe folks could test this?
Tried it on top of 2.4.25-pre4-libata1. I set the BIOS on my
Asus P4P800 to Enhanced mode, and the kernel locked solid during
boot while trying to clean /tmp.... Setting the BIOS back to
Compatible mode allows my system to boot.
-Erik
--
Erik B. Andersen http://codepoet-consulting.com/
--This message was written using 73% post-consumer electrons--
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-15 0:41 ` Jeff Garzik
2004-01-15 2:38 ` Erik Andersen
@ 2004-01-18 12:34 ` Martin Schlemmer
1 sibling, 0 replies; 23+ messages in thread
From: Martin Schlemmer @ 2004-01-18 12:34 UTC (permalink / raw)
To: Jeff Garzik
Cc: James Courtier-Dutton, andersen, Greg Stark,
Linux Kernel Mailing Lists, linux-ide, linux-scsi, mplayer
[-- Attachment #1: Type: text/plain, Size: 2063 bytes --]
On Thu, 2004-01-15 at 02:41, Jeff Garzik wrote:
> I'm pretty sure the "excessive interrupts" issue was successfully
> tracked down by Jon Burgess (thanks!). He found this post describing an
> ICH5 hardware issue,
> http://www.mail-archive.com/freebsd-stable@freebsd.org/msg58421.html
>
> and he also submitted the attached patch.
>
> I've been meaning to rewrite his patch to isolate it more to ata_piix,
> but in the meantime maybe folks could test this?
>
I have an Asus P4C800-E Deluxe, with two drivers on the ICH5 sata
controllers. It is a 3Ghz cpu using HT.
I use the normal PIIX ide drivers for the pata channels, and libata for
the sata ones. I also use the vector based interrupts. Kernel is
2.6.1-bk4.
Anyhow, I do not think the interrupt count is _that_ high, as it shares
with usb and network and I cannot complain of problems with cdrom, etc,
but I decided to try the patch anyhow. It have some interesting results
though. First, network stops responding after a few minutes of uptime
(especially easy to reproduce if you have heavy network traffic), then
for some reason you cannot start a new program/login/etc, but those
running seems Ok, and lastly X becomes totally unresponsive (although
alt-sysrq-b still do work).
--
# cat /proc/interrupts
CPU0 CPU1
0: 29703539 29690292 IO-APIC-edge timer
2: 0 0 XT-PIC cascade
8: 2 0 IO-APIC-edge rtc
9: 0 0 IO-APIC-level acpi
14: 564 210 IO-APIC-edge ide0
15: 1 0 IO-APIC-edge ide1
169: 1049180 1055746 IO-APIC-level libata, uhci_hcd, eth0
177: 39519 37904 IO-APIC-level Intel ICH5
185: 2521873 2494269 IO-APIC-level uhci_hcd, uhci_hcd, nvidia
193: 0 0 IO-APIC-level uhci_hcd
201: 0 0 IO-APIC-level ehci_hcd
NMI: 0 0
LOC: 59387583 59387287
ERR: 0
MIS: 0
--
--
Martin Schlemmer
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2003-12-03 20:44 Jeff Garzik
` (3 preceding siblings ...)
2004-01-14 22:18 ` Greg Stark
@ 2004-01-18 13:32 ` Witold Krecicki
2004-01-18 18:00 ` Jeff Garzik
4 siblings, 1 reply; 23+ messages in thread
From: Witold Krecicki @ 2004-01-18 13:32 UTC (permalink / raw)
To: linux-kernel, linux-ide, linux-scsi
Dnia Wednesday 03 of December 2003 21:44, Jeff Garzik napisał:
> Editor's preface: This is clearly a first draft, only covering the
> basics. In order for this document to be effective, I request that
> users and developers send me (or post) their SATA driver questions and
> issues. I will do my best to address them here.
>
>
> Serial ATA (SATA) for Linux
> status report
> Dec 3, 2003
What about SMART capabilities? with sii3112 I had it, but with libata I cannot
get any informations :/
--
Witold Kręcicki (adasi) adasi [at] culm.net
GPG key: 7AE20871
http://www.culm.net
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-18 13:32 ` Witold Krecicki
@ 2004-01-18 18:00 ` Jeff Garzik
2004-01-18 20:33 ` Craig Bradney
0 siblings, 1 reply; 23+ messages in thread
From: Jeff Garzik @ 2004-01-18 18:00 UTC (permalink / raw)
To: Witold Krecicki; +Cc: linux-kernel, linux-ide, linux-scsi
Witold Krecicki wrote:
> Dnia Wednesday 03 of December 2003 21:44, Jeff Garzik napisał:
>
>>Editor's preface: This is clearly a first draft, only covering the
>>basics. In order for this document to be effective, I request that
>>users and developers send me (or post) their SATA driver questions and
>>issues. I will do my best to address them here.
>>
>>
>>Serial ATA (SATA) for Linux
>>status report
>>Dec 3, 2003
>
> What about SMART capabilities? with sii3112 I had it, but with libata I cannot
> get any informations :/
Currently do not support random userland programs throwing random ATA
commands at us... so no SMART support at present :) It's coming, though.
Jeff
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Serial ATA (SATA) for Linux status report
2004-01-18 18:00 ` Jeff Garzik
@ 2004-01-18 20:33 ` Craig Bradney
0 siblings, 0 replies; 23+ messages in thread
From: Craig Bradney @ 2004-01-18 20:33 UTC (permalink / raw)
To: Jeff Garzik; +Cc: Witold Krecicki, linux-kernel, linux-ide, linux-scsi
[-- Attachment #1: Type: text/plain, Size: 1163 bytes --]
On Sun, 2004-01-18 at 19:00, Jeff Garzik wrote:
> Witold Krecicki wrote:
> > Dnia Wednesday 03 of December 2003 21:44, Jeff Garzik napisał:
> >
> >>Editor's preface: This is clearly a first draft, only covering the
> >>basics. In order for this document to be effective, I request that
> >>users and developers send me (or post) their SATA driver questions and
> >>issues. I will do my best to address them here.
> >>
> >>
> >>Serial ATA (SATA) for Linux
> >>status report
> >>Dec 3, 2003
> >
> > What about SMART capabilities? with sii3112 I had it, but with libata I cannot
> > get any informations :/
>
>
> Currently do not support random userland programs throwing random ATA
> commands at us... so no SMART support at present :) It's coming, though.
On the note of SATA interfaced drives, is there a way to power them
down?
I have recently attached my spare PATA drive with a converter and use it
just for backups (mount, rsync, umount). I have these configured through
SCSI (/dev/sda) with the 3112 2.6.1 support. hdparm comlains the drive
is SCSI... is there a similar command to power it down?
thanks
Craig
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Serial ATA (SATA) for Linux status report
@ 2004-08-24 19:49 Jeff Garzik
0 siblings, 0 replies; 23+ messages in thread
From: Jeff Garzik @ 2004-08-24 19:49 UTC (permalink / raw)
To: linux-ide@vger.kernel.org; +Cc: Linux Kernel
A new SATA status report is available.
Updated today, newly converted to HTML, and permanently archived at
http://linux.yyz.us/sata/sata-status.html
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2004-08-24 19:49 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-24 19:49 Serial ATA (SATA) for Linux status report Jeff Garzik
-- strict thread matches above, loose matches on Subject: below --
2003-12-03 20:44 Jeff Garzik
2003-12-03 23:27 ` Andre Tomt
2003-12-03 23:36 ` Jeff Garzik
2003-12-03 23:49 ` Othmar Pasteka
2003-12-03 23:51 ` Jeff Garzik
2003-12-04 0:59 ` Samuel Flory
2003-12-04 1:02 ` Andre Tomt
2003-12-04 13:38 ` Justin Cormack
2003-12-04 14:54 ` Jeff Garzik
2003-12-04 8:17 ` Arnaud Launay
2003-12-04 15:01 ` Jeff Garzik
2003-12-09 19:59 ` J. Ryan Earl
2004-01-14 22:18 ` Greg Stark
2004-01-14 22:56 ` Erik Andersen
2004-01-14 23:31 ` James Courtier-Dutton
2004-01-15 0:41 ` Jeff Garzik
2004-01-15 2:38 ` Erik Andersen
2004-01-18 12:34 ` Martin Schlemmer
2004-01-14 23:12 ` Erik Steffl
2004-01-18 13:32 ` Witold Krecicki
2004-01-18 18:00 ` Jeff Garzik
2004-01-18 20:33 ` Craig Bradney
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).