[LTP] [PATCH 1/1] zram01.sh: Workaround division by 0 on vfat on ppc64le

Richard Palethorpe rpalethorpe@suse.de
Mon Sep 18 11:38:45 CEST 2023


Hello,

Petr Vorel <pvorel@suse.cz> writes:

> Hi Li,
>
>> Hi Petr,
>
>> On Tue, Nov 8, 2022 at 3:12 AM Petr Vorel <pvorel@suse.cz> wrote:
>
>> > Repeatedly read /sys/block/zram*/mm_stat for 1 sec. This should fix bug
>> > on ppc64le on stable kernels, where mem_used_total is often 0.
>
>> > Signed-off-by: Petr Vorel <pvorel@suse.cz>
>> > ---
>> >  .../kernel/device-drivers/zram/zram01.sh      | 27 +++++++++++++++++--
>> >  1 file changed, 25 insertions(+), 2 deletions(-)
>
>> > diff --git a/testcases/kernel/device-drivers/zram/zram01.sh
>> > b/testcases/kernel/device-drivers/zram/zram01.sh
>> > index 58d233f91..76a8ccab4 100755
>> > --- a/testcases/kernel/device-drivers/zram/zram01.sh
>> > +++ b/testcases/kernel/device-drivers/zram/zram01.sh
>> > @@ -105,6 +105,26 @@ zram_mount()
>> >         tst_res TPASS "mount of zram device(s) succeeded"
>> >  }
>
>> > +read_mem_used_total()
>> > +{
>> > +       echo $(awk '{print $3}' $1)
>> > +}
>> > +
>> > +# Reads /sys/block/zram*/mm_stat until mem_used_total is not 0.
>> > +loop_read_mem_used_total()
>
>
>> This is not a looping function to check if mem_used_total is equal to zero,
>> the loop part is by means of the TST_RETRY_FUNC macro.
> Thanks for your review!
>
>> So, I'd suggest renaming it to check_read_mem_used_total().
> Agree. Unfortunately even this didn't help on ppc64le system where I was able to
> reproduce it, thus probably not worth to merge.
>
> Unfortunately later I was not able to reproduce the problem any more, I'll try
> it more this week.

I'd like to get this merged and if anyone still see's a failure, then
perhaps there really is a kernel bug or else we have to accept it is
zero sometimes.

Reviewed-by: Richard Palethorpe <rpalethorpe@suse.com>

>
> Kind regards,
> Petr
>
>> Reviewed-by: Li Wang <liwang@redhat.com>
>
>
>
>> > +{
>> > +       local file="$1"
>> > +       local mem_used_total
>> > +
>> > +       tst_res TINFO "$file"
>> > +       cat $file >&2
>> > +
>> > +       mem_used_total=$(read_mem_used_total $file)
>> > +       [ "$mem_used_total" -eq 0 ] && return 1
>> > +
>> > +       return 0
>> > +}
>> > +
>> >  zram_fill_fs()
>> >  {
>> >         local mem_used_total
>> > @@ -133,9 +153,12 @@ zram_fill_fs()
>> >                         continue
>> >                 fi
>
>> > -               mem_used_total=`awk '{print $3}'
>> > "/sys/block/zram$i/mm_stat"`
>> > +               TST_RETRY_FUNC "loop_read_mem_used_total
>> > /sys/block/zram$i/mm_stat" 0
>> > +               mem_used_total=$(read_mem_used_total
>> > /sys/block/zram$i/mm_stat)
>> > +               tst_res TINFO "mem_used_total: $mem_used_total"
>> > +
>> >                 v=$((100 * 1024 * $b / $mem_used_total))
>> > -               r=`echo "scale=2; $v / 100 " | bc`
>> > +               r=$(echo "scale=2; $v / 100 " | bc)
>
>> >                 if [ "$v" -lt 100 ]; then
>> >                         tst_res TFAIL "compression ratio: $r:1"
>> > --
>> > 2.38.0
>
>
>> > --
>> > Mailing list info: https://lists.linux.it/listinfo/ltp


-- 
Thank you,
Richard.


More information about the ltp mailing list