* Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
[not found] <6ca8fe89c868f95831328d31c27f9cdb@localhost>
@ 2008-10-27 15:45 ` Guntsche Michael
2008-11-10 6:52 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Guntsche Michael @ 2008-10-27 15:45 UTC (permalink / raw)
To: linux-ide
Hello list,
Forgot to CC: linux-ide when writing this.
Please put me on CC when replying since I am not subscribed to the list.
Kind regards,
Michael
Begin forwarded message:
> From: Michael Guntsche <mike@it-loops.com>
> Date: October 27, 2008 11:21:58 GMT+01:00
> To: tj@kernel.org
> Subject: Re: [PATCH #upstream-fixes 1/4] libata: fix device
> iteration bugs
>
> Hello,
>
> I just browsed through the linux-ide archives and found this patch.
> I am
> wondering if this also helps with a problem I am facing on one of my
> router
> boxes since a few kernel versions.
>
> I have an ancient router box with a "Intel Corporation 82371SB
> PIIX3 IDE
> [Natoma/Triton II]" controller. I switched to the new libata code a
> long
> time ago using the ata_piix driver. I have one harddisk and a CD-
> burner i
> not use very often. The Harddisk is on Primary master the burner on
> secondary master. with at least the last two kernel versions, I see
> this
> during bootup
>
> ata_piix 0000:00:07.1: version 2.12
> scsi0 : ata_piix
> scsi1 : ata_piix
> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
> ata1.00: 66055248 sectors, multi 16: LBA
> ata1.00: configured for MWDMA2
> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
>
> As you can see for some reason ata2.01 (secondary slave??) gets probed
> during startup although there is nothing attached to it. It is tried
> three
> times with a 5 seconds pause in between. I did not notice this in
> the past
> since a do not reboot that machine very often.
> For testing purposes I just recently did this a few times in a row and
> noticed this. It is not a biggie since harddisk and burner are
> working but
> nevertheless it wasn't happening with older kernel versions so I
> though you
> should know.
>
> Kind regards,
> Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-10-27 15:45 ` Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs Guntsche Michael
@ 2008-11-10 6:52 ` Tejun Heo
2008-11-10 10:10 ` Michael Guntsche
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-10 6:52 UTC (permalink / raw)
To: Guntsche Michael; +Cc: linux-ide
[-- Attachment #1: Type: text/plain, Size: 1886 bytes --]
Hello,
Guntsche Michael wrote:
>> I just browsed through the linux-ide archives and found this patch. I am
>> wondering if this also helps with a problem I am facing on one of my
>> router
>> boxes since a few kernel versions.
>>
>> I have an ancient router box with a "Intel Corporation 82371SB PIIX3 IDE
>> [Natoma/Triton II]" controller. I switched to the new libata code a long
>> time ago using the ata_piix driver. I have one harddisk and a CD-burner i
>> not use very often. The Harddisk is on Primary master the burner on
>> secondary master. with at least the last two kernel versions, I see this
>> during bootup
>>
>> ata_piix 0000:00:07.1: version 2.12
>> scsi0 : ata_piix
>> scsi1 : ata_piix
>> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
>> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
>> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
>> ata1.00: 66055248 sectors, multi 16: LBA
>> ata1.00: configured for MWDMA2
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
>>
>> As you can see for some reason ata2.01 (secondary slave??) gets
>> probed during startup although there is nothing attached to it. It
>> is tried three times with a 5 seconds pause in between. I did not
>> notice this in the past since a do not reboot that machine very
>> often. For testing purposes I just recently did this a few times
>> in a row and noticed this. It is not a biggie since harddisk and
>> burner are working but nevertheless it wasn't happening with older
>> kernel versions so I though you should know.
Looks like our phantom device detection logic is somehow broken. Can
you please apply the attached patch and report boot log?
Thanks.
--
tejun
[-- Attachment #2: phantom-debug.patch --]
[-- Type: text/x-patch, Size: 488 bytes --]
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 4b47394..709bbb4 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1226,6 +1226,8 @@ fsm_start:
} else {
/* ATA PIO protocol */
if (unlikely((status & ATA_DRQ) == 0)) {
+ ata_dev_printk(qc->dev, KERN_INFO,
+ "XXX status=0x%x\n", status);
/* handle BSY=0, DRQ=0 as error */
if (likely(status & (ATA_ERR | ATA_DF)))
/* device stops HSM for abort/error */
^ permalink raw reply related [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-10 6:52 ` Tejun Heo
@ 2008-11-10 10:10 ` Michael Guntsche
2008-11-10 10:21 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-10 10:10 UTC (permalink / raw)
To: Tejun Heo; +Cc: linux-ide
On Mon, 10 Nov 2008 15:52:02 +0900, Tejun Heo <tj@kernel.org> wrote:
> Hello,
> Looks like our phantom device detection logic is somehow broken. Can
> you please apply the attached patch and report boot log?
Here is the output after adding the debug line. Hopefully this helps.
ata_piix 0000:00:07.1: version 2.12
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
ata1.00: 66055248 sectors, multi 16: LBA
ata1.00: configured for MWDMA2
ata2.01: XXX status=0x1
ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
ata2.01: XXX status=0x1
ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
ata2.01: XXX status=0x1
ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
ata2.00: configured for MWDMA2
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-10 10:10 ` Michael Guntsche
@ 2008-11-10 10:21 ` Tejun Heo
2008-11-10 15:07 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-10 10:21 UTC (permalink / raw)
To: Michael Guntsche; +Cc: linux-ide, Alan Cox, Jeff Garzik, Mark Lord
(cc'ing Alan, Jeff and Mark).
Hello, guys.
Michael Guntsche wrote:
> On Mon, 10 Nov 2008 15:52:02 +0900, Tejun Heo <tj@kernel.org> wrote:
>> Hello,
>
>> Looks like our phantom device detection logic is somehow broken. Can
>> you please apply the attached patch and report boot log?
>
> Here is the output after adding the debug line. Hopefully this helps.
>
> ata_piix 0000:00:07.1: version 2.12
> scsi0 : ata_piix
> scsi1 : ata_piix
> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
> ata1.00: 66055248 sectors, multi 16: LBA
> ata1.00: configured for MWDMA2
> ata2.01: XXX status=0x1
> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
> ata2.01: XXX status=0x1
> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
> ata2.01: XXX status=0x1
> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
> ata2.00: configured for MWDMA2
On Michael's real old ata_piix, somehow the ERR bit is set on phantom
device defeating our phantom device detection logic. We can relax
phantom device condition but that increases the risk of misdetection on
actual IDENTIFY errors. Any ideas how we can nicely work around this one?
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-10 10:21 ` Tejun Heo
@ 2008-11-10 15:07 ` Mark Lord
2008-11-11 2:45 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-10 15:07 UTC (permalink / raw)
To: Tejun Heo; +Cc: Michael Guntsche, linux-ide, Alan Cox, Jeff Garzik
Tejun Heo wrote:
> (cc'ing Alan, Jeff and Mark).
>
> Hello, guys.
>
> Michael Guntsche wrote:
>> On Mon, 10 Nov 2008 15:52:02 +0900, Tejun Heo <tj@kernel.org> wrote:
>>> Hello,
>>> Looks like our phantom device detection logic is somehow broken. Can
>>> you please apply the attached patch and report boot log?
>> Here is the output after adding the debug line. Hopefully this helps.
>>
>> ata_piix 0000:00:07.1: version 2.12
>> scsi0 : ata_piix
>> scsi1 : ata_piix
>> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
>> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
>> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
>> ata1.00: 66055248 sectors, multi 16: LBA
>> ata1.00: configured for MWDMA2
>> ata2.01: XXX status=0x1
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.01: XXX status=0x1
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.01: XXX status=0x1
>> ata2.01: failed to IDENTIFY (I/O error, err_mask=0x1)
>> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
>> ata2.00: configured for MWDMA2
>
> On Michael's real old ata_piix, somehow the ERR bit is set on phantom
> device defeating our phantom device detection logic. We can relax
> phantom device condition but that increases the risk of misdetection on
> actual IDENTIFY errors. Any ideas how we can nicely work around this one?
..
Mmm.. I'm way out of the loop on this now,
so please pardon me suggesting things known not to work, but..
1. Pay attention to ATA status register on this chipset?
Eg. if it has BUSY, or reads 0x7f, then don't IDENTIFY?
2. Check for device signature before trying IDENTIFY?
3. Try a r/w test on the data register first, to see if there's
really hardware attached to it?
Cheers
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-10 15:07 ` Mark Lord
@ 2008-11-11 2:45 ` Tejun Heo
2008-11-11 4:01 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-11 2:45 UTC (permalink / raw)
To: Mark Lord; +Cc: Michael Guntsche, linux-ide, Alan Cox, Jeff Garzik
Mark Lord wrote:
>> On Michael's real old ata_piix, somehow the ERR bit is set on phantom
>> device defeating our phantom device detection logic. We can relax
>> phantom device condition but that increases the risk of misdetection on
>> actual IDENTIFY errors. Any ideas how we can nicely work around this
>> one?
> ..
>
> Mmm.. I'm way out of the loop on this now,
> so please pardon me suggesting things known not to work, but..
>
> 1. Pay attention to ATA status register on this chipset?
> Eg. if it has BUSY, or reads 0x7f, then don't IDENTIFY?
> 2. Check for device signature before trying IDENTIFY?
> 3. Try a r/w test on the data register first, to see if there's
> really hardware attached to it?
We already do 1, 2 and 3. The problem with phantom device is that the
existent device on the channel replies to acesses to the other
non-existent device and the NODEV_HINT detection is the last line of
defense which successfully evades all the other mechanisms. And now
we have this controller/device combination which successfully tricks
it too. :-(
--
tejun
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 2:45 ` Tejun Heo
@ 2008-11-11 4:01 ` Mark Lord
2008-11-11 9:19 ` Sergei Shtylyov
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-11 4:01 UTC (permalink / raw)
To: Tejun Heo; +Cc: Michael Guntsche, linux-ide, Alan Cox, Jeff Garzik
Tejun Heo wrote:
> Mark Lord wrote:
>>> On Michael's real old ata_piix, somehow the ERR bit is set on phantom
>>> device defeating our phantom device detection logic. We can relax
>>> phantom device condition but that increases the risk of misdetection on
>>> actual IDENTIFY errors. Any ideas how we can nicely work around this
>>> one?
>> ..
>>
>> Mmm.. I'm way out of the loop on this now,
>> so please pardon me suggesting things known not to work, but..
>>
>> 1. Pay attention to ATA status register on this chipset?
>> Eg. if it has BUSY, or reads 0x7f, then don't IDENTIFY?
>> 2. Check for device signature before trying IDENTIFY?
>> 3. Try a r/w test on the data register first, to see if there's
>> really hardware attached to it?
>
> We already do 1, 2 and 3. The problem with phantom device is that the
> existent device on the channel replies to acesses to the other
> non-existent device and the NODEV_HINT detection is the last line of
> defense which successfully evades all the other mechanisms. And now
> we have this controller/device combination which successfully tricks
> it too. :-(
..
Mmm.. but he's using "really old ata_piix" hardware, as in what Intel
once called the "Triton" (or Triton II) chipset. Which I wrote support
for in drivers/ide, way back when.. and we never had this problem.
Something weird here.
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 4:01 ` Mark Lord
@ 2008-11-11 9:19 ` Sergei Shtylyov
2008-11-11 13:34 ` Michael Guntsche
2008-11-11 14:27 ` Fwd: " Mark Lord
0 siblings, 2 replies; 39+ messages in thread
From: Sergei Shtylyov @ 2008-11-11 9:19 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Michael Guntsche, linux-ide, Alan Cox, Jeff Garzik
Hello.
Mark Lord wrote:
>>>> On Michael's real old ata_piix, somehow the ERR bit is set on phantom
>>>> device defeating our phantom device detection logic. We can relax
>>>> phantom device condition but that increases the risk of
>>>> misdetection on
>>>> actual IDENTIFY errors. Any ideas how we can nicely work around this
>>>> one?
>>> ..
>>>
>>> Mmm.. I'm way out of the loop on this now,
>>> so please pardon me suggesting things known not to work, but..
>>>
>>> 1. Pay attention to ATA status register on this chipset?
>>> Eg. if it has BUSY, or reads 0x7f, then don't IDENTIFY?
>>> 2. Check for device signature before trying IDENTIFY?
>>> 3. Try a r/w test on the data register first, to see if there's
>>> really hardware attached to it?
>>
>> We already do 1, 2 and 3. The problem with phantom device is that the
>> existent device on the channel replies to acesses to the other
>> non-existent device and the NODEV_HINT detection is the last line of
>> defense which successfully evades all the other mechanisms. And now
>> we have this controller/device combination which successfully tricks
>> it too. :-(
> ..
>
> Mmm.. but he's using "really old ata_piix" hardware, as in what Intel
> once called the "Triton" (or Triton II) chipset.
The "original Triton" IDE is supported by pata_oldpiix.
> Which I wrote support
> for in drivers/ide, way back when.. and we never had this problem.
The support for the "original Triton" is drivers/ide/ is still broken
after all these years. The driver assumes that the slave IDE timing
register always present -- which the origina 82371FB didn't have. :-(
WBR, Sergei
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 9:19 ` Sergei Shtylyov
@ 2008-11-11 13:34 ` Michael Guntsche
2008-11-11 14:29 ` Mark Lord
2008-11-11 14:27 ` Fwd: " Mark Lord
1 sibling, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-11 13:34 UTC (permalink / raw)
To: Sergei Shtylyov; +Cc: Mark Lord, Tejun Heo, linux-ide, Alan Cox, Jeff Garzik
On Tue, 11 Nov 2008 12:19:24 +0300, Sergei Shtylyov
<sshtylyov@ru.mvista.com> wrote:
> Hello.
>
>> Mmm.. but he's using "really old ata_piix" hardware, as in what Intel
>> once called the "Triton" (or Triton II) chipset.
>
> The "original Triton" IDE is supported by pata_oldpiix.
>
>> Which I wrote support
>> for in drivers/ide, way back when.. and we never had this problem.
>
> The support for the "original Triton" is drivers/ide/ is still broken
> after all these years. The driver assumes that the slave IDE timing
> register always present -- which the origina 82371FB didn't have. :-(
00:07.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton
II]
So apparently I have an "SB" Triton II. Looking at the description of the
drivers I thought that ata_piix would be the correct driver for it.
... support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series host
controllers.
Also looking the the comments in ata_piix it looks like my chipset already
supports independent timing and therefore ata_piix is the correct driver to
use.
Please correct me if I am wrong or misunderstood your remarks.
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 9:19 ` Sergei Shtylyov
2008-11-11 13:34 ` Michael Guntsche
@ 2008-11-11 14:27 ` Mark Lord
2008-11-11 14:34 ` Alan Cox
1 sibling, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-11 14:27 UTC (permalink / raw)
To: Sergei Shtylyov
Cc: Tejun Heo, Michael Guntsche, linux-ide, Alan Cox, Jeff Garzik
Sergei Shtylyov wrote:
> Hello.
>
> Mark Lord wrote:
..
>> Mmm.. but he's using "really old ata_piix" hardware, as in what Intel
>> once called the "Triton" (or Triton II) chipset.
>
> The "original Triton" IDE is supported by pata_oldpiix.
>
>> Which I wrote support
>> for in drivers/ide, way back when.. and we never had this problem.
>
> The support for the "original Triton" is drivers/ide/ is still broken
> after all these years. The driver assumes that the slave IDE timing
> register always present -- which the origina 82371FB didn't have. :-(
..
Hey, don't complain to me -- I didn't break that!
Heck, the Linux support for Triton DMA made us the first
widely available O/S with UDMA support for that (or any) chipset!
Predating even Redmond by a good six months or more!
But back then, we still relied upon the BIOS to manage timings
(since it had to set them up to boot anyway). The b0rked timing
in drivers/ide came from a subsequent "maintainer". :)
Cheers
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 13:34 ` Michael Guntsche
@ 2008-11-11 14:29 ` Mark Lord
2008-11-11 15:03 ` Guntsche Michael
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-11 14:29 UTC (permalink / raw)
To: Michael Guntsche
Cc: Sergei Shtylyov, Tejun Heo, linux-ide, Alan Cox, Jeff Garzik
Michael Guntsche wrote:
>
> So apparently I have an "SB" Triton II. Looking at the description of the
> drivers I thought that ata_piix would be the correct driver for it.
>
> ... support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series host
> controllers.
>
> Also looking the the comments in ata_piix it looks like my chipset already
> supports independent timing and therefore ata_piix is the correct driver to
> use.
..
Yeah, that's the right one. But if you are technically apt,
then perhaps you could try a brief experiment for us:
Use drivers/ide instead, and see what it reports in the boot log.
One simple way to do this, is to boot a Knoppix CD, say v5.01 or so
(but not the newest version, which probably uses libata instead).
Then just grab the boot log with dmesg, and post it here.
Thanks
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 14:27 ` Fwd: " Mark Lord
@ 2008-11-11 14:34 ` Alan Cox
2008-11-12 1:18 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Alan Cox @ 2008-11-11 14:34 UTC (permalink / raw)
To: Mark Lord
Cc: Sergei Shtylyov, Tejun Heo, Michael Guntsche, linux-ide,
Jeff Garzik
> Heck, the Linux support for Triton DMA made us the first
> widely available O/S with UDMA support for that (or any) chipset!
> Predating even Redmond by a good six months or more!
Triton 1 didn't have UDMA - are you thinking of the later chipsets ?
Alan
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 14:29 ` Mark Lord
@ 2008-11-11 15:03 ` Guntsche Michael
2008-11-12 1:20 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Guntsche Michael @ 2008-11-11 15:03 UTC (permalink / raw)
To: Mark Lord; +Cc: Sergei Shtylyov, Tejun Heo, linux-ide, Alan Cox, Jeff Garzik
On Nov 11, 2008, at 15:29, Mark Lord wrote:
> .
>
> Yeah, that's the right one. But if you are technically apt,
> then perhaps you could try a brief experiment for us:
>
> Use drivers/ide instead, and see what it reports in the boot log.
>
> One simple way to do this, is to boot a Knoppix CD, say v5.01 or so
> (but not the newest version, which probably uses libata instead).
>
> Then just grab the boot log with dmesg, and post it here.
Ok, recompiled the kernel with the old driver, here the relevant dmesg
output.
Uniform Multi-Platform E-IDE driver
piix 0000:00:07.1: IDE controller (0x8086:0x7010 rev 0x00)
piix 0000:00:07.1: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0xe800-0xe807
ide1: BM-DMA at 0xe808-0xe80f
Probing IDE interface ide0...
hda: IC35L040AVER07-0, ATA DISK drive
hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hda: MWDMA2 mode selected
Probing IDE interface ide1...
hdc: SAMSUNG CD-R/RW SW-408B, ATAPI CD/DVD-ROM drive
hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hdc: MWDMA2 mode selected
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
Hope that helps,
Mike
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 14:34 ` Alan Cox
@ 2008-11-12 1:18 ` Mark Lord
0 siblings, 0 replies; 39+ messages in thread
From: Mark Lord @ 2008-11-12 1:18 UTC (permalink / raw)
To: Alan Cox
Cc: Sergei Shtylyov, Tejun Heo, Michael Guntsche, linux-ide,
Jeff Garzik
Alan Cox wrote:
>> Heck, the Linux support for Triton DMA made us the first
>> widely available O/S with UDMA support for that (or any) chipset!
>> Predating even Redmond by a good six months or more!
>
> Triton 1 didn't have UDMA - are you thinking of the later chipsets ?
..
Ooops.. poor memory here for terminology.
Triton was the first Intel IDE controller with PCI bus-master DMA,
and Linux was the first O/S to take advantage of it: 82371FB.
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-11 15:03 ` Guntsche Michael
@ 2008-11-12 1:20 ` Mark Lord
2008-11-12 2:34 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-12 1:20 UTC (permalink / raw)
To: Guntsche Michael
Cc: Sergei Shtylyov, Tejun Heo, linux-ide, Alan Cox, Jeff Garzik
Guntsche Michael wrote:
>
> On Nov 11, 2008, at 15:29, Mark Lord wrote:
>> .
>>
>> Yeah, that's the right one. But if you are technically apt,
>> then perhaps you could try a brief experiment for us:
>>
>> Use drivers/ide instead, and see what it reports in the boot log.
>>
>> One simple way to do this, is to boot a Knoppix CD, say v5.01 or so
>> (but not the newest version, which probably uses libata instead).
>>
>> Then just grab the boot log with dmesg, and post it here.
>
> Ok, recompiled the kernel with the old driver, here the relevant dmesg
> output.
>
> Uniform Multi-Platform E-IDE driver
> piix 0000:00:07.1: IDE controller (0x8086:0x7010 rev 0x00)
> piix 0000:00:07.1: not 100% native mode: will probe irqs later
> ide0: BM-DMA at 0xe800-0xe807
> ide1: BM-DMA at 0xe808-0xe80f
> Probing IDE interface ide0...
> hda: IC35L040AVER07-0, ATA DISK drive
> hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
> hda: MWDMA2 mode selected
> Probing IDE interface ide1...
> hdc: SAMSUNG CD-R/RW SW-408B, ATAPI CD/DVD-ROM drive
> hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
> hdc: MWDMA2 mode selected
> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
> ide1 at 0x170-0x177,0x376 on irq 15
..
Mmm.. no phantom device showing up there,
so I suppose what's left of my ancient device probing
is still mostly working (does any of it remain now?).
Tejun?
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 1:20 ` Mark Lord
@ 2008-11-12 2:34 ` Tejun Heo
2008-11-12 7:22 ` Michael Guntsche
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-12 2:34 UTC (permalink / raw)
To: Mark Lord
Cc: Guntsche Michael, Sergei Shtylyov, linux-ide, Alan Cox,
Jeff Garzik
[-- Attachment #1: Type: text/plain, Size: 1589 bytes --]
Mark Lord wrote:
> Guntsche Michael wrote:
>>
>> On Nov 11, 2008, at 15:29, Mark Lord wrote:
>>> .
>>>
>>> Yeah, that's the right one. But if you are technically apt,
>>> then perhaps you could try a brief experiment for us:
>>>
>>> Use drivers/ide instead, and see what it reports in the boot log.
>>>
>>> One simple way to do this, is to boot a Knoppix CD, say v5.01 or so
>>> (but not the newest version, which probably uses libata instead).
>>>
>>> Then just grab the boot log with dmesg, and post it here.
>>
>> Ok, recompiled the kernel with the old driver, here the relevant dmesg
>> output.
>>
>> Uniform Multi-Platform E-IDE driver
>> piix 0000:00:07.1: IDE controller (0x8086:0x7010 rev 0x00)
>> piix 0000:00:07.1: not 100% native mode: will probe irqs later
>> ide0: BM-DMA at 0xe800-0xe807
>> ide1: BM-DMA at 0xe808-0xe80f
>> Probing IDE interface ide0...
>> hda: IC35L040AVER07-0, ATA DISK drive
>> hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
>> hda: MWDMA2 mode selected
>> Probing IDE interface ide1...
>> hdc: SAMSUNG CD-R/RW SW-408B, ATAPI CD/DVD-ROM drive
>> hdc: host max PIO4 wanted PIO255(auto-tune) selected PIO4
>> hdc: MWDMA2 mode selected
>> ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
>> ide1 at 0x170-0x177,0x376 on irq 15
> ..
>
> Mmm.. no phantom device showing up there,
> so I suppose what's left of my ancient device probing
> is still mostly working (does any of it remain now?).
Looks like we screwed up phantom device detection somewhere. Michael,
can you please apply the attached patch and report kernel boot log?
Thanks.
--
tejun
[-- Attachment #2: phantom-debug.patch --]
[-- Type: text/x-patch, Size: 1639 bytes --]
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 4b47394..abbb5f0 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1226,11 +1226,16 @@ fsm_start:
} else {
/* ATA PIO protocol */
if (unlikely((status & ATA_DRQ) == 0)) {
+ ata_dev_printk(qc->dev, KERN_INFO, "XXX status=0x%x hdiag=%d\n",
+ status, qc->dev->horkage & ATA_HORKAGE_DIAGNOSTIC);
+
/* handle BSY=0, DRQ=0 as error */
- if (likely(status & (ATA_ERR | ATA_DF)))
+ if (likely(status & (ATA_ERR | ATA_DF))) {
/* device stops HSM for abort/error */
qc->err_mask |= AC_ERR_DEV;
- else {
+ if (qc->dev->horkage & ATA_HORKAGE_DIAGNOSTIC)
+ qc->err_mask |= AC_ERR_NODEV_HINT;
+ } else {
/* HSM violation. Let EH handle this.
* Phantom devices also trigger this
* condition. Mark hint.
@@ -1838,6 +1843,8 @@ unsigned int ata_sff_dev_classify(struct ata_device *dev, int present,
/* determine if device is ATA or ATAPI */
class = ata_dev_classify(&tf);
+ ata_dev_printk(dev, KERN_INFO, "XXX sff_dev_classify present=%d hdiag=%d tf=%02x:%02x:%02x class=%d\n",
+ present, dev->horkage & ATA_HORKAGE_DIAGNOSTIC, tf.lbal, tf.lbam, tf.lbah, class);
if (class == ATA_DEV_UNKNOWN) {
/* If the device failed diagnostic, it's likely to
@@ -1981,6 +1988,7 @@ int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
devmask |= (1 << 0);
if (slave_possible && ata_devchk(ap, 1))
devmask |= (1 << 1);
+ ata_link_printk(link, KERN_INFO, "XXX devmask=%x\n", devmask);
/* select device 0 again */
ap->ops->sff_dev_select(ap, 0);
^ permalink raw reply related [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 2:34 ` Tejun Heo
@ 2008-11-12 7:22 ` Michael Guntsche
2008-11-12 8:15 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-12 7:22 UTC (permalink / raw)
To: Tejun Heo; +Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Wed, 12 Nov 2008 11:34:19 +0900, Tejun Heo <tj@kernel.org> wrote:
> Looks like we screwed up phantom device detection somewhere. Michael,
> can you please apply the attached patch and report kernel boot log?
Here the relevant dmesg output
ata_piix 0000:00:07.1: version 2.12
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
ata1: XXX devmask=3
ata1.00: XXX sff_dev_classify present=1 hdiag=0 tf=01:00:00 class=1
ata1.01: XXX sff_dev_classify present=2 hdiag=0 tf=01:00:00 class=1
ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
ata1.00: 66055248 sectors, multi 16: LBA
ata1.00: configured for MWDMA2
ata2: XXX devmask=1
ata2.00: XXX sff_dev_classify present=1 hdiag=0 tf=01:14:eb class=3
ata2.01: XXX sff_dev_classify present=0 hdiag=1 tf=ff:00:00 class=1
ata2.01: XXX status=0x1 hdiag=1
ata2.01: NODEV after polling detection
ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
ata2.00: configured for MWDMA2
Hope this helps,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 7:22 ` Michael Guntsche
@ 2008-11-12 8:15 ` Tejun Heo
2008-11-12 9:16 ` Michael Guntsche
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-12 8:15 UTC (permalink / raw)
To: Michael Guntsche
Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
[-- Attachment #1: Type: text/plain, Size: 1174 bytes --]
Michael Guntsche wrote:
> On Wed, 12 Nov 2008 11:34:19 +0900, Tejun Heo <tj@kernel.org> wrote:
>
>> Looks like we screwed up phantom device detection somewhere. Michael,
>> can you please apply the attached patch and report kernel boot log?
>
> Here the relevant dmesg output
>
> ata_piix 0000:00:07.1: version 2.12
> scsi0 : ata_piix
> scsi1 : ata_piix
> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
> ata1: XXX devmask=3
> ata1.00: XXX sff_dev_classify present=1 hdiag=0 tf=01:00:00 class=1
> ata1.01: XXX sff_dev_classify present=2 hdiag=0 tf=01:00:00 class=1
> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
> ata1.00: 66055248 sectors, multi 16: LBA
> ata1.00: configured for MWDMA2
> ata2: XXX devmask=1
> ata2.00: XXX sff_dev_classify present=1 hdiag=0 tf=01:14:eb class=3
> ata2.01: XXX sff_dev_classify present=0 hdiag=1 tf=ff:00:00 class=1
> ata2.01: XXX status=0x1 hdiag=1
> ata2.01: NODEV after polling detection
> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
> ata2.00: configured for MWDMA2
Can you please test the attached patch?
Thanks.
--
tejun
[-- Attachment #2: phantom-fix.patch --]
[-- Type: text/x-patch, Size: 5782 bytes --]
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 4b47394..9859705 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1083,7 +1083,6 @@ static void ata_hsm_qc_complete(struct ata_queued_cmd *qc, int in_wq)
/**
* ata_sff_hsm_move - move the HSM to the next state.
- * @ap: the target ata_port
* @qc: qc on going
* @status: current device status
* @in_wq: 1 if called from workqueue, 0 otherwise
@@ -1091,9 +1090,11 @@ static void ata_hsm_qc_complete(struct ata_queued_cmd *qc, int in_wq)
* RETURNS:
* 1 when poll next status needed, 0 otherwise.
*/
-int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
- u8 status, int in_wq)
+int ata_sff_hsm_move(struct ata_queued_cmd *qc, u8 status, int in_wq)
{
+ struct ata_port *ap = qc->ap;
+ struct ata_device *dev = qc->dev;
+ struct ata_eh_context *ehc = &ap->link.eh_context;
struct ata_eh_info *ehi = &ap->link.eh_info;
unsigned long flags = 0;
int poll_next;
@@ -1227,10 +1228,15 @@ fsm_start:
/* ATA PIO protocol */
if (unlikely((status & ATA_DRQ) == 0)) {
/* handle BSY=0, DRQ=0 as error */
- if (likely(status & (ATA_ERR | ATA_DF)))
+ if (likely(status & (ATA_ERR | ATA_DF))) {
/* device stops HSM for abort/error */
qc->err_mask |= AC_ERR_DEV;
- else {
+
+ if (!(ehc->sff_devmask &
+ (1 << dev->devno)))
+ qc->err_mask |=
+ AC_ERR_NODEV_HINT;
+ } else {
/* HSM violation. Let EH handle this.
* Phantom devices also trigger this
* condition. Mark hint.
@@ -1359,7 +1365,7 @@ fsm_start:
}
/* move the HSM */
- poll_next = ata_sff_hsm_move(ap, qc, status, 1);
+ poll_next = ata_sff_hsm_move(qc, status, 1);
/* another command or interrupt handler
* may be running at this point.
@@ -1593,7 +1599,7 @@ inline unsigned int ata_sff_host_intr(struct ata_port *ap,
/* ack bmdma irq events */
ap->ops->sff_irq_clear(ap);
- ata_sff_hsm_move(ap, qc, status, 0);
+ ata_sff_hsm_move(qc, status, 0);
if (unlikely(qc->err_mask) && (qc->tf.protocol == ATA_PROT_DMA ||
qc->tf.protocol == ATAPI_PROT_DMA))
@@ -1969,25 +1975,26 @@ int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
unsigned long deadline)
{
struct ata_port *ap = link->ap;
+ struct ata_eh_context *ehc = &link->eh_context;
unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
- unsigned int devmask = 0;
int rc;
u8 err;
DPRINTK("ENTER\n");
/* determine if device 0/1 are present */
+ ehc->sff_devmask = 0;
if (ata_devchk(ap, 0))
- devmask |= (1 << 0);
+ ehc->sff_devmask |= (1 << 0);
if (slave_possible && ata_devchk(ap, 1))
- devmask |= (1 << 1);
+ ehc->sff_devmask |= (1 << 1);
/* select device 0 again */
ap->ops->sff_dev_select(ap, 0);
/* issue bus reset */
- DPRINTK("about to softreset, devmask=%x\n", devmask);
- rc = ata_bus_softreset(ap, devmask, deadline);
+ DPRINTK("about to softreset, devmask=%x\n", ehc->sff_devmask);
+ rc = ata_bus_softreset(ap, ehc->sff_devmask, deadline);
/* if link is occupied, -ENODEV too is an error */
if (rc && (rc != -ENODEV || sata_scr_valid(link))) {
ata_link_printk(link, KERN_ERR, "SRST failed (errno=%d)\n", rc);
@@ -1996,10 +2003,10 @@ int ata_sff_softreset(struct ata_link *link, unsigned int *classes,
/* determine by signature whether we have ATA or ATAPI devices */
classes[0] = ata_sff_dev_classify(&link->device[0],
- devmask & (1 << 0), &err);
+ ehc->sff_devmask & (1 << 0), &err);
if (slave_possible && err != 0x81)
classes[1] = ata_sff_dev_classify(&link->device[1],
- devmask & (1 << 1), &err);
+ ehc->sff_devmask & (1 << 1), &err);
DPRINTK("EXIT, classes[0]=%u [1]=%u\n", classes[0], classes[1]);
return 0;
diff --git a/drivers/ata/pata_bf54x.c b/drivers/ata/pata_bf54x.c
index 1266924..1458ce8 100644
--- a/drivers/ata/pata_bf54x.c
+++ b/drivers/ata/pata_bf54x.c
@@ -1406,7 +1406,7 @@ static unsigned int bfin_ata_host_intr(struct ata_port *ap,
/* ack bmdma irq events */
ap->ops->sff_irq_clear(ap);
- ata_sff_hsm_move(ap, qc, status, 0);
+ ata_sff_hsm_move(qc, status, 0);
if (unlikely(qc->err_mask) && (qc->tf.protocol == ATA_PROT_DMA ||
qc->tf.protocol == ATAPI_PROT_DMA))
diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c
index 031d7b7..061f471 100644
--- a/drivers/ata/sata_sil.c
+++ b/drivers/ata/sata_sil.c
@@ -413,7 +413,7 @@ static void sil_host_intr(struct ata_port *ap, u32 bmdma2)
ata_sff_irq_clear(ap);
/* kick HSM in the ass */
- ata_sff_hsm_move(ap, qc, status, 0);
+ ata_sff_hsm_move(qc, status, 0);
if (unlikely(qc->err_mask) && ata_is_dma(qc->tf.protocol))
ata_ehi_push_desc(ehi, "BMDMA2 stat 0x%x", bmdma2);
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 59b0f1c..0a14022 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -639,6 +639,9 @@ struct ata_eh_context {
u8 saved_xfer_mode[ATA_MAX_DEVICES];
/* timestamp for the last reset attempt or success */
unsigned long last_reset;
+#ifdef CONFIG_ATA_SFF
+ unsigned int sff_devmask;
+#endif
};
struct ata_acpi_drive
@@ -1511,8 +1514,7 @@ extern unsigned int ata_sff_data_xfer_noirq(struct ata_device *dev,
unsigned char *buf, unsigned int buflen, int rw);
extern u8 ata_sff_irq_on(struct ata_port *ap);
extern void ata_sff_irq_clear(struct ata_port *ap);
-extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
- u8 status, int in_wq);
+extern int ata_sff_hsm_move(struct ata_queued_cmd *qc, u8 status, int in_wq);
extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc);
extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc);
extern unsigned int ata_sff_host_intr(struct ata_port *ap,
^ permalink raw reply related [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 8:15 ` Tejun Heo
@ 2008-11-12 9:16 ` Michael Guntsche
2008-11-12 9:27 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-12 9:16 UTC (permalink / raw)
To: Tejun Heo; +Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Wed, 12 Nov 2008 17:15:58 +0900, Tejun Heo <tj@kernel.org> wrote:
> Can you please test the attached patch?
ata_piix 0000:00:07.1: version 2.12
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
ata1.00: 66055248 sectors, multi 16: LBA
ata1.00: configured for MWDMA2
ata2.01: NODEV after polling detection
ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
ata2.00: configured for MWDMA2
This is the output I get. I do not know if I have any stalls there since I
am not in front of the machine right now.
But if I understand "NODEV after polling detection" correctly, the code is
no able to see that there is nothing attached there.
I will give it another reboot when I am back home to see if the stall is
still happening.
On a side note, since we are already talking about old chipsets and mobos.
Since this is a rather old hardware it was not possible to get the 40GB IBM
disk running in the first place.
What I did back then (2.4 kernel days) was to use "ibmsetmax" to clamp the
disk to a smaller size and enabled the relevent option in the kernel. This
way I got past the BIOS (it stopped if the harddisk was saying it was >
32GB??) but the linux kernel correctly saw the right size.
Looking ad the dmesg output right now I think that it is only seeing the
smaller size.
sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't
support DPO
ibmsetmax output:
./ibmsetmax /dev/sda
Using device /dev/sda
native max address: 66055247
that is 33820286976 bytes, 33.8 GB
lba capacity: 66055248 sectors (33820286976 bytes)
Is the clamping feature present in 2.6 by default? I cannot test this with
a 2.4 kernel right now, since the libc no longer supports it. :)
Anyway thank you all very much for your time and support,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 9:16 ` Michael Guntsche
@ 2008-11-12 9:27 ` Tejun Heo
2008-11-12 9:43 ` Michael Guntsche
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-12 9:27 UTC (permalink / raw)
To: Michael Guntsche
Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Hello,
Michael Guntsche wrote:
> ata_piix 0000:00:07.1: version 2.12
> scsi0 : ata_piix
> scsi1 : ata_piix
> ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xe800 irq 14
> ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xe808 irq 15
> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
> ata1.00: 66055248 sectors, multi 16: LBA
> ata1.00: configured for MWDMA2
> ata2.01: NODEV after polling detection
> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
> ata2.00: configured for MWDMA2
>
> This is the output I get. I do not know if I have any stalls there since I
> am not in front of the machine right now.
> But if I understand "NODEV after polling detection" correctly, the code is
> no able to see that there is nothing attached there.
> I will give it another reboot when I am back home to see if the stall is
> still happening.
Yeap, it's working correctly now.
> On a side note, since we are already talking about old chipsets and mobos.
> Since this is a rather old hardware it was not possible to get the 40GB IBM
> disk running in the first place.
> What I did back then (2.4 kernel days) was to use "ibmsetmax" to clamp the
> disk to a smaller size and enabled the relevent option in the kernel. This
> way I got past the BIOS (it stopped if the harddisk was saying it was >
> 32GB??) but the linux kernel correctly saw the right size.
> Looking ad the dmesg output right now I think that it is only seeing the
> smaller size.
>
> sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't
> support DPO
>
> ibmsetmax output:
> ./ibmsetmax /dev/sda
> Using device /dev/sda
> native max address: 66055247
> that is 33820286976 bytes, 33.8 GB
> lba capacity: 66055248 sectors (33820286976 bytes)
>
> Is the clamping feature present in 2.6 by default? I cannot test this with
> a 2.4 kernel right now, since the libc no longer supports it. :)
Does libata.ignore_hpa=1 help?
--
tejun
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 9:27 ` Tejun Heo
@ 2008-11-12 9:43 ` Michael Guntsche
2008-11-12 9:48 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-12 9:43 UTC (permalink / raw)
To: Tejun Heo; +Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Wed, 12 Nov 2008 18:27:38 +0900, Tejun Heo <tj@kernel.org> wrote:
> Hello,
> Yeap, it's working correctly now.
Good to know
> Does libata.ignore_hpa=1 help?
No it does not.
/proc/cmdline:
==============
auto BOOT_IMAGE=Linux ro root=802 libata.ignore_hpa=1
dmesg:
======
ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
ata1.00: 66055248 sectors, multi 16: LBA
ata1.00: configured for MWDMA2
ata2.01: NODEV after polling detection
ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
ata2.00: configured for MWDMA2
scsi 0:0:0:0: Direct-Access ATA IC35L040AVER07-0 ER4O PQ: 0 ANSI:
5
sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
ibmsetmax:
==========
Using device /dev/sda
native max address: 66055247
that is 33820286976 bytes, 33.8 GB
lba capacity: 66055248 sectors (33820286976 bytes)
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 9:43 ` Michael Guntsche
@ 2008-11-12 9:48 ` Tejun Heo
2008-11-12 9:55 ` Michael Guntsche
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-12 9:48 UTC (permalink / raw)
To: Michael Guntsche
Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Michael Guntsche wrote:
> On Wed, 12 Nov 2008 18:27:38 +0900, Tejun Heo <tj@kernel.org> wrote:
>> Hello,
>> Yeap, it's working correctly now.
>
> Good to know
>
>> Does libata.ignore_hpa=1 help?
>
> No it does not.
>
> /proc/cmdline:
> ==============
>
> auto BOOT_IMAGE=Linux ro root=802 libata.ignore_hpa=1
>
> dmesg:
> ======
>
> ata1.00: ATA-5: IC35L040AVER07-0, ER4OA45A, max UDMA/100
> ata1.00: 66055248 sectors, multi 16: LBA
> ata1.00: configured for MWDMA2
> ata2.01: NODEV after polling detection
> ata2.00: ATAPI: SAMSUNG CD-R/RW SW-408B, M300, max MWDMA2
> ata2.00: configured for MWDMA2
> scsi 0:0:0:0: Direct-Access ATA IC35L040AVER07-0 ER4O PQ: 0 ANSI:
> 5
> sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't
> support DPO or FUA
> sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
> sd 0:0:0:0: [sda] Write Protect is off
> sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't
> support DPO or FUA
>
> ibmsetmax:
> ==========
>
> Using device /dev/sda
> native max address: 66055247
> that is 33820286976 bytes, 33.8 GB
> lba capacity: 66055248 sectors (33820286976 bytes)
Care to post "hdparm -I /dev/sda"?
--
tejun
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 9:48 ` Tejun Heo
@ 2008-11-12 9:55 ` Michael Guntsche
2008-11-14 2:38 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-12 9:55 UTC (permalink / raw)
To: Tejun Heo; +Cc: Mark Lord, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Wed, 12 Nov 2008 18:48:50 +0900, Tejun Heo <tj@kernel.org> wrote:
> Care to post "hdparm -I /dev/sda"?
Here it is.
/dev/sda:
ATA device, with non-removable media
powers-up in standby; SET FEATURES subcmd spins-up.
Model Number: IC35L040AVER07-0
Serial Number: SXPTXGK0136
Firmware Revision: ER4OA45A
Standards:
Used: ATA/ATAPI-5 T13 1321D revision 1
Supported: 5 4 3 & some of 6
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 66055248
device size with M = 1024*1024: 32253 MBytes
device size with M = 1000*1000: 33820 MBytes (33 GB)
Capabilities:
LBA, IORDY(can be disabled)
bytes avail on r/w long: 40 Queue depth: 32
Standby timer values: spec'd by Standard, no device specific
minimum
R/W multiple sector transfer: Max = 16 Current = 16
Advanced power management level: disabled
Recommended acoustic management value: 128, current value: 254
DMA: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=240ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
Release interrupt
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* READ/WRITE_DMA_QUEUED
Advanced Power Management feature set
Power-Up In Standby feature set
SET_FEATURES required to spinup after power up
Address Offset Reserved Area Boot
SET_MAX security extension
* Automatic Acoustic Management feature set
* Device Configuration Overlay feature set
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
30min for SECURITY ERASE UNIT.
HW reset results:
CBLID- above Vih
Device num = 0 determined by the jumper
Checksum: correct
/Mike
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-12 9:55 ` Michael Guntsche
@ 2008-11-14 2:38 ` Mark Lord
2008-11-14 6:59 ` Michael Guntsche
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-14 2:38 UTC (permalink / raw)
To: Michael Guntsche
Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Michael Guntsche wrote:
> On Wed, 12 Nov 2008 18:48:50 +0900, Tejun Heo <tj@kernel.org> wrote:
>
>> Care to post "hdparm -I /dev/sda"?
>
> Here it is.
>
> /dev/sda:
>
> ATA device, with non-removable media
> powers-up in standby; SET FEATURES subcmd spins-up.
> Model Number: IC35L040AVER07-0
> Serial Number: SXPTXGK0136
> Firmware Revision: ER4OA45A
> Standards:
> Used: ATA/ATAPI-5 T13 1321D revision 1
> Supported: 5 4 3 & some of 6
> Configuration:
> Logical max current
> cylinders 16383 16383
> heads 16 16
> sectors/track 63 63
> --
> CHS current addressable sectors: 16514064
> LBA user addressable sectors: 66055248
> device size with M = 1024*1024: 32253 MBytes
> device size with M = 1000*1000: 33820 MBytes (33 GB)
> Capabilities:
> LBA, IORDY(can be disabled)
> bytes avail on r/w long: 40 Queue depth: 32
> Standby timer values: spec'd by Standard, no device specific
> minimum
> R/W multiple sector transfer: Max = 16 Current = 16
> Advanced power management level: disabled
> Recommended acoustic management value: 128, current value: 254
> DMA: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5
> Cycle time: min=120ns recommended=120ns
> PIO: pio0 pio1 pio2 pio3 pio4
> Cycle time: no flow control=240ns IORDY flow control=120ns
> Commands/features:
> Enabled Supported:
> * SMART feature set
> Security Mode feature set
> * Power Management feature set
> * Write cache
> * Look-ahead
> Release interrupt
> * Host Protected Area feature set
> * WRITE_BUFFER command
> * READ_BUFFER command
> * NOP cmd
> * READ/WRITE_DMA_QUEUED
> Advanced Power Management feature set
> Power-Up In Standby feature set
> SET_FEATURES required to spinup after power up
> Address Offset Reserved Area Boot
> SET_MAX security extension
> * Automatic Acoustic Management feature set
> * Device Configuration Overlay feature set
> Security:
> Master password revision code = 65534
> supported
> not enabled
> not locked
> not frozen
> not expired: security count
> not supported: enhanced erase
> 30min for SECURITY ERASE UNIT.
> HW reset results:
> CBLID- above Vih
> Device num = 0 determined by the jumper
> Checksum: correct
..
One more: Let's see "hdparm -N" for that drive
(note to self: add -N functionality to -I someday..).
Thanks
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-14 2:38 ` Mark Lord
@ 2008-11-14 6:59 ` Michael Guntsche
2008-11-14 17:21 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Michael Guntsche @ 2008-11-14 6:59 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Thu, 13 Nov 2008 21:38:30 -0500, Mark Lord <liml@rtr.ca> wrote:
> One more: Let's see "hdparm -N" for that drive
> (note to self: add -N functionality to -I someday..).
/dev/sda:
max sectors = 66055248/15723600, HPA setting seems invalid
Hmm, is the "HPA setting seems invalid" an indication that this drive is
clamped?
Hope that helps,
Mike
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-14 6:59 ` Michael Guntsche
@ 2008-11-14 17:21 ` Mark Lord
2008-11-14 17:24 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-14 17:21 UTC (permalink / raw)
To: Michael Guntsche
Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Michael Guntsche wrote:
> On Thu, 13 Nov 2008 21:38:30 -0500, Mark Lord <liml@rtr.ca> wrote:
>
>> One more: Let's see "hdparm -N" for that drive
>> (note to self: add -N functionality to -I someday..).
>
> /dev/sda:
> max sectors = 66055248/15723600, HPA setting seems invalid
>
> Hmm, is the "HPA setting seems invalid" an indication that this drive is clamped?
..
It's definitely clamped, but that output is a sign that you
may need a newer version of hdparm -- could you try that again
using hdparm-9.3 from sourceforge?
Thanks
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-14 17:21 ` Mark Lord
@ 2008-11-14 17:24 ` Mark Lord
2008-11-14 22:26 ` Guntsche Michael
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-14 17:24 UTC (permalink / raw)
To: Michael Guntsche
Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Mark Lord wrote:
> Michael Guntsche wrote:
>> On Thu, 13 Nov 2008 21:38:30 -0500, Mark Lord <liml@rtr.ca> wrote:
>>
>>> One more: Let's see "hdparm -N" for that drive
>>> (note to self: add -N functionality to -I someday..).
>>
>> /dev/sda:
>> max sectors = 66055248/15723600, HPA setting seems invalid
>>
>> Hmm, is the "HPA setting seems invalid" an indication that this drive
>> is clamped?
> ..
>
> It's definitely clamped, but that output is a sign that you
> may need a newer version of hdparm -- could you try that again
> using hdparm-9.3 from sourceforge?
..
To clarify, the second number reported should NEVER be less than
the first number. If it is, then there's a bug in the low-level
libata driver for your SATA/IDE controller -- it's not returning
the high-order-bytes from the SAT command. Several drivers had
this bug until 2.6.27 or so, and some may still misbehave.
A newer version of hdparm will verify that, and also show the correct
value (hopefully) obtained via a completely different mechanism.
Thanks
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-14 17:24 ` Mark Lord
@ 2008-11-14 22:26 ` Guntsche Michael
2008-11-15 4:13 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Guntsche Michael @ 2008-11-14 22:26 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Nov 14, 2008, at 18:24, Mark Lord wrote:
> To clarify, the second number reported should NEVER be less than
> the first number. If it is, then there's a bug in the low-level
> libata driver for your SATA/IDE controller -- it's not returning
> the high-order-bytes from the SAT command. Several drivers had
> this bug until 2.6.27 or so, and some may still misbehave.
>
> A newer version of hdparm will verify that, and also show the correct
> value (hopefully) obtained via a completely different mechanism.
>
> Thanks
Here the new output, it still does not look right, or am I wrong?
/dev/sda:
max sectors = 66055248/15723600(66055248?), HPA setting seems
invalid (buggy kernel device driver?)
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-14 22:26 ` Guntsche Michael
@ 2008-11-15 4:13 ` Mark Lord
2008-11-15 4:17 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-15 4:13 UTC (permalink / raw)
To: Guntsche Michael
Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Guntsche Michael wrote:
>
> On Nov 14, 2008, at 18:24, Mark Lord wrote:
>
>> To clarify, the second number reported should NEVER be less than
>> the first number. If it is, then there's a bug in the low-level
>> libata driver for your SATA/IDE controller -- it's not returning
>> the high-order-bytes from the SAT command. Several drivers had
>> this bug until 2.6.27 or so, and some may still misbehave.
>>
>> A newer version of hdparm will verify that, and also show the correct
>> value (hopefully) obtained via a completely different mechanism.
>>
>> Thanks
>
> Here the new output, it still does not look right, or am I wrong?
>
> /dev/sda:
> max sectors = 66055248/15723600(66055248?), HPA setting seems invalid
> (buggy kernel device driver?)
..
Ahh, okay, no HPA in effect.
max sectors = 66055248/ ... (66055248)
That's the entire drive, ignoring the buggy libata driver
that reports 15723600 (returns zeros for hob_lba[mhl]).
Michael Guntsche wrote:
> On a side note, since we are already talking about old chipsets and mobos.
> Since this is a rather old hardware it was not possible to get the 40GB IBM
> disk running in the first place.
> What I did back then (2.4 kernel days) was to use "ibmsetmax" to clamp the
> disk to a smaller size and enabled the relevent option in the kernel. This
> way I got past the BIOS (it stopped if the harddisk was saying it was >
> 32GB??) but the linux kernel correctly saw the right size.
> Looking ad the dmesg output right now I think that it is only seeing the
> smaller size.
>
> sd 0:0:0:0: [sda] 66055248 512-byte hardware sectors (33820 MB)
..
Well, according to the drive, it *is* a 33GB drive, not a 40GB drive.
So whatever "ibmsetmax" did appears to be outside of the ATA standard
way of doing it. Unless I've got a bug in hdparm that I don't know about. :)
> /dev/sda:
>
> ATA device, with non-removable media
> powers-up in standby; SET FEATURES subcmd spins-up.
> Model Number: IC35L040AVER07-0
> Serial Number: SXPTXGK0136
> Firmware Revision: ER4OA45A
> Standards:
> Used: ATA/ATAPI-5 T13 1321D revision 1
> Supported: 5 4 3 & some of 6
> Configuration:
> Logical max current
> cylinders 16383 16383
> heads 16 16
> sectors/track 63 63
> --
> CHS current addressable sectors: 16514064
> LBA user addressable sectors: 66055248
> device size with M = 1024*1024: 32253 MBytes
> device size with M = 1000*1000: 33820 MBytes (33 GB)
..
> * Host Protected Area feature set
..
That last line bothers me -- the '*' indicates that an HPA is in effect,
but the -N output indicates otherwise.. mmm...
Let's see: 66055248 = 0x3efec50.
If we mask off all but the lower 24 bits,
we get 0xefec50 = 15723600,
which matches what the buggy device driver
returned when it dropped the top 24 bits.
So probably no bug in hdparm.
Which is odd, because google tells me that
the IC35L040AVER07-0 really is a 40GB drive.
Mmm..
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-15 4:13 ` Mark Lord
@ 2008-11-15 4:17 ` Mark Lord
2008-11-15 9:29 ` Guntsche Michael
2008-11-15 10:22 ` Guntsche Michael
0 siblings, 2 replies; 39+ messages in thread
From: Mark Lord @ 2008-11-15 4:17 UTC (permalink / raw)
To: Guntsche Michael
Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Mark Lord wrote:
..
>> * Host Protected Area feature set
> ..
>
> That last line bothers me -- the '*' indicates that an HPA is in effect,
> but the -N output indicates otherwise.. mmm...
> Let's see: 66055248 = 0x3efec50.
> If we mask off all but the lower 24 bits,
> we get 0xefec50 = 15723600,
> which matches what the buggy device driver
> returned when it dropped the top 24 bits.
>
> So probably no bug in hdparm.
> Which is odd, because google tells me that
> the IC35L040AVER07-0 really is a 40GB drive.
>
> Mmm..
..
Oh..
Since you now have hdparm-9.3, what do you get from "hdparm --dco-identify" ??
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-15 4:17 ` Mark Lord
@ 2008-11-15 9:29 ` Guntsche Michael
2008-11-15 10:22 ` Guntsche Michael
1 sibling, 0 replies; 39+ messages in thread
From: Guntsche Michael @ 2008-11-15 9:29 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Nov 15, 2008, at 5:17, Mark Lord wrote:
>
> Oh..
> Since you now have hdparm-9.3, what do you get from "hdparm --dco-
> identify" ??
DCO Revision: 0x0001
The following features can be selectively disabled via DCO:
Transfer modes:
mdma0 mdma1 mdma2
udma0 udma1 udma2 udma3 udma4 udma5
Real max sectors: 66055248
ATA command/feature sets:
SMART self_test error_log security PUIS TCQ AAM HPA
Hmm, still the same max sectors.
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-15 4:17 ` Mark Lord
2008-11-15 9:29 ` Guntsche Michael
@ 2008-11-15 10:22 ` Guntsche Michael
2008-11-15 20:43 ` Mark Lord
1 sibling, 1 reply; 39+ messages in thread
From: Guntsche Michael @ 2008-11-15 10:22 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Nov 15, 2008, at 5:17, Mark Lord wrote:
> Mark Lord wrote:
>> Which is odd, because google tells me that
>> the IC35L040AVER07-0 really is a 40GB drive.
>> Mmm..
I found the problem Mark and I am SOOOOOO sorry for wasting your time
here.
Your remark about the drive being 40GB made me think about it again.
As you know this is a quite old router that's running here.
When moving to 2.6 I also replaced the IBM disk with a new one (had
several of them lying around back then).
The first one was CLAMPED with ibmsetmax. During the install of the
new harddisk I clamped the new one with the JUMPERS on the DRIVE ond
not with ibmsetmax.
I know remember that back then I thought that this would easier and
more hassle free.
The libata stack, hdparm and everything else is working correctly it's
the drive that's reporting 32GB!!!!!!!
Once again sorry for troubling you (all) with this non-issue.
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-15 10:22 ` Guntsche Michael
@ 2008-11-15 20:43 ` Mark Lord
2008-11-16 5:14 ` Tejun Heo
0 siblings, 1 reply; 39+ messages in thread
From: Mark Lord @ 2008-11-15 20:43 UTC (permalink / raw)
To: Guntsche Michael
Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
Guntsche Michael wrote:
>
> On Nov 15, 2008, at 5:17, Mark Lord wrote:
>
>> Mark Lord wrote:
>>> Which is odd, because google tells me that
>>> the IC35L040AVER07-0 really is a 40GB drive.
>>> Mmm..
>
> I found the problem Mark and I am SOOOOOO sorry for wasting your time here.
> Your remark about the drive being 40GB made me think about it again. As
> you know this is a quite old router that's running here.
> When moving to 2.6 I also replaced the IBM disk with a new one (had
> several of them lying around back then).
> The first one was CLAMPED with ibmsetmax. During the install of the new
> harddisk I clamped the new one with the JUMPERS on the DRIVE ond not
> with ibmsetmax.
> I know remember that back then I thought that this would easier and more
> hassle free.
> The libata stack, hdparm and everything else is working correctly it's
> the drive that's reporting 32GB!!!!!!!
..
Ahh.. that's better. Thanks for figuring this one out for us all!
Cheers
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-15 20:43 ` Mark Lord
@ 2008-11-16 5:14 ` Tejun Heo
2008-11-16 5:49 ` Mark Lord
0 siblings, 1 reply; 39+ messages in thread
From: Tejun Heo @ 2008-11-16 5:14 UTC (permalink / raw)
To: Mark Lord
Cc: Guntsche Michael, Sergei Shtylyov, linux-ide, Alan Cox,
Jeff Garzik
Mark Lord wrote:
>> The libata stack, hdparm and everything else is working correctly it's
>> the drive that's reporting 32GB!!!!!!!
> ..
>
> Ahh.. that's better. Thanks for figuring this one out for us all!
So, the only real bug here is ata_piix not returning HOB registers?
That's weird. It's ata_piix. It's not likely to be broken. :-(
--
tejun
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-16 5:14 ` Tejun Heo
@ 2008-11-16 5:49 ` Mark Lord
2008-11-16 8:41 ` Michael Guntsche
` (3 more replies)
0 siblings, 4 replies; 39+ messages in thread
From: Mark Lord @ 2008-11-16 5:49 UTC (permalink / raw)
To: Tejun Heo
Cc: Guntsche Michael, Sergei Shtylyov, linux-ide, Alan Cox,
Jeff Garzik
Tejun Heo wrote:
> Mark Lord wrote:
>>> The libata stack, hdparm and everything else is working correctly it's
>>> the drive that's reporting 32GB!!!!!!!
>> ..
>>
>> Ahh.. that's better. Thanks for figuring this one out for us all!
>
> So, the only real bug here is ata_piix not returning HOB registers?
> That's weird. It's ata_piix. It's not likely to be broken. :-(
..
ata_piix works here for me here, too.
But I think he's using pata_piix, not ata_piix.
Fyi: sata_sil24 had the HOB bug a few kernels ago,
but it's also now fine in 2.6.27.
-ml
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-16 5:49 ` Mark Lord
@ 2008-11-16 8:41 ` Michael Guntsche
2008-11-16 9:15 ` Michael Guntsche
` (2 subsequent siblings)
3 siblings, 0 replies; 39+ messages in thread
From: Michael Guntsche @ 2008-11-16 8:41 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Nov 16, 2008, at 6:49, Mark Lord wrote:
> ata_piix works here for me here, too.
> But I think he's using pata_piix, not ata_piix.
>
No, I am using ata_piix here.
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-16 5:49 ` Mark Lord
2008-11-16 8:41 ` Michael Guntsche
@ 2008-11-16 9:15 ` Michael Guntsche
2008-11-16 10:48 ` Sergei Shtylyov
2008-11-16 11:23 ` Alan Cox
3 siblings, 0 replies; 39+ messages in thread
From: Michael Guntsche @ 2008-11-16 9:15 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Sergei Shtylyov, linux-ide, Alan Cox, Jeff Garzik
On Nov 16, 2008, at 6:49, Mark Lord wrote:
> ata_piix works here for me here, too.
> But I think he's using pata_piix, not ata_piix.
>
> Fyi: sata_sil24 had the HOB bug a few kernels ago,
> but it's also now fine in 2.6.27.
Forgot to mention that. I also tried it with the old IDE code and got
the same results.
The reason why I am clamping the drive in the first place is that my
BIOS/chipset hangs during boot if a larger disk is connected.
So maybe the results I am seeing here is "normal" since the hardware
seems to be at it's limit. I know that clamping with ibmsetmax worked
back then, but could it be that the Jumper on the Harddisk is doing it
in a different way?
Kind regards,
Michael
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-16 5:49 ` Mark Lord
2008-11-16 8:41 ` Michael Guntsche
2008-11-16 9:15 ` Michael Guntsche
@ 2008-11-16 10:48 ` Sergei Shtylyov
2008-11-16 11:23 ` Alan Cox
3 siblings, 0 replies; 39+ messages in thread
From: Sergei Shtylyov @ 2008-11-16 10:48 UTC (permalink / raw)
To: Mark Lord; +Cc: Tejun Heo, Guntsche Michael, linux-ide, Alan Cox, Jeff Garzik
Hello.
Mark Lord wrote:
>>>> The libata stack, hdparm and everything else is working correctly it's
>>>> the drive that's reporting 32GB!!!!!!!
>>> ..
>>>
>>> Ahh.. that's better. Thanks for figuring this one out for us all!
>>
>> So, the only real bug here is ata_piix not returning HOB registers?
>> That's weird. It's ata_piix. It's not likely to be broken. :-(
> ..
>
> ata_piix works here for me here, too.
> But I think he's using pata_piix, not ata_piix.
Huh? IIRC, there has never been pata_piix, just pata_oldpiix that
only drives 82371FB.
WBR, Sergei
^ permalink raw reply [flat|nested] 39+ messages in thread
* Re: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs
2008-11-16 5:49 ` Mark Lord
` (2 preceding siblings ...)
2008-11-16 10:48 ` Sergei Shtylyov
@ 2008-11-16 11:23 ` Alan Cox
3 siblings, 0 replies; 39+ messages in thread
From: Alan Cox @ 2008-11-16 11:23 UTC (permalink / raw)
To: Mark Lord
Cc: Tejun Heo, Guntsche Michael, Sergei Shtylyov, linux-ide,
Jeff Garzik
> ata_piix works here for me here, too.
> But I think he's using pata_piix, not ata_piix.
There is no pata_piix ...
^ permalink raw reply [flat|nested] 39+ messages in thread
end of thread, other threads:[~2008-11-16 11:23 UTC | newest]
Thread overview: 39+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <6ca8fe89c868f95831328d31c27f9cdb@localhost>
2008-10-27 15:45 ` Fwd: [PATCH #upstream-fixes 1/4] libata: fix device iteration bugs Guntsche Michael
2008-11-10 6:52 ` Tejun Heo
2008-11-10 10:10 ` Michael Guntsche
2008-11-10 10:21 ` Tejun Heo
2008-11-10 15:07 ` Mark Lord
2008-11-11 2:45 ` Tejun Heo
2008-11-11 4:01 ` Mark Lord
2008-11-11 9:19 ` Sergei Shtylyov
2008-11-11 13:34 ` Michael Guntsche
2008-11-11 14:29 ` Mark Lord
2008-11-11 15:03 ` Guntsche Michael
2008-11-12 1:20 ` Mark Lord
2008-11-12 2:34 ` Tejun Heo
2008-11-12 7:22 ` Michael Guntsche
2008-11-12 8:15 ` Tejun Heo
2008-11-12 9:16 ` Michael Guntsche
2008-11-12 9:27 ` Tejun Heo
2008-11-12 9:43 ` Michael Guntsche
2008-11-12 9:48 ` Tejun Heo
2008-11-12 9:55 ` Michael Guntsche
2008-11-14 2:38 ` Mark Lord
2008-11-14 6:59 ` Michael Guntsche
2008-11-14 17:21 ` Mark Lord
2008-11-14 17:24 ` Mark Lord
2008-11-14 22:26 ` Guntsche Michael
2008-11-15 4:13 ` Mark Lord
2008-11-15 4:17 ` Mark Lord
2008-11-15 9:29 ` Guntsche Michael
2008-11-15 10:22 ` Guntsche Michael
2008-11-15 20:43 ` Mark Lord
2008-11-16 5:14 ` Tejun Heo
2008-11-16 5:49 ` Mark Lord
2008-11-16 8:41 ` Michael Guntsche
2008-11-16 9:15 ` Michael Guntsche
2008-11-16 10:48 ` Sergei Shtylyov
2008-11-16 11:23 ` Alan Cox
2008-11-11 14:27 ` Fwd: " Mark Lord
2008-11-11 14:34 ` Alan Cox
2008-11-12 1:18 ` Mark Lord
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).