Re: elevator code

From: Martin Dalecki (dalecki@evision-ventures.com)
Date: Wed Sep 13 2000 - 11:37:52 EST


Andrea Arcangeli wrote:
>
> On Wed, 13 Sep 2000, Martin Dalecki wrote:
>
> >"Jeff V. Merkey" wrote:
> >
> >> lessons learned in live customer accounts. In NetWare, requests are
> >> merged at A) the boundry between the File Cache and the I/O subsystem,
> >> and B) in the drivers themselves and NOT THE ELEVATOR.
> >
> >Yes that's the proper place to do this. The generic elevator on a
>
> Jens is taking care of A) using kiobufs. We can't achieve A right now
> because the I/O entity is 4k sized at max. That limitation is well known
> and it cames from the old days and it's not a trivial one to address. It's
> not a VM page-cache limitation but a blkdev API one. I agree it's silly to
> split the big chunks in little bh and then re-merge them in one single
> request later as we have to do.
>
> >*single* queue
> >makes not much sense. Once ago I have just disabled it entierly and on a
>
> About B) I can' believe you seriously want to duplicate the merging code
> in each lowlevel driver given most of them could share the same code (as
> they're doing in linux).

Yes seriously I would like to see it duplicated there. Becouse on this
level it would be *far* simpler then on the generic level. And for
a noabnormal configuration I guess the overall code size would
be smaller then the generic aproach. Typically you just don't
have that many *different* devices in your system: Either IDE or SCSI
that's
all. (OK that's just guessing...)

> For the special ones you can just now use your own lowlevel driver
> elevator/mergingcode/queuelength by intializing the callbacks
> appropriately during driver intialization (NOTE: this is a new feature in
> 2.4.x!)

Could you do me the favour and just tell me inside which struct they
are exactly? I would love it to try an elimination of the generic code
on my system at home ;-).

> I guess Netware doesn't have 402789 lines of blockdevice device drivers so
> probably not doing code sharing properly is less an issue there. This is
> just a guess, I may be wrong (in this case you should correct me, thanks).
>
> andrea@athlon:~ > wc -l kernel/devel/2.4.0-test8/drivers/block/* kernel/devel/2.4.0-test8/drivers/ide/* kernel/devel/2.4.0-test8/drivers/i2o/* kernel/devel/2.4.0-test8/drivers/scsi/* kernel/devel/2.4.0-test8/drivers/block/paride/* kernel/devel/2.4.0-test8/drivers/scsi/aic7xxx/* kernel/devel/2.4.0-test8/drivers/scsi/pcmcia/*| tail -1
> wc: kernel/devel/2.4.0-test8/drivers/block/paride: Is a directory
> wc: kernel/devel/2.4.0-test8/drivers/scsi/aic7xxx: Is a directory
> wc: kernel/devel/2.4.0-test8/drivers/scsi/pcmcia: Is a directory
> 402789 total
>
> Andrea

-- 
- phone: +49 214 8656 283
- job:   STOCK-WORLD Media AG, LEV .de (MY OPPINNIONS ARE MY OWN!)
- langs: de_DE.ISO8859-1, en_US, pl_PL.ISO8859-2, last ressort:
ru_RU.KOI8-R
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:21 EST