[lkml]   [2012]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] net: orphan queued skbs if device tx can stall
    On Mon, Apr 09, 2012 at 03:33:54PM +0800, Herbert Xu wrote:
    > On Mon, Apr 09, 2012 at 10:28:49AM +0300, Michael S. Tsirkin wrote:
    > >
    > > > 1) Doesn't this break local UDP push-back?
    > >
    > > What is meant by UDP pushback here? Two tap
    > > devices communicating by UDP packets locally?
    > > This was always broken, see below.
    > I mean push-back from UDP transmission to the physical NIC.
    > Your patch breaks that

    I think there's some misunderstanding. pushback is only disabled
    for destinations that set IFF_TX_CAN_STALL. I expect that
    no physical NICs set this flag - only tun and possibly
    other userspace-controlled devices in the future.

    > as now the guest will have no push-back
    > whatsoever so anything that transmits UDP without protocol-level
    > congestion control will start dropping most of their packets.
    > Granted you can argue that these apps are broken, but they do
    > exist and we've always catered for them, both on baremetal and
    > under virtualisation.
    > > Thus we get this situation
    > > tap1 sends packets, some of them to tap2, tap2 does not consume them,
    > > as a result tap2 queue overflows, tap2 stops forever and
    > > packets get queued in the qdisc, now tap1
    > > send buffer gets full so it can not communicate to any destination.
    > >
    > > So the problem is one VM can block all networking from another one.
    > This should be addressed in the backend, as it can distinguish
    > between packets going out to physical and packets stuck going to
    > a local VM.

    Sorry I still have no clue what you call a backend.
    Could you clarify please? All packets from a tun device
    go to userspace.

    > In the latter case you can then duplicate and release
    > the sender's memory.
    > Cheers,

    The problem this patch is trying to address is tun device
    can get stopped forever, which causes packets to
    accumulate in qdisc again forever. So tun does not
    get a chance to release sender's memory for these packets.

    > --
    > Email: Herbert Xu <>
    > Home Page:
    > PGP Key:

     \ /
      Last update: 2012-04-09 10:29    [W:0.023 / U:0.956 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site