Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jan 1998 11:01:55 -0500 (EST)
From:      "John S. Dyson" <toor@dyson.iquest.net>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        bde@zeta.org.au, mike@smith.net.au, cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, cvs-sys@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/i386/isa wfd.c
Message-ID:  <199801291601.LAA03425@dyson.iquest.net>
In-Reply-To: <199801291544.CAA01875@godzilla.zeta.org.au> from Bruce Evans at "Jan 30, 98 02:44:28 am"

next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans said:
> >> >> Only for raw i/o.  bread() and bwrite() don't even look at b_resid.
> >> >
> >> >Then it strikes me that you're suggesting a non-solution.  Any other 
> >> >ideas?
> >> 
> >> It's good enough for SCSI drivers.
> >
> >You just previously said that it wasn't adequate.  Please make up your 
> >mind. 8)
> 
> I already did.  It's buggy and inadequate, but good enough for SCSI
> drivers.  There's no point in making it work right in only one floppy
> driver.  You lose only support for filesystem block sizes > 32K and
> <= 64K.
> 
> >So far you have suggested that I should do the second, because that's 
> >what SCSI adapters do, even though they never do because they can all 
> >handle MAXPHYS-sized transfers, and not all the calling code will 
> >honour the returned value in b_resid.
> 
> Some of them can only can only handle 16 scatter-gather segments, so
> they can only handle transfer sizes <= 64K, which is currently MAXPHYS/2.
> They are never asked to handle > 64K because filesystem block sizes are
> limited to MAXBSIZE = 64K and raw i/o sizes are limited to DFLTPHYS = 64K.
> 
I know that this isn't the immediate subject of discussion, but wanted to
clarify my position on d_maxio.  We desperately need the mechanism, but it
isn't complete as implemented.

I don't know if the discussions between Justin and I were public or private,
but I have admitted that the addition of d_maxio as a single scalar was
inadequate.  If the driver writers start using it, I'll be glad to do the
port to change things to a function interface when time has come.  The thing
that is stopping me from doing it correctly right now is a severe time
constraint.  If someone wants to do the d_maxio correctly right now, I
say go for it!!! :-).  The changes aren't complex or substantial, but will
require more thought than I have put into it.

-- 
John                  | Never try to teach a pig to sing,
dyson@freebsd.org     | it just makes you look stupid,
jdyson@nc.com         | and it irritates the pig.



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