• Yafang Shao's avatar
    net: introduce a new tracepoint for tcp_rcv_space_adjust · 6163849d
    Yafang Shao authored
    tcp_rcv_space_adjust is called every time data is copied to user space,
    introducing a tcp tracepoint for which could show us when the packet is
    copied to user.
    
    When a tcp packet arrives, tcp_rcv_established() will be called and with
    the existed tracepoint tcp_probe we could get the time when this packet
    arrives.
    Then this packet will be copied to user, and tcp_rcv_space_adjust will
    be called and with this new introduced tracepoint we could get the time
    when this packet is copied to user.
    With these two tracepoints, we could figure out whether the user program
    processes this packet immediately or there's latency.
    
    Hence in the printk message, sk_cookie is printed as a key to relate
    tcp_rcv_space_adjust with tcp_probe.
    
    Maybe we could export sockfd in this new tracepoint as well, then we
    could relate this new tracepoint with epoll/read/recv* tracepoints, and
    finally that could show us the whole lifespan of this packet. But we
    could also implement that with pid as these functions are executed in
    process context.
    Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6163849d
tcp_input.c 182 KB