[LTP] [PATCH v4 2/4] zram/zram_lib.sh: adapt the situation that zram device is being used
Petr Vorel
pvorel@suse.cz
Fri Dec 17 11:34:46 CET 2021
Hi Xu,
> >> If zram-generator package is installed and works, then we can not remove zram module
> >> because zram swap is being used. This case needs a clean zram environment, change this
> >> test by using hot_add/hot_remove interface[1]. So even zram device is being used, we
> >> still can add zram device and remove them in cleanup.
> > BTW this was added in v4.2-rc1 (6 years ago, 6566d1a32bf7 ("zram: add dynamic
> > device add/remove functionality")). Hopefully anybody still supporting older
> > kernels is using old LTP for it.
> Oh, I don't realize it before. I tested it on centos7 then I think this
> control interface maybe introduced long time ago.
> To be honst, I don't want to make this case more complex. How about
> adding /sys/class/zram-control check after load zram module. If not,
> just report case needs to use hot_add/hot_remove interface .
Would it work something like this?
ZRAM_SYSCTL_KERNEL_VERSION="4.2"
...
zram_cleanup()
{
...
if tst_kvcmp -lt $ZRAM_SYSCTL_KERNEL_VERSION; then
for i in $(seq $dev_start $dev_end); do
echo $i > /sys/class/zram-control/hot_remove
done
fi
zram_load()
{
...
if [ ! -d "/sys/class/zram-control" ]; then
modprobe zram num_devices=$dev_num
module_load=1
dev_start=0
dev_end=$(($dev_num - 1))
tst_res TPASS "all zram devices(/dev/zram0~$dev_end) successfully created"
return
fi
tst_kvcmp -lt $ZRAM_SYSCTL_KERNEL_VERSION && \
tst_brk TCONF "test requires kernel $ZRAM_SYSCTL_KERNEL_VERSION+"
dev_start=$(ls /dev/zram* | wc -w)
dev_end=$(($dev_start + $dev_num - 1))
for i in $(seq $dev_start $dev_end); do
cat /sys/class/zram-control/hot_add > /dev/null
done
Kind regards,
Petr
More information about the ltp
mailing list