@@ -14,39 +14,33 @@ PID=$(pidof /usr/bin/qemu-system-x86_64)
1414tail --pid=$PID -f /dev/null
1515sudo virsh undefine openzfs
1616
17- # default values per test vm:
18- VMs=2
19- CPU=2
20-
2117# cpu pinning
2218CPUSET=(" 0,1" " 2,3" )
2319
2420case " $OS " in
2521 freebsd* )
26- # FreeBSD can't be optimized via ksmtuned
22+ # FreeBSD needs only 6GiB
2723 RAM=6
2824 ;;
2925 * )
30- # Linux can be optimized via ksmtuned
26+ # Linux needs more memory, but can be optimized to share it via KSM
3127 RAM=8
3228 ;;
3329esac
3430
35- # this can be different for each distro
36- echo " VMs=$VMs " >> $ENV
37-
3831# create snapshot we can clone later
3932sudo zfs snapshot zpool/openzfs@now
4033
4134# setup the testing vm's
4235PUBKEY=$( cat ~ /.ssh/id_ed25519.pub)
43- for i in $( seq 1 $VMs ) ; do
4436
37+ # start testing VMs
38+ for (( i= 1 ; i<= VMs; i++ )) ; do
4539 echo " Creating disk for vm$i ..."
4640 DISK=" /dev/zvol/zpool/vm$i "
4741 FORMAT=" raw"
48- sudo zfs clone zpool/openzfs@now zpool/vm$i
49- sudo zfs create -ps -b 64k -V 80g zpool/vm$i -2
42+ sudo zfs clone zpool/openzfs@now zpool/vm$i -system
43+ sudo zfs create -ps -b 64k -V 64g zpool/vm$i -tests
5044
5145 cat << EOF > /tmp/user-data
5246#cloud-config
8377 --graphics none \
8478 --cloud-init user-data=/tmp/user-data \
8579 --network bridge=virbr0,model=$NIC ,mac=" 52:54:00:83:79:0$i " \
86- --disk $DISK ,bus=virtio,cache=none,format=$FORMAT ,driver.discard=unmap \
87- --disk $DISK -2 ,bus=virtio,cache=none,format=$FORMAT ,driver.discard=unmap \
80+ --disk $DISK -system ,bus=virtio,cache=none,format=$FORMAT ,driver.discard=unmap \
81+ --disk $DISK -tests ,bus=virtio,cache=none,format=$FORMAT ,driver.discard=unmap \
8882 --import --noautoconsole > /dev/null
8983done
9084
91- # check the memory state from time to time
85+ # generate some memory stats
9286cat << EOF > cronjob.sh
93- # $OS
9487exec 1>>/var/tmp/stats.txt
9588exec 2>&1
96- echo "*******************************************************"
97- date
89+ echo "********************************************************************************"
9890uptime
9991free -m
100- df -h /mnt/tests
10192zfs list
10293EOF
94+
10395sudo chmod +x cronjob.sh
10496sudo mv -f cronjob.sh /root/cronjob.sh
10597echo ' */5 * * * * /root/cronjob.sh' > crontab.txt
@@ -108,15 +100,15 @@ rm crontab.txt
108100
109101# check if the machines are okay
110102echo " Waiting for vm's to come up... (${VMs} x CPU=$CPU RAM=$RAM )"
111- for i in $( seq 1 $ VMs) ; do
103+ for (( i = 1 ; i <= VMs; i ++ ) ); do
112104 .github/workflows/scripts/qemu-wait-for-vm.sh vm$i
113105done
114106echo " All $VMs VMs are up now."
115107
116108# Save the VM's serial output (ttyS0) to /var/tmp/console.txt
117109# - ttyS0 on the VM corresponds to a local /dev/pty/N entry
118110# - use 'virsh ttyconsole' to lookup the /dev/pty/N entry
119- for i in $( seq 1 $ VMs) ; do
111+ for (( i = 1 ; i <= VMs; i ++ ) ); do
120112 mkdir -p $RESPATH /vm$i
121113 read " pty" <<< $( sudo virsh ttyconsole vm$i )
122114 sudo nohup bash -c " cat $pty > $RESPATH /vm$i /console.txt" &
0 commit comments