lkml.org 
[lkml]   [2012]   [Oct]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 2/3] virtio-net: correct capacity math on ring full
    Date
    "Michael S. Tsirkin" <mst@redhat.com> writes:
    > Capacity math on ring full is wrong: we are
    > looking at num_sg but that might be optimistic
    > because of indirect buffer use.
    >
    > The implementation also penalizes fast path
    > with extra memory accesses for the benefit of
    > ring full condition handling which is slow path.
    >
    > It's easy to query ring capacity so let's do just that.

    This path will reduce the actual queue use to worst-case assumptions.
    With bufferbloat maybe that's a good thing, but it's true.

    If we do this, the code is now wrong:

    /* This can happen with OOM and indirect buffers. */
    if (unlikely(capacity < 0)) {

    Because this should now *never* happen.

    But I do like the cleanup; returning capacity from add_buf() was always
    hacky. I've got an idea, we'll see what it looks like...

    Cheers,
    Rusty.


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