Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jun 1996 22:48:51 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        gwk@cray.com, j@uriah.heep.sax.de
Cc:        bde@zeta.org.au, freebsd-bugs@freefall.freebsd.org, gpalmer@FreeBSD.org
Subject:   Re: bin/1320: dump limits blocksize to 32K
Message-ID:  <199606191248.WAA16277@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> a) If physio() is broken for sizes > 64 kB, why doesn't the kernel
>>    return an error to the user if physio gets an I/O request > 64 kB?

>It splits the request into 64 KB chunks, so it can handle them.  This
>works mostly except for tapes, which are IMHO the only devices that
>might require a physical blocksize larger than 64 KB

physio() needs to have a no-split flag that would be set by the tape
drivers.

>(raw SCSI
>commands like WRITE BUFFER suffer from it as well).

scsistrategy() has defense against splitting.  It refuses to continue if
the i/o size isn't the same as the original.  st_strategy() might be able
to use the same hack.  It's not so easy since the original i/o size is in
the uio struct and there may be multiple uio elements.  Vectors of length
1 could probably be handled easily.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606191248.WAA16277>