[lkml]   [2009]   [Jan]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] tcp: splice as many packets as possible at once
    From: Eric Dumazet <>
    Date: Fri, 09 Jan 2009 16:42:44 +0100

    > David, if you referred to code at line 1374 of net/ipv4/tcp.c, I
    > believe there is no issue with it. We really want to break from this
    > loop if !timeo .

    Correct, I agree, and I gave some detailed analysis of this in
    another response :-)

    > Willy patch makes splice() behaving like tcp_recvmsg(), but we might call
    > tcp_cleanup_rbuf() several times, with copied=1460 (for each frame processed)

    "Like", sure, but not the same since splice() lacks the low-water
    and backlog checks.

    > I wonder if the right fix should be done in tcp_read_sock() : this is the
    > one who should eat several skbs IMHO, if we want optimal ACK generation.
    > We break out of its loop at line 1246
    > if (!desc->count) /* this test is always true */
    > break;
    > (__tcp_splice_read() set count to 0, right before calling tcp_read_sock())
    > So code at line 1246 (tcp_read_sock()) seems wrong, or pessimistic at least.

    Yes, that's very odd.

     \ /
      Last update: 2009-01-14 00:33    [W:0.023 / U:94.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site