• Ming Lei's avatar
    block: loop: avoiding too many pending per work I/O · 4d4e41ae
    Ming Lei authored
    If there are too many pending per work I/O, too many
    high priority work thread can be generated so that
    system performance can be effected.
    
    This patch limits the max_active parameter of workqueue as 16.
    
    This patch fixes Fedora 22 live booting performance
    regression when it is booted from squashfs over dm
    based on loop, and looks the following reasons are
    related with the problem:
    
    - not like other filesyststems(such as ext4), squashfs
    is a bit special, and I observed that increasing I/O jobs
    to access file in squashfs only improve I/O performance a
    little, but it can make big difference for ext4
    
    - nested loop: both squashfs.img and ext3fs.img are mounted
    as loop block, and ext3fs.img is inside the squashfs
    
    - during booting, lots of tasks may run concurrently
    
    Fixes: b5dd2f60
    Cc: stable@vger.kernel.org (v4.0)
    Cc: Justin M. Forbes <jforbes@fedoraproject.org>
    Signed-off-by: default avatarMing Lei <ming.lei@canonical.com>
    Acked-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarJens Axboe <axboe@fb.com>
    4d4e41ae
loop.c 45.1 KB