[lkml]   [2000]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: 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
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
- langs: de_DE.ISO8859-1, en_US, pl_PL.ISO8859-2, last ressort:
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 12:38    [W:0.127 / U:9.524 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site