[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/41889: st(4) driver splits larger IO request into peaces - compability problem with other OS's
I haven't seen 38643 before - OK.
The problem there has the same cause.
A tape device has a little bit different semantic in reading and
writing as a "normal" block device.
Blocknumber have no meaning for a tape and a tape block is the atom
for a transfer.
Therefore a write should write exaclty one tape block - or should fail.
And a read should try to read exactly on tape block - or should fail.
A read my succeeed only if the requested size is at least the size of
the tape block.
There is absolutly no way to get only "a second" half of a tape block
from a tape.
This problem needs a fix as soon as possible!
My fix will "just" remove the silent misbehaviour for simple read and
A fix fore readv and writev is mentioned, but perhaps someone has a
better idea ..
Zitat von "David Holland" <dholland-bugs%NetBSD.org@localhost>:
The following reply was made to PR kern/41889; it has been noted by GNATS.
From: David Holland <dholland-bugs%netbsd.org@localhost>
Subject: Re: kern/41889: st(4) driver splits larger IO request into peaces
- compability problem with other OS's
Date: Sun, 16 Aug 2009 05:20:37 +0000
On Fri, Aug 14, 2009 at 11:50:00AM +0000,
> The current implementation of physio() (in kern_physio.c)
> determines the maximum possible transfer size of the underlying HW
> be fist clamping to MAXPHYS and then asking the driver for further
See also PR 38643. :-|
David A. Holland
Main Index |
Thread Index |