lkml.org 
[lkml]   [2012]   [Jan]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 0/6][RFC] virtio-blk: Change I/O path from request to BIO
    From
    On Thu, Dec 22, 2011 at 11:41 PM, Minchan Kim <minchan@kernel.org> wrote:
    > On Thu, Dec 22, 2011 at 12:57:40PM +0000, Stefan Hajnoczi wrote:
    >> On Wed, Dec 21, 2011 at 1:00 AM, Minchan Kim <minchan@kernel.org> wrote:
    >> If you're stumped by the performance perhaps compare blktraces of the
    >> request approach vs the bio approach.  We're probably performing I/O
    >> more CPU-efficiently but the I/O pattern itself is worse.
    >
    > You mean I/O scheduler have many techniques to do well in I/O pattern?
    > That's what I want to discuss in this RFC.
    >
    > I guess request layer have many techniques proved during long time
    > to do well I/O but BIO-based drvier ignores them for just reducing locking
    > overhead. Of course, we can add such techniques to BIO-batch driver like
    > custom-batch in this series. But it needs lots of work, is really duplication,
    > and will have a problem on maintenance.
    >
    > I would like to listen opinions whether this direction is good or bad.

    This series is a good platform for performance analysis but not
    something that should be merged IMO. As you said it duplicates work
    that I/O schedulers and the request-based block layer do. If other
    drivers start taking this approach too then the duplication will be
    proliferated.

    The value of this series is that you have a prototype to benchmark and
    understand the bottlenecks in virtio-blk and the block layer better.
    The results do not should that bypassing the I/O scheduler is always a
    win. The fact that you added batching suggests there is some benefit
    to what the request-based code path does. So find out what's good
    about the request-based code path and how to get the best of both
    worlds.

    By the way, drivers for solid-state devices can set QUEUE_FLAG_NONROT
    to hint that seek time optimizations may be sub-optimal. NBD and
    other virtual/pseudo device drivers set this flag. Should virtio-blk
    set it and how does it affect performance?

    Stefan
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2012-01-01 17:49    [W:4.574 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site