On Thu, 8 Jun 2000, Chaitanya Tumuluri wrote:
|>On Thu, 08 Jun 2000 10:25:36 PDT, "Matt D. Robinson" <yakker@xxxxxxxxxxxxxx>
wrote:
|>>On Fri, 26 May 2000, Chaitanya Tumuluri wrote:
|>>|>Hey Matt! What kind of problems and which kernel are you talking
|>>|>about? D'ju have any particular testcase I could use?
|>>
|>>I got it to work ... the deal is not to use map_kernel_kiobuf() for
|>>the stuff I'm doing. It's better just to do something like:
|>
|>Cool. Thats good to know. What was the problem you had with
|>map_kernel_kiobuf() anyways?
Still looking at that ... you'd think that it would have been fine,
but I think it was how the maplist[] was getting setup. I haven't
looked enough to know for sure, but I know there were a lot of things
I didn't have to do which map_kernel_kiobuf() did.
|>Question: Do you take care not to alloc from highmem, to avoid
|> bouncing?
Given that we allocate currently from setup_arch(), I don't think
there's a problem (since we only allocate once), but if I modularize
things, you're right, that'll have to change. I know that's something
that map_kernel_kiobuf() takes care of.
Again, right now, I'm just getting things to work. :)
|>> /* do brw_kiovec on the kiobuf here */
|>
|>Why brw_kiovec? That would send you into the buffer-head path and slow
|>you down by as much as 40%. Why not the rawio path (i.e. try_kiobuf_io()
|>in drivers/char/raw.c)?
Because of ...
/*
* Only support SCSI disk for now.
*
* ENOSYS to indicate caller
* should try ll_rw_block()
* for non-SCSI (e.g. IDE) disks
* and for MD requests.
*/
if (!SCSI_DISK_MAJOR(MAJOR(dev)) ||
(MAJOR(dev) == MD_MAJOR)) {
*error = -ENOSYS;
goto end_io;
}
I'd love to use it if it supported IDE.
|>Cheers,
|>-Chait.
Later, good to hear from you! :)
--Matt
|