diff mbox series

[v4,3/4] nfs05.sh: Lower down the default values

Message ID 20230428160038.3534905-4-pvorel@suse.cz (mailing list archive)
State New, archived
Headers show
Series NFS: test on all filesystems | expand

Commit Message

Petr Vorel April 28, 2023, 4 p.m. UTC
nfs05_make_tree.c runs make which needs on Btrfs quite a lot of
temporary space. This is a preparation for the next commit which
start using all filesystems via TST_ALL_FILESYSTEMS=1. Currently we use
300 MB, which was not enough for Btrfs:

Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/loop0     btrfs     300M   62M   20K 100% /tmp/LTP_nfs05.Vau10kcszO/mntpoint

After lowering the default values 96% (58M) is being used.

Proper solution would be to detect available size in nfs05_make_tree.c
and lower down values based on free space.

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
New in v4.

 testcases/network/nfs/nfs_stress/nfs05.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Petr Vorel April 28, 2023, 5:03 p.m. UTC | #1
Hi all,

> nfs05_make_tree.c runs make which needs on Btrfs quite a lot of
> temporary space. This is a preparation for the next commit which
> start using all filesystems via TST_ALL_FILESYSTEMS=1. Currently we use
> 300 MB, which was not enough for Btrfs:

Also, based on this detection we could add support for tst_device acquire SIZE
into tst_test.sh to support more than the default 300 MB (as we see the actual
use is obviously less for some filesystems). This would need to check size with
tst_fs_has_free.

Even we don't add this feature, it'd be more friendly to check for space
before creating the loop device:

if ! tst_fs_has_free $TST_TMPDIR 300MB; then
	tst_brkm TCONF "Insufficient disk space to create a backing file for loop device"
fi

To be honest, I'd like to merge this patchset first, the rest can wait after the
release.

Kind regards,
Petr

> Filesystem     Type      Size  Used Avail Use% Mounted on
> /dev/loop0     btrfs     300M   62M   20K 100% /tmp/LTP_nfs05.Vau10kcszO/mntpoint

> After lowering the default values 96% (58M) is being used.

> Proper solution would be to detect available size in nfs05_make_tree.c
> and lower down values based on free space.

> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> New in v4.

>  testcases/network/nfs/nfs_stress/nfs05.sh | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

> diff --git a/testcases/network/nfs/nfs_stress/nfs05.sh b/testcases/network/nfs/nfs_stress/nfs05.sh
> index c18ef1ab4..34151b67a 100755
> --- a/testcases/network/nfs/nfs_stress/nfs05.sh
> +++ b/testcases/network/nfs/nfs_stress/nfs05.sh
> @@ -8,8 +8,8 @@

>  # Created by: Robbie Williamson (robbiew@us.ibm.com)

> -DIR_NUM=${DIR_NUM:-"10"}
> -FILE_NUM=${FILE_NUM:-"30"}
> +DIR_NUM=${DIR_NUM:-"8"}
> +FILE_NUM=${FILE_NUM:-"28"}
>  THREAD_NUM=${THREAD_NUM:-"8"}
>  TST_NEEDS_CMDS="make gcc"
>  TST_TESTFUNC="do_test"
Petr Vorel May 3, 2023, 10:08 a.m. UTC | #2
Hi all,

> Hi all,

> > nfs05_make_tree.c runs make which needs on Btrfs quite a lot of
> > temporary space. This is a preparation for the next commit which
> > start using all filesystems via TST_ALL_FILESYSTEMS=1. Currently we use
> > 300 MB, which was not enough for Btrfs:

> Also, based on this detection we could add support for tst_device acquire SIZE
> into tst_test.sh to support more than the default 300 MB (as we see the actual
> use is obviously less for some filesystems). This would need to check size with
> tst_fs_has_free.

> Even we don't add this feature, it'd be more friendly to check for space
> before creating the loop device:

> if ! tst_fs_has_free $TST_TMPDIR 300MB; then
> 	tst_brkm TCONF "Insufficient disk space to create a backing file for loop device"
> fi

> To be honest, I'd like to merge this patchset first, the rest can wait after the
> release.

> Kind regards,
> Petr

> > Filesystem     Type      Size  Used Avail Use% Mounted on
> > /dev/loop0     btrfs     300M   62M   20K 100% /tmp/LTP_nfs05.Vau10kcszO/mntpoint

> > After lowering the default values 96% (58M) is being used.

> > Proper solution would be to detect available size in nfs05_make_tree.c
> > and lower down values based on free space.

> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
> > ---
> > New in v4.

> >  testcases/network/nfs/nfs_stress/nfs05.sh | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)

> > diff --git a/testcases/network/nfs/nfs_stress/nfs05.sh b/testcases/network/nfs/nfs_stress/nfs05.sh
> > index c18ef1ab4..34151b67a 100755
> > --- a/testcases/network/nfs/nfs_stress/nfs05.sh
> > +++ b/testcases/network/nfs/nfs_stress/nfs05.sh
> > @@ -8,8 +8,8 @@

> >  # Created by: Robbie Williamson (robbiew@us.ibm.com)

> > -DIR_NUM=${DIR_NUM:-"10"}
> > -FILE_NUM=${FILE_NUM:-"30"}
> > +DIR_NUM=${DIR_NUM:-"8"}
> > +FILE_NUM=${FILE_NUM:-"28"}

In the end these values are needed, when testing on systems with 64KB page size:

DIR_NUM=${DIR_NUM:-"5"}
FILE_NUM=${FILE_NUM:-"20"}
THREAD_NUM=${THREAD_NUM:-"5"}

Looking at PAGE_SIZE_LESS_THAN_256KB, CONFIG_PAGE_SIZE_LESS_THAN_256KB (option
for all archs) and checking arch dependent configs I see that there can be 4KB,
8KB, 16KB, 32KB, 64KB, 256KB (each arch allows only some of them). Also
filesystems evolve, thus finding safe value for *all* filesystems on different
page sizes on different kernel versions might be a bit complicated.

Kind regards,
Petr

> >  THREAD_NUM=${THREAD_NUM:-"8"}
> >  TST_NEEDS_CMDS="make gcc"
> >  TST_TESTFUNC="do_test"
diff mbox series

Patch

diff --git a/testcases/network/nfs/nfs_stress/nfs05.sh b/testcases/network/nfs/nfs_stress/nfs05.sh
index c18ef1ab4..34151b67a 100755
--- a/testcases/network/nfs/nfs_stress/nfs05.sh
+++ b/testcases/network/nfs/nfs_stress/nfs05.sh
@@ -8,8 +8,8 @@ 
 #
 # Created by: Robbie Williamson (robbiew@us.ibm.com)
 
-DIR_NUM=${DIR_NUM:-"10"}
-FILE_NUM=${FILE_NUM:-"30"}
+DIR_NUM=${DIR_NUM:-"8"}
+FILE_NUM=${FILE_NUM:-"28"}
 THREAD_NUM=${THREAD_NUM:-"8"}
 TST_NEEDS_CMDS="make gcc"
 TST_TESTFUNC="do_test"