* [PATCH 0/2] fstests: refine filesystem module reload handling [not found] <cover.1731076425.git.anand.jain@oracle.com> @ 2024-11-15 15:20 ` Anand Jain 2024-11-15 15:20 ` [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function Anand Jain 2024-11-15 15:20 ` [PATCH 2/2] fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options Anand Jain 0 siblings, 2 replies; 7+ messages in thread From: Anand Jain @ 2024-11-15 15:20 UTC (permalink / raw) To: fstests; +Cc: linux-btrfs These changes refine module reload control in testing. Patch 1 reloads the module earlier in run_section, ensuring each section's first test starts with a reloaded module. Patch 2 adds FS_MODULE_RELOAD_OPTIONS to pass module options during reload, useful for the Btrfs pre-mount configurations that aren’t available as mount options. Anand Jain (2): fstests: move fs-module reload to earlier in the run_section function fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options check | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) -- 2.46.1 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function 2024-11-15 15:20 ` [PATCH 0/2] fstests: refine filesystem module reload handling Anand Jain @ 2024-11-15 15:20 ` Anand Jain 2024-11-15 16:39 ` Darrick J. Wong 2024-11-15 16:48 ` Filipe Manana 2024-11-15 15:20 ` [PATCH 2/2] fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options Anand Jain 1 sibling, 2 replies; 7+ messages in thread From: Anand Jain @ 2024-11-15 15:20 UTC (permalink / raw) To: fstests; +Cc: linux-btrfs Reload the module before each test, instead of later in run_section. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- check | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/check b/check index 9222cd7e4f81..d8ee73f48c77 100755 --- a/check +++ b/check @@ -935,6 +935,15 @@ function run_section() continue fi + # Reload the module after each test to check for leaks or + # other problems. + if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then + _test_unmount 2> /dev/null + _scratch_unmount 2> /dev/null + modprobe -r fs-$FSTYP + modprobe fs-$FSTYP + fi + # record that we really tried to run this test. if ((!${#loop_status[*]})); then try+=("$seqnum") @@ -1033,15 +1042,6 @@ function run_section() done fi - # Reload the module after each test to check for leaks or - # other problems. - if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then - _test_unmount 2> /dev/null - _scratch_unmount 2> /dev/null - modprobe -r fs-$FSTYP - modprobe fs-$FSTYP - fi - # Scan for memory leaks after every test so that associating # a leak to a particular test will be as accurate as possible. _check_kmemleak || tc_status="fail" -- 2.46.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function 2024-11-15 15:20 ` [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function Anand Jain @ 2024-11-15 16:39 ` Darrick J. Wong 2024-11-18 0:12 ` Anand Jain 2024-11-15 16:48 ` Filipe Manana 1 sibling, 1 reply; 7+ messages in thread From: Darrick J. Wong @ 2024-11-15 16:39 UTC (permalink / raw) To: Anand Jain; +Cc: fstests, linux-btrfs On Fri, Nov 15, 2024 at 11:20:51PM +0800, Anand Jain wrote: > Reload the module before each test, instead of later in run_section. > > Signed-off-by: Anand Jain <anand.jain@oracle.com> > --- > check | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/check b/check > index 9222cd7e4f81..d8ee73f48c77 100755 > --- a/check > +++ b/check > @@ -935,6 +935,15 @@ function run_section() > continue > fi > > + # Reload the module after each test to check for leaks or > + # other problems. Hrmm. The nice thing about doing the reload /after/ each test is that unloading the module will purge any per-fs slab caches that the module creates. The slab teardown logs any forgotten objects while $seq still points to the test that leaked those objects. Granted it's not a 100% solution (that job falls to kmemcheck) but it's a cheap check. This change makes it so that if test N leaks something, fstests reports them for test N+1. --D > + if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then > + _test_unmount 2> /dev/null > + _scratch_unmount 2> /dev/null > + modprobe -r fs-$FSTYP > + modprobe fs-$FSTYP > + fi > + > # record that we really tried to run this test. > if ((!${#loop_status[*]})); then > try+=("$seqnum") > @@ -1033,15 +1042,6 @@ function run_section() > done > fi > > - # Reload the module after each test to check for leaks or > - # other problems. > - if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then > - _test_unmount 2> /dev/null > - _scratch_unmount 2> /dev/null > - modprobe -r fs-$FSTYP > - modprobe fs-$FSTYP > - fi > - > # Scan for memory leaks after every test so that associating > # a leak to a particular test will be as accurate as possible. > _check_kmemleak || tc_status="fail" > -- > 2.46.1 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function 2024-11-15 16:39 ` Darrick J. Wong @ 2024-11-18 0:12 ` Anand Jain 0 siblings, 0 replies; 7+ messages in thread From: Anand Jain @ 2024-11-18 0:12 UTC (permalink / raw) To: Darrick J. Wong; +Cc: fstests, linux-btrfs On 16/11/24 00:39, Darrick J. Wong wrote: > On Fri, Nov 15, 2024 at 11:20:51PM +0800, Anand Jain wrote: >> Reload the module before each test, instead of later in run_section. >> >> Signed-off-by: Anand Jain <anand.jain@oracle.com> >> --- >> check | 18 +++++++++--------- >> 1 file changed, 9 insertions(+), 9 deletions(-) >> >> diff --git a/check b/check >> index 9222cd7e4f81..d8ee73f48c77 100755 >> --- a/check >> +++ b/check >> @@ -935,6 +935,15 @@ function run_section() >> continue >> fi >> >> + # Reload the module after each test to check for leaks or >> + # other problems. > > Hrmm. The nice thing about doing the reload /after/ each test is that > unloading the module will purge any per-fs slab caches that the module > creates. The slab teardown logs any forgotten objects while $seq still > points to the test that leaked those objects. Granted it's not a 100% > solution (that job falls to kmemcheck) but it's a cheap check. > > This change makes it so that if test N leaks something, fstests reports > them for test N+1. > Agreed. It's better to report the issue at test N. I'll add this comment to the code in v2. Thanks! Anand > --D > >> + if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then >> + _test_unmount 2> /dev/null >> + _scratch_unmount 2> /dev/null >> + modprobe -r fs-$FSTYP >> + modprobe fs-$FSTYP >> + fi >> + >> # record that we really tried to run this test. >> if ((!${#loop_status[*]})); then >> try+=("$seqnum") >> @@ -1033,15 +1042,6 @@ function run_section() >> done >> fi >> >> - # Reload the module after each test to check for leaks or >> - # other problems. >> - if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then >> - _test_unmount 2> /dev/null >> - _scratch_unmount 2> /dev/null >> - modprobe -r fs-$FSTYP >> - modprobe fs-$FSTYP >> - fi >> - >> # Scan for memory leaks after every test so that associating >> # a leak to a particular test will be as accurate as possible. >> _check_kmemleak || tc_status="fail" >> -- >> 2.46.1 >> >> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function 2024-11-15 15:20 ` [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function Anand Jain 2024-11-15 16:39 ` Darrick J. Wong @ 2024-11-15 16:48 ` Filipe Manana 1 sibling, 0 replies; 7+ messages in thread From: Filipe Manana @ 2024-11-15 16:48 UTC (permalink / raw) To: Anand Jain; +Cc: fstests, linux-btrfs On Fri, Nov 15, 2024 at 3:22 PM Anand Jain <anand.jain@oracle.com> wrote: > > Reload the module before each test, instead of later in run_section. Why? The change log should give a justification for the change. It's just stating what the code changes are doing but without any reasoning. Thanks. > > Signed-off-by: Anand Jain <anand.jain@oracle.com> > --- > check | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/check b/check > index 9222cd7e4f81..d8ee73f48c77 100755 > --- a/check > +++ b/check > @@ -935,6 +935,15 @@ function run_section() > continue > fi > > + # Reload the module after each test to check for leaks or > + # other problems. > + if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then > + _test_unmount 2> /dev/null > + _scratch_unmount 2> /dev/null > + modprobe -r fs-$FSTYP > + modprobe fs-$FSTYP > + fi > + > # record that we really tried to run this test. > if ((!${#loop_status[*]})); then > try+=("$seqnum") > @@ -1033,15 +1042,6 @@ function run_section() > done > fi > > - # Reload the module after each test to check for leaks or > - # other problems. > - if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then > - _test_unmount 2> /dev/null > - _scratch_unmount 2> /dev/null > - modprobe -r fs-$FSTYP > - modprobe fs-$FSTYP > - fi > - > # Scan for memory leaks after every test so that associating > # a leak to a particular test will be as accurate as possible. > _check_kmemleak || tc_status="fail" > -- > 2.46.1 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 2/2] fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options 2024-11-15 15:20 ` [PATCH 0/2] fstests: refine filesystem module reload handling Anand Jain 2024-11-15 15:20 ` [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function Anand Jain @ 2024-11-15 15:20 ` Anand Jain 2024-11-15 16:34 ` Darrick J. Wong 1 sibling, 1 reply; 7+ messages in thread From: Anand Jain @ 2024-11-15 15:20 UTC (permalink / raw) To: fstests; +Cc: linux-btrfs Extend module reload logic to allow passing additional options via `FS_MODULE_RELOAD_OPTIONS`. This enhancement enables more flexible configuration during module reloads, which can be useful for testing specific module parameters. Maintains existing behavior for `TEST_FS_MODULE_RELOAD`. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- check | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/check b/check index d8ee73f48c77..ced86466a4bb 100755 --- a/check +++ b/check @@ -937,11 +937,12 @@ function run_section() # Reload the module after each test to check for leaks or # other problems. - if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then + if [[ -n "${TEST_FS_MODULE_RELOAD}" || + -n "${FS_MODULE_RELOAD_OPTIONS}" ]]; then _test_unmount 2> /dev/null _scratch_unmount 2> /dev/null modprobe -r fs-$FSTYP - modprobe fs-$FSTYP + modprobe fs-$FSTYP ${FS_MODULE_RELOAD_OPTIONS} fi # record that we really tried to run this test. -- 2.46.1 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options 2024-11-15 15:20 ` [PATCH 2/2] fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options Anand Jain @ 2024-11-15 16:34 ` Darrick J. Wong 0 siblings, 0 replies; 7+ messages in thread From: Darrick J. Wong @ 2024-11-15 16:34 UTC (permalink / raw) To: Anand Jain; +Cc: fstests, linux-btrfs On Fri, Nov 15, 2024 at 11:20:52PM +0800, Anand Jain wrote: > Extend module reload logic to allow passing additional options via > `FS_MODULE_RELOAD_OPTIONS`. This enhancement enables more flexible > configuration during module reloads, which can be useful for testing > specific module parameters. You might want to document the existence of this knob in the README. > Maintains existing behavior for `TEST_FS_MODULE_RELOAD`. > > Signed-off-by: Anand Jain <anand.jain@oracle.com> > --- > check | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/check b/check > index d8ee73f48c77..ced86466a4bb 100755 > --- a/check > +++ b/check > @@ -937,11 +937,12 @@ function run_section() > > # Reload the module after each test to check for leaks or > # other problems. > - if [ -n "${TEST_FS_MODULE_RELOAD}" ]; then > + if [[ -n "${TEST_FS_MODULE_RELOAD}" || > + -n "${FS_MODULE_RELOAD_OPTIONS}" ]]; then > _test_unmount 2> /dev/null > _scratch_unmount 2> /dev/null > modprobe -r fs-$FSTYP > - modprobe fs-$FSTYP > + modprobe fs-$FSTYP ${FS_MODULE_RELOAD_OPTIONS} What happens if the test itself decides to reload the $FSTYP module? Do you want these options to propagate to those reloadings as well? AFAICT there are some btrfs/ group tests that do such things. (Perhaps you'd be better off injecting FS_MODULE_RELOAD_OPTIONS into /etc/modprobe.d/<somefile> to catch all these cases?) --D > fi > > # record that we really tried to run this test. > -- > 2.46.1 > > ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-11-18 0:12 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1731076425.git.anand.jain@oracle.com>
2024-11-15 15:20 ` [PATCH 0/2] fstests: refine filesystem module reload handling Anand Jain
2024-11-15 15:20 ` [PATCH 1/2] fstests: move fs-module reload to earlier in the run_section function Anand Jain
2024-11-15 16:39 ` Darrick J. Wong
2024-11-18 0:12 ` Anand Jain
2024-11-15 16:48 ` Filipe Manana
2024-11-15 15:20 ` [PATCH 2/2] fstests: FS_MODULE_RELOAD_OPTIONS to control filesystem module reload options Anand Jain
2024-11-15 16:34 ` Darrick J. Wong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox