Dan Williams <[email protected]> writes:

> +check_min_kver()
> +{
> +     local ver="$1"
> +     : "${KVER:=$(uname -r)}"
> +
> +     [ -n "$ver" ] || return 1
> +     [[ "$ver" == "$(echo -e "$ver\n$KVER" | sort -V | head -1)" ]]
> +}
> +
> +check_min_kver "4.11" || { echo "kernel $KVER may lack latest device-dax 
> fixes"; exit $rc; }

Can we stop with this kernel version checking, please?  Test to see if
you can create a device dax instance.  If not, skip the test.  If so,
and if you have a kernel that isn't fixed, so be it, you'll get
failures.

> +
> +set -e
> +trap 'err $LINENO' ERR
> +
> +if ! fio --enghelp | grep -q "dev-dax"; then
> +     echo "fio lacks dev-dax engine"
> +     exit 77
> +fi
> +
> +dev=$(./dax-dev)
> +for align in 4k 2m 1g
> +do
> +     json=$($NDCTL create-namespace -m dax -a $align -f -e $dev)
> +     chardev=$(echo $json | jq -r ". | select(.mode == \"dax\") | 
> .daxregion.devices[0].chardev")
> +     if [ align = "1g" ]; then
> +             bs="1g"
> +     else
> +             bs="2m"
> +     fi

I'm not sure the blocksize even matters.

Cheers,
Jeff

> +
> +     cat > fio.job <<- EOF
> +             [global]
> +             ioengine=dev-dax
> +             direct=0
> +             filename=/dev/${chardev}
> +             verify=crc32c
> +             bs=${bs}
> +
> +             [write]
> +             rw=write
> +             runtime=5
> +
> +             [read]
> +             stonewall
> +             rw=read
> +             runtime=5
> +     EOF
> +
> +     rc=1
> +     fio fio.job 2>&1 | tee fio.log
> +
> +     if grep -q "fio.*got signal" fio.log; then
> +             echo "test/device-dax-fio.sh: failed with align: $align"
> +             exit 1
> +     fi
> +
> +     # revert namespace to raw mode
> +     json=$($NDCTL create-namespace -m raw -f -e $dev)
> +     mode=$(echo $json | jq -r ".mode")
> +     [ $mode != "memory" ] && echo "fail: $LINENO" && exit 1
> +done
> +
> +exit 0
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to