Re: [PATCH] 64 bit scsi read/write

From: Ragnar Kjørstad (kernel@ragnark.vestdata.no)
Date: Fri Aug 10 2001 - 14:51:36 EST


On Thu, Jul 26, 2001 at 04:18:21AM +0200, Ragnar Kjørstad wrote:
> On Tue, Jul 03, 2001 at 10:19:36PM -0400, Ben LaHaise wrote:
> > Here's the [completely untested] generic scsi fixup, but I'm told that
> > some controllers will break with it. Give it a whirl and let me know how
> > many pieces you're left holding. =) Please note that msdos partitions do
> > *not* work on devices larger than 2TB, so you'll have to use the scsi disk
> > directly. This patch applies on top of v2.4.6-pre8-largeblock4.diff.
>
> I just trid this, but when I can't load the md modules becuase of
> missing symbols for __divdi3 and __umoddi3.

I compiled md and lvm into the kernel rather than modules and got a
little futher:

* raid 0 over 4*600GB devices:
  * made filesystem
  * tried reading of the end of the device (dd skip=xx)
  all tests successful

* >1TB devices over scsi.
  * /proc/partitions report incorrect sizes
    [root@K2 /root]# cat /proc/partitions
    major minor #blocks name
       8 0 17921835 sda
       8 1 56196 sda1
       8 2 1 sda2
       8 5 13076878 sda5
       8 6 530113 sda6
       8 16 9223372035816620928 sdb
       8 32 9223372035975108096 sdc
  * mkreiserfs fails: "mkreiserfs: can not create filesystem on that
    small device (0 blocks)."
  * mkfs.xfs fails: "warning - cannot set blocksize on block device
    /dev/sdb: Invalid argument"
  I assume both mkreiserfs and mkfs.xfs use ioctl to get the size
  of the device, and that ioctl uses an unsigned int? How is
  userspace supposed to get the devicesize of >2GB devices with
  your code?
  * mkfs.ext2 makes the machine panic after a while.
    Unfortenately I don't have the panic message anymore, and at the
    moment I don't have the hardware to redo the test.
  * fdisk bails out with 'Unable to read /dev/sdb'
    Strace shows:
    open("/dev/sdb", O_RDWR) = 3
    uname({sys="Linux", node="K2.torque.com", ...}) = 0
    ioctl(3, 0x1268, 0xbffff8f4) = 0
    fstat64(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 16), ...}) = 0
    ioctl(3, BLKGETSIZE, 0xbffff924) = 0
    ioctl(3, HDIO_GETGEO, 0xbffff918) = 0
    read(3, "", 512) = 0

-- 
Ragnar Kjorstad
Big Storage
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Aug 15 2001 - 21:00:35 EST