• E
    iov_iter: optimize page_copy_sane() · 627bb2d9
    Eric Dumazet 提交于
    commit 6daef95b8c914866a46247232a048447fff97279 upstream.
    
    Avoid cache line miss dereferencing struct page if we can.
    
    page_copy_sane() mostly deals with order-0 pages.
    
    Extra cache line miss is visible on TCP recvmsg() calls dealing
    with GRO packets (typically 45 page frags are attached to one skb).
    
    Bringing the 45 struct pages into cpu cache while copying the data
    is not free, since the freeing of the skb (and associated
    page frags put_page()) can happen after cache lines have been evicted.
    Signed-off-by: NEric Dumazet <edumazet@google.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
    Cc: Matthew Wilcox <willy@infradead.org>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    627bb2d9
iov_iter.c 38.2 KB