NetBSD-Bugs archive
[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
The following reply was made to PR kern/41889; it has been noted by GNATS.
From: Wolfgang.Stukenbrock%nagler-company.com@localhost
To: gnats-bugs%NetBSD.org@localhost, "David Holland"
<dholland-bugs%NetBSD.org@localhost>
Cc: kern-bug-people%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost,
netbsd-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 13:38:12 +0200
Hi again,
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 =20
writing as a "normal" block device.
Blocknumber have no meaning for a tape and a tape block is the atom =20
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 =20
the tape block.
There is absolutly no way to get only "a second" half of a tape block =20
from a tape.
This problem needs a fix as soon as possible!
My fix will "just" remove the silent misbehaviour for simple read and =20
write calls.
A fix fore readv and writev is mentioned, but perhaps someone has a =20
better idea ..
W. Stukenbrock
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>
> To: gnats-bugs%NetBSD.org@localhost
> Cc:
> Subject: Re: kern/41889: st(4) driver splits larger IO request into peaces
> =09- 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, =20
> Wolfgang.Stukenbrock%nagler-company.com@localhost wrote:
> > 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
> > restrictions.
>
> See also PR 38643. :-|
>
> --
> David A. Holland
> dholland%netbsd.org@localhost
>
>
Home |
Main Index |
Thread Index |
Old Index