lkml.org 
[lkml]   [2024]   [Apr]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH v4 05/11] mm: do not split a folio if it has minimum folio order requirement
    On Thu, Apr 25, 2024 at 09:10:16PM +0100, Matthew Wilcox wrote:
    > On Thu, Apr 25, 2024 at 01:37:40PM +0200, Pankaj Raghav (Samsung) wrote:
    > > From: Pankaj Raghav <p.raghav@samsung.com>
    > >
    > > Splitting a larger folio with a base order is supported using
    > > split_huge_page_to_list_to_order() API. However, using that API for LBS
    > > is resulting in an NULL ptr dereference error in the writeback path [1].
    > >
    > > Refuse to split a folio if it has minimum folio order requirement until
    > > we can start using split_huge_page_to_list_to_order() API. Splitting the
    > > folio can be added as a later optimization.
    > >
    > > [1] https://gist.github.com/mcgrof/d12f586ec6ebe32b2472b5d634c397df
    >
    > Obviously this has to be tracked down and fixed before this patchset can
    > be merged ... I think I have some ideas. Let me look a bit. How
    > would I go about reproducing this?

    Using kdevops this is easy:

    make defconfig-lbs-xfs-small -j $(nproc)
    make -j $(nproc)
    make fstests
    make linux
    make fstests-baseline TESTS=generic/447 COUNT=10
    tail -f

    guestfs/*-xfs-reflink-16k-4ks/console.log
    or
    sudo virsh list
    sudo virsh console ${foo}-xfs-reflink-16k-4ks

    Where $foo is the value of CONFIG_KDEVOPS_HOSTS_PREFIX in .config for
    your kdevops run.

    Otherwise if you wanna run things manually the above uses an lbs branch
    called large-block-minorder on kdevops [0] based on v6.9-rc5 with:

    a) Fixes we know we need
    b) this patch series minus this patch
    c) A truncation enablement patch

    Note that the above also uses an fstests git tree with the fstests
    changes we also have posted as fixes and some new tests which have been
    posted [1]. You will then want to run:

    /check -s xfs_reflink_16k_4ks -I 10 generic/447

    The configuration for xfs_reflink_16k_4ks follows:

    cat /var/lib/xfstests/configs/min-xfs-reflink-16k-4ks.config

    [default]
    FSTYP=xfs
    TEST_DIR=/media/test
    SCRATCH_MNT=/media/scratch
    RESULT_BASE=$PWD/results/$HOST/$(uname -r)
    DUMP_CORRUPT_FS=1
    CANON_DEVS=yes
    RECREATE_TEST_DEV=true
    SOAK_DURATION=9900

    [xfs_reflink_16k_4ks]
    TEST_DEV=/dev/loop16
    SCRATCH_DEV_POOL="/dev/loop5 /dev/loop6 /dev/loop7 /dev/loop8 /dev/loop9 /dev/loop10 /dev/loop11 /dev/loop12"
    MKFS_OPTIONS='-f -m reflink=1,rmapbt=1, -i sparse=1, -b size=16384, -s size=4k'
    USE_EXTERNAL=no
    LOGWRITES_DEV=/dev/loop15

    I didn't have time to verify if the above commands for kdevops worked but... in
    theory its possible it may, because you know, May is right around the
    corner, and May... the force be with us.

    [0] https://github.com/linux-kdevops/linux/tree/large-block-minorder
    [1] https://github.com/linux-kdevops/fstests

    Luis

    \
     
     \ /
      Last update: 2024-04-26 02:47    [W:2.094 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site