• Paolo Abeni's avatar
    net: try to avoid unneeded backlog flush · 2de79ee2
    Paolo Abeni authored
    flush_all_backlogs() may cause deadlock on systems
    running processes with FIFO scheduling policy.
    
    The above is critical in -RT scenarios, where user-space
    specifically ensure no network activity is scheduled on
    the CPU running the mentioned FIFO process, but still get
    stuck.
    
    This commit tries to address the problem checking the
    backlog status on the remote CPUs before scheduling the
    flush operation. If the backlog is empty, we can skip it.
    
    v1 -> v2:
     - explicitly clear flushed cpu mask - Eric
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2de79ee2
dev.c 275 KB