rawio
[Top] [All Lists]

Re: Raw I/O enhancements for 2.3.99.pre9-2 kernels.

To: Chaitanya Tumuluri <chait@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: Raw I/O enhancements for 2.3.99.pre9-2 kernels.
From: "Matt D. Robinson" <yakker@xxxxxxxxxxxxxx>
Date: Thu, 8 Jun 2000 14:28:11 -0700 (PDT)
Cc: rawio@xxxxxxxxxxx
In-reply-to: <200006081745.KAA09450@getafix.engr.sgi.com>
Sender: owner-rawio@xxxxxxxxxxx
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


<Prev in Thread] Current Thread [Next in Thread>