Messages in this thread | | | Date | Wed, 13 Sep 2000 18:37:52 +0200 | From | Martin Dalecki <> | Subject | Re: elevator code |
| |
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/
| |