• E
    net: attempt a single high order allocation · d9b2938a
    Eric Dumazet 提交于
    In commit ed98df33 ("net: use __GFP_NORETRY for high order
    allocations") we tried to address one issue caused by order-3
    allocations.
    
    We still observe high latencies and system overhead in situations where
    compaction is not successful.
    
    Instead of trying order-3, order-2, and order-1, do a single order-3
    best effort and immediately fallback to plain order-0.
    
    This mimics slub strategy to fallback to slab min order if the high
    order allocation used for performance failed.
    
    Order-3 allocations give a performance boost only if they can be done
    without recurring and expensive memory scan.
    
    Quoting David :
    
    The page allocator relies on synchronous (sync light) memory compaction
    after direct reclaim for allocations that don't retry and deferred
    compaction doesn't work with this strategy because the allocation order
    is always decreasing from the previous failed attempt.
    
    This means sync light compaction will always be encountered if memory
    cannot be defragmented or reclaimed several times during the
    skb_page_frag_refill() iteration.
    Signed-off-by: NEric Dumazet <edumazet@google.com>
    Acked-by: NDavid Rientjes <rientjes@google.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    d9b2938a
sock.c 73.5 KB