• Juergen Gross's avatar
    xen/netback: don't queue unlimited number of packages · be81992f
    Juergen Gross authored
    In case a guest isn't consuming incoming network traffic as fast as it
    is coming in, xen-netback is buffering network packages in unlimited
    numbers today. This can result in host OOM situations.
    
    Commit f48da8b1 ("xen-netback: fix unlimited guest Rx internal
    queue and carrier flapping") meant to introduce a mechanism to limit
    the amount of buffered data by stopping the Tx queue when reaching the
    data limit, but this doesn't work for cases like UDP.
    
    When hitting the limit don't queue further SKBs, but drop them instead.
    In order to be able to tell Rx packages have been dropped increment the
    rx_dropped statistics counter in this case.
    
    It should be noted that the old solution to continue queueing SKBs had
    the additional problem of an overflow of the 32-bit rx_queue_len value
    would result in intermittent Tx queue enabling.
    
    This is part of XSA-392
    
    Fixes: f48da8b1
    
     ("xen-netback: fix unlimited guest Rx internal queue and carrier flapping")
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    Reviewed-by: default avatarJan Beulich <jbeulich@suse.com>
    be81992f
rx.c 16.4 KB