• Jon Paul Maloy's avatar
    tipc: limit usage of temporary skb list during packet reception · 9945e804
    Jon Paul Maloy authored
    During packet reception, the function tipc_link_rcv() adds its accepted
    packets to a temporary buffer queue, before finally splicing this queue
    into the lock protected input queue that will be delivered up to the
    socket layer. The purpose is to reduce potential contention on the input
    queue lock. However, since the vast majority of packets arrive in
    sequence, they will anyway be added one by one to the input queue, and
    the use of the temporary queue becomes a sub-optimization.
    
    The only case where this queue makes sense is when unpacking buffers
    from a bundle packet; here we want to avoid dozens of small buffers
    to be added individually to the lock-protected input queue in a tight
    loop.
    
    In this commit, we remove the general usage of the temporary queue,
    and keep it only for the packet unbundling case.
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Acked-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9945e804
link.c 50.1 KB