• Gao Xiang's avatar
    erofs: complete a missing case for inplace I/O · 0b964600
    Gao Xiang authored
    Add a missing case which could cause unnecessary page allocation but
    not directly use inplace I/O instead, which increases runtime extra
    memory footprint.
    
    The detail is, considering an online file-backed page, the right half
    of the page is chosen to be cached (e.g. the end page of a readahead
    request) and some of its data doesn't exist in managed cache, so the
    pcluster will be definitely kept in the submission chain. (IOWs, it
    cannot be decompressed without I/O, e.g., due to the bypass queue).
    
    Currently, DELAYEDALLOC/TRYALLOC cases can be downgraded as NOINPLACE,
    and stop online pages from inplace I/O. After this patch, unneeded page
    allocations won't be observed in pickup_page_for_submission() then.
    
    Link: https://lore.kernel.org/r/20210321183227.5182-1-hsiangkao@aol.com
    
    Signed-off-by: default avatarGao Xiang <hsiangkao@redhat.com>
    0b964600
zdata.c 36.5 KB