Subject: per-device MAXBSIZE
To: None <tech-kern@NetBSD.ORG>
From: Manuel BOUYER <bouyer@antioche.lip6.fr>
List: tech-kern
Date: 12/13/1997 14:47:33
Hi,

I've played a bit with a IDE ZIP drive some time ago. I got it working,
but it seems that this thing can't handle data transfert size > 65535 bytes.
Every transferts of more than 65535 fails immediatly with "illegal request".
As a temporary workaround I decreased MAXPHYS to 32k (default is 64k on i386).

Now I've took a look a bit more deeply into this in order to find and
acceptable solution. The idea is to make the filesystems use a per-device
value instead of MAXBSIZE for the maximum transfer size (something like
*minphys() for raw IO). I think the better place for this value is in
"struct mount" (this is available on a per-mount-point basis with all vnode).
Then we could change the various filesystems, kern/vfs_cluster.c and
vm/vnode_pager.c to use this value instead of MAXBSIZE where usefull.
The only problem I can see with this is that all disks drivers need to be
touched to provide this value (which is a very minor one) ...

Any comments ?

PS: does someone know how to acceed device-specific datas from the *_mount
functions ?

--
Manuel Bouyer, LIP6, Universite Paris VI.           Manuel.Bouyer@lip6.fr
--