Skip to contentSkip to conversation

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

DISCUSSION Petr Vandrovec 3 participants 3 messages Aug 1, 2002 – Aug 2, 2002

lore
Share & tools
lore
#0 lore raw
Quoted 17 lines · Alexander Viro
Quoted 4 lines · Marcin Dalecki
Quoted 4 lines

I'd like to apologize to Ingo, his changes were completely innocent. Problem was triggered by Al's 'block device size cleanups' (currently cset 1.403.160.5 on bkbits).

Quoted 8 lines
Quoted 8 lines

Before this change, my system was using 4KB block size when reading from /dev/hdc1, because of blk_size[][] (which is in 1kB units) of this partition was multiple of 2, and so i_size % 4096 was 0. But after Al's change partition size is read from gendisk, and not from blk_size, and gendisk partition size is in 512 bytes units: and, as you can probably guess, now my partition had i_size % 4096 == 512, and so only 512 byte block size was choosen. And with 512 bytes block size my harddisk refuses to cooperate.

Uh-oh...

Quoted 8 lines

Let me see if I got it straight:

a) your disk doesn't work with half-Kb requests
b) you have a partition with odd number of sectors
c) hardsect_size is set to half-Kb
d) old code worked since it rounded size to multiple of kilobyte.

Correct?

Yes, exactly. Replacing disk is not an option...
Petr Vandrovec

#1 lore raw
Quoted 4 lines · Petr Vandrovec
Quoted 4 lines

Uh-oh...

Let me see if I got it straight:

Quoted 8 lines
Quoted 6 lines

a) your disk doesn't work with half-Kb requests
b) you have a partition with odd number of sectors
c) hardsect_size is set to half-Kb
d) old code worked since it rounded size to multiple of kilobyte.

Correct?

Yes, exactly. Replacing disk is not an option...

OK. At the very least we need a way for driver to tell what the sector size is. And that can be a problem - AFAICS IDE shares the queue for master and slave and sector size is queue property.

BTW, what type of partition table do you have there?

#2 lore raw

Uz.ytkownik Alexander Viro napisa?:

Quoted 13 lines · Petr Vandrovec
Quoted 11 lines
Quoted 11 lines

Uh-oh...

Let me see if I got it straight:

a) your disk doesn't work with half-Kb requests
b) you have a partition with odd number of sectors
c) hardsect_size is set to half-Kb
d) old code worked since it rounded size to multiple of kilobyte.

Quoted 8 lines
Quoted 3 lines
Quoted 1 line

Correct?

Yes, exactly. Replacing disk is not an option...

OK. At the very least we need a way for driver to tell what the sector size is. And that can be a problem - AFAICS IDE shares the queue for master and slave and sector size is queue property.

Wrong. It is sharing the queue lock not the queue itself.