• S
    GFS2: Remove a __GFP_NOFAIL allocation · 75ca61c1
    Steven Whitehouse 提交于
    In order to ensure that we've got enough buffer heads for flushing
    the journal, the orignal code used __GFP_NOFAIL when performing
    this allocation. Here we dispense with that in favour of using a
    mempool. This should improve efficiency in low memory conditions
    since flushing the journal is a good way to get memory back, we
    don't want to be spinning, waiting on memory allocations. The
    buffers which are allocated via this mempool are fairly short lived,
    so that we'll recycle them pretty quickly.
    
    Although there are other memory allocations which occur during the
    journal flush process, this is the one which can potentially require
    the most memory, so the most important one to fix.
    
    The amount of memory reserved is a fixed amount, and we should not need
    to scale it when there are a greater number of filesystems in use.
    Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
    75ca61c1
lops.c 21.6 KB