• Ido Schimmel's avatar
    drop_monitor: Add packet alert mode · ca30707d
    Ido Schimmel authored
    So far drop monitor supported only one alert mode in which a summary of
    locations in which packets were recently dropped was sent to user space.
    
    This alert mode is sufficient in order to understand that packets were
    dropped, but lacks information to perform a more detailed analysis.
    
    Add a new alert mode in which the dropped packet itself is passed to
    user space along with metadata: The drop location (as program counter
    and resolved symbol), ingress netdevice and drop timestamp. More
    metadata can be added in the future.
    
    To avoid performing expensive operations in the context in which
    kfree_skb() is invoked (can be hard IRQ), the dropped skb is cloned and
    queued on per-CPU skb drop list. Then, in process context the netlink
    message is allocated, prepared and finally sent to user space.
    
    The per-CPU skb drop list is limited to 1000 skbs to prevent exhausting
    the system's memory. Subsequent patches will make this limit
    configurable and also add a counter that indicates how many skbs were
    tail dropped.
    Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ca30707d
drop_monitor.c 19.3 KB