Skip to contentSkip to conversation

IDE from current bk tree, UDMA and two channels...

DISCUSSION Petr Vandrovec 3 participants 3 messages Aug 1, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 5 lines · Alexander Viro
Quoted 2 lines · Linus Torvalds

You probably saw this. Looks like blocksize has been buggered somehow. Apparently Petr has a 1kB blocksize optical device..

Just to correct you: it is normal magnetic disk with 512 byte sectors, from notebook. It works with 512B UDMA requests if we talk to the drive slowly, with pauses here and there. If we talk to it back-to-back, it dies. Apparently it forgets that it is doing UDMA transfers and tries to do normal PIO or MDMA or what - host terminates transfer in the middle, and disk is signaling that it has more data to go.

Quoted 7 lines

Looks like we need
a) accurate hardsect_size for these beasts (which is a problem
with current setup, since it's per-queue and not per-device; master and slave can have different hardsect sizes).
b) extra check in check_partitions() that would verify that
partition doesn't end in the middle of a sector (and round it down if it does).

It will not help. Device is reporting 512B sectors, and it even supports them in PIO.
Petr Vandrovec [email protected]

#1 lore raw
Quoted 7 lines · Petr Vandrovec
Quoted 5 lines · Alexander Viro
Quoted 2 lines · Linus Torvalds

You probably saw this. Looks like blocksize has been buggered somehow. Apparently Petr has a 1kB blocksize optical device..

Quoted 6 lines

Just to correct you: it is normal magnetic disk with 512 byte sectors, from notebook. It works with 512B UDMA requests if we talk to the drive slowly, with pauses here and there. If we talk to it back-to-back, it dies. Apparently it forgets that it is doing UDMA transfers and tries to do normal PIO or MDMA or what - host terminates transfer in the middle, and disk is signaling that it has more data to go.

_Ouch_. Then I have to agree with Martin - it's a blacklist time. There's not much partition code could do with that - you really have a partition with a chunk that _can't_ be handled by 1Kb request.

Old code (pretty much by accident) hid it from you, so I'd suggest just decrementing partition size - it's not that you had anything in that last half-Kb. At least nothing that could be accessed by old kernels.

#2 lore raw
In reply to Petr Vandrovec
Quoted 5 lines · Petr Vandrovec

Just to correct you: it is normal magnetic disk with 512 byte sectors, from notebook. It works with 512B UDMA requests if we talk to the drive slowly, with pauses here and there. If we talk to it back-to-back, it dies.

Ugh.

You apparently use udma2 - can you try forcing it to udma0/1 or the other DMA modes? It may just be that the drive simply cannot take udma2 reliably.

Linus