OpenZFS 6404 - zvol_swap_006_pos can occasionally fail due to swaplen being < 16
Authored by: Matthew Ahrens <mahrens@delphix.com> 6405 zvol test setup is non deterministic Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: John Kennedy <john.kennedy@delphix.com> Reviewed by: Will Andrews <will@freebsd.org> Approved by: Dan McDonald <danmcd@omniti.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Ported-by: George Melikov <mail@gmelikov.ru> OpenZFS-issue: https://www.illumos.org/issues/6404 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/24e268f Closes #5792 Porting notes: - Converted zfs to $ZFS until OpenZFS 7290 is ported. openzfs/openzfs@1d32ba6
This commit is contained in:
parent
f9caf08a74
commit
3d3fe9f9bb
@ -25,7 +25,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -48,8 +48,6 @@ function default_zvol_setup # disk_device volume_size
|
|||||||
|
|
||||||
log_must $ZFS create -V $size $TESTPOOL/$TESTVOL
|
log_must $ZFS create -V $size $TESTPOOL/$TESTVOL
|
||||||
block_device_wait
|
block_device_wait
|
||||||
|
|
||||||
set_dumpsize $TESTPOOL/$TESTVOL
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -44,6 +44,8 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
|
volsize=$($ZFS get -H -o value volsize $TESTPOOL/$TESTVOL)
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
typeset dumpdev=$(get_dumpdevice)
|
typeset dumpdev=$(get_dumpdevice)
|
||||||
@ -51,6 +53,7 @@ function cleanup
|
|||||||
if [[ $dumpdev != $savedumpdev ]] ; then
|
if [[ $dumpdev != $savedumpdev ]] ; then
|
||||||
safe_dumpadm $savedumpdev
|
safe_dumpadm $savedumpdev
|
||||||
fi
|
fi
|
||||||
|
$ZFS set volsize=$volsize $TESTPOOL/$TESTVOL
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Verify that a ZFS volume can act as dump device."
|
log_assert "Verify that a ZFS volume can act as dump device."
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -43,6 +43,8 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
|
volsize=$($ZFS get -H -o value volsize $TESTPOOL/$TESTVOL)
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
snapexists $TESTPOOL/$TESTVOL@snap && \
|
snapexists $TESTPOOL/$TESTVOL@snap && \
|
||||||
@ -52,6 +54,7 @@ function cleanup
|
|||||||
(( $? == 0 )) && log_must $UMOUNT $TESTDIR
|
(( $? == 0 )) && log_must $UMOUNT $TESTDIR
|
||||||
|
|
||||||
[[ -e $TESTDIR ]] && $RM -rf $TESTDIR
|
[[ -e $TESTDIR ]] && $RM -rf $TESTDIR
|
||||||
|
$ZFS set volsize=$volsize $TESTPOOL/$TESTVOL
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Verify that ZFS volume snapshot could be fscked"
|
log_assert "Verify that ZFS volume snapshot could be fscked"
|
||||||
@ -61,6 +64,8 @@ TESTVOL='testvol'
|
|||||||
BLOCKSZ=$(( 1024 * 1024 ))
|
BLOCKSZ=$(( 1024 * 1024 ))
|
||||||
NUM_WRITES=40
|
NUM_WRITES=40
|
||||||
|
|
||||||
|
log_must $ZFS set volsize=128m $TESTPOOL/$TESTVOL
|
||||||
|
|
||||||
$ECHO "y" | $NEWFS -v ${ZVOL_RDEVDIR}/$TESTPOOL/$TESTVOL >/dev/null 2>&1
|
$ECHO "y" | $NEWFS -v ${ZVOL_RDEVDIR}/$TESTPOOL/$TESTVOL >/dev/null 2>&1
|
||||||
(( $? != 0 )) && log_fail "Unable to newfs(1M) $TESTPOOL/$TESTVOL"
|
(( $? != 0 )) && log_fail "Unable to newfs(1M) $TESTPOOL/$TESTVOL"
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -45,6 +45,8 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
|
volsize=$($ZFS get -H -o value volsize $TESTPOOL/$TESTVOL)
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
typeset dumpdev=$(get_dumpdevice)
|
typeset dumpdev=$(get_dumpdevice)
|
||||||
@ -55,6 +57,7 @@ function cleanup
|
|||||||
if poolexists $TESTPOOL1 ; then
|
if poolexists $TESTPOOL1 ; then
|
||||||
destroy_pool $TESTPOOL1
|
destroy_pool $TESTPOOL1
|
||||||
fi
|
fi
|
||||||
|
$ZFS set volsize=$volsize $TESTPOOL/$TESTVOL
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Verify zpool creation and newfs on dump zvol is denied."
|
log_assert "Verify zpool creation and newfs on dump zvol is denied."
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -44,6 +44,8 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
|
volsize=$($ZFS get -H -o value volsize $TESTPOOL/$TESTVOL)
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
typeset dumpdev=$(get_dumpdevice)
|
typeset dumpdev=$(get_dumpdevice)
|
||||||
@ -62,6 +64,7 @@ function cleanup
|
|||||||
log_must $ZFS destroy $TESTPOOL/$TESTVOL@$snap
|
log_must $ZFS destroy $TESTPOOL/$TESTVOL@$snap
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
$ZFS set volsize=$volsize $TESTPOOL/$TESTVOL
|
||||||
}
|
}
|
||||||
|
|
||||||
function verify_snapshot
|
function verify_snapshot
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -44,6 +44,8 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
|
volsize=$($ZFS get -H -o value volsize $TESTPOOL/$TESTVOL)
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
$SWAP -l | $GREP $voldev > /dev/null 2>&1
|
$SWAP -l | $GREP $voldev > /dev/null 2>&1
|
||||||
@ -55,6 +57,7 @@ function cleanup
|
|||||||
if [[ $dumpdev != $savedumpdev ]] ; then
|
if [[ $dumpdev != $savedumpdev ]] ; then
|
||||||
safe_dumpadm $savedumpdev
|
safe_dumpadm $savedumpdev
|
||||||
fi
|
fi
|
||||||
|
$ZFS set volsize=$volsize $TESTPOOL/$TESTVOL
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "Verify a device cannot be dump and swap at the same time."
|
log_assert "Verify a device cannot be dump and swap at the same time."
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -44,12 +44,15 @@
|
|||||||
|
|
||||||
verify_runnable "global"
|
verify_runnable "global"
|
||||||
|
|
||||||
|
volsize=$(zfs get -H -o value volsize $TESTPOOL/$TESTVOL)
|
||||||
|
|
||||||
function cleanup
|
function cleanup
|
||||||
{
|
{
|
||||||
typeset dumpdev=$(get_dumpdevice)
|
typeset dumpdev=$(get_dumpdevice)
|
||||||
if [[ $dumpdev != $savedumpdev ]] ; then
|
if [[ $dumpdev != $savedumpdev ]] ; then
|
||||||
safe_dumpadm $savedumpdev
|
safe_dumpadm $savedumpdev
|
||||||
fi
|
fi
|
||||||
|
zfs set volsize=$volsize $TESTPOOL/$TESTVOL
|
||||||
}
|
}
|
||||||
|
|
||||||
log_assert "zfs volume as dumpdevice should have 128k volblocksize"
|
log_assert "zfs volume as dumpdevice should have 128k volblocksize"
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -54,7 +54,7 @@ log_assert "For an added swap zvol, (2G <= volsize <= 16G)"
|
|||||||
|
|
||||||
log_onexit cleanup
|
log_onexit cleanup
|
||||||
|
|
||||||
for vbs in 512 1024 2048 4096 8192 16384 32768 65536 131072; do
|
for vbs in 8192 16384 32768 65536 131072; do
|
||||||
for multiplier in 1 32 16384 131072; do
|
for multiplier in 1 32 16384 131072; do
|
||||||
((volsize = vbs * multiplier))
|
((volsize = vbs * multiplier))
|
||||||
vol="$TESTPOOL/vol_$volsize"
|
vol="$TESTPOOL/vol_$volsize"
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
#
|
#
|
||||||
# Copyright (c) 2013 by Delphix. All rights reserved.
|
# Copyright (c) 2013, 2015 by Delphix. All rights reserved.
|
||||||
#
|
#
|
||||||
|
|
||||||
. $STF_SUITE/include/libtest.shlib
|
. $STF_SUITE/include/libtest.shlib
|
||||||
@ -75,13 +75,13 @@ log_note "Verify volume can be add as several segments."
|
|||||||
#
|
#
|
||||||
# swaplow swaplen
|
# swaplow swaplen
|
||||||
set -A swap_opt $((pageblocks)) \
|
set -A swap_opt $((pageblocks)) \
|
||||||
$((pageblocks * ((RANDOM % 50) + 1) + (RANDOM % pageblocks) )) \
|
$((RANDOM % (50 * pageblocks) + 2 * pageblocks)) \
|
||||||
$((volblocks / 3)) \
|
$((volblocks / 3)) \
|
||||||
$((pageblocks * ((RANDOM % 50) + 1) + (RANDOM % pageblocks) )) \
|
$((RANDOM % (50 * pageblocks) + 2 * pageblocks)) \
|
||||||
$((volblocks / 2)) \
|
$((volblocks / 2)) \
|
||||||
$((pageblocks * ((RANDOM % 50) + 1) + (RANDOM % pageblocks) )) \
|
$((RANDOM % (50 * pageblocks) + 2 * pageblocks)) \
|
||||||
$(((volblocks*2) / 3)) \
|
$(((volblocks*2) / 3)) \
|
||||||
$((pageblocks * ((RANDOM % 50) + 1) + (RANDOM % pageblocks) ))
|
$((RANDOM % (50 * pageblocks) + 2 * pageblocks))
|
||||||
|
|
||||||
swapname=${ZVOL_DEVDIR}/$vol
|
swapname=${ZVOL_DEVDIR}/$vol
|
||||||
typeset -i i=0 count=0
|
typeset -i i=0 count=0
|
||||||
|
Loading…
Reference in New Issue
Block a user