• A
    net-zerocopy: Refactor skb frag fast-forward op. · 7fba5309
    Arjun Roy 提交于
    Refactor skb frag fast-forwarding for tcp receive zerocopy. This is
    part of a patch set that introduces short-circuited hybrid copies
    for small receive operations, which results in roughly 33% fewer
    syscalls for small RPC scenarios.
    
    skb_advance_to_frag(), given a skb and an offset into the skb,
    iterates from the first frag for the skb until we're at the frag
    specified by the offset. Assuming the offset provided refers to how
    many bytes in the skb are already read, the returned frag points to
    the next frag we may read from, while offset_frag is set to the number
    of bytes from this frag that we have already read.
    
    If frag is not null and offset_frag is equal to 0, then we may be able
    to map this frag's page into the process address space with
    vm_insert_page(). However, if offset_frag is not equal to 0, then we
    cannot do so.
    Signed-off-by: NArjun Roy <arjunroy@google.com>
    Signed-off-by: NEric Dumazet <edumazet@google.com>
    Signed-off-by: NSoheil Hassas Yeganeh <soheil@google.com>
    Signed-off-by: NJakub Kicinski <kuba@kernel.org>
    7fba5309
tcp.c 111.7 KB