Skip to content

engines/io_uring_cmd: extend bsg cmd_type with cdb_len, verify, and prefetch #686

engines/io_uring_cmd: extend bsg cmd_type with cdb_len, verify, and prefetch

engines/io_uring_cmd: extend bsg cmd_type with cdb_len, verify, and prefetch #686

Workflow file for this run

name: QEMU
on:
workflow_dispatch:
push:
pull_request:
jobs:
qemu-guest:
runs-on: ubuntu-26.04
strategy:
fail-fast: false
matrix:
include:
- config: basic io_uring_cmd and io_uring PI tests
device: >-
-device nvme,id=nvme0,serial=deadbeef
-drive id=nvm-0,file=nvme0.img,format=raw,if=none,discard=unmap,media=disk
-device nvme-ns,id=nvm-0,drive=nvm-0,bus=nvme0,nsid=1
test_cmd: "python3 t/run-fio-tests.py --nvmebdev /dev/nvme0n1 --nvmecdev /dev/ng0n1 --run-only 1014 1015 1022 1025 -p '1022:--skip 30 31 32 33 34 40 50 51 53 70'"
extra_pkgs: "nvme-cli"
- config: 512 16-bit Guard PI tests (long)
device: >-
-device nvme,id=nvme0,serial=deadbeef
-drive id=nvm-0,file=nvme0.img,format=raw,if=none,discard=unmap,media=disk
-device nvme-ns,id=nvm-0,drive=nvm-0,bus=nvme0,nsid=1
test_cmd: "python3 t/nvmept_pi.py --fio ./fio --dut /dev/ng0n1 --lbaf 1 2 3"
extra_pkgs: "nvme-cli"
- config: 4K 16-bit Guard PI tests (long)
device: >-
-device nvme,id=nvme0,serial=deadbeef
-drive id=nvm-0,file=nvme0.img,format=raw,if=none,discard=unmap,media=disk
-device nvme-ns,id=nvm-0,drive=nvm-0,bus=nvme0,nsid=1
test_cmd: "python3 t/nvmept_pi.py --fio ./fio --dut /dev/ng0n1 --lbaf 5 6 7"
extra_pkgs: "nvme-cli"
- config: 4K+16 w/64-bit Guard PI
device: >- # 4K+16 w/64-bit Guard PI
-device nvme,id=nvme1,serial=deadbeee
-drive id=nvm-1,file=nvme0.img,format=raw,if=none,discard=unmap,media=disk
-device nvme-ns,id=nvm-1,drive=nvm-1,bus=nvme1,nsid=1,pif=2,ms=16,mset=1,pi=1,pil=0,logical_block_size=4096,physical_block_size=4096
test_cmd: "python3 t/nvmept_pi.py --fio ./fio --dut /dev/ng0n1 --lbaf 6"
extra_pkgs: "nvme-cli"
- config: 4K+64 w/64-bit Guard PI
device: >-
-device nvme,id=nvme2,serial=deadeeef
-drive id=nvm-2,file=nvme0.img,format=raw,if=none,discard=unmap,media=disk
-device nvme-ns,id=nvm-2,drive=nvm-2,bus=nvme2,nsid=1,pif=2,ms=64,mset=1,pi=1,pil=0,logical_block_size=4096,physical_block_size=4096
test_cmd: "python3 t/nvmept_pi.py --fio ./fio --dut /dev/ng0n1 --lbaf 7"
extra_pkgs: "nvme-cli"
- config: FDP and verify-trim
device: >-
-device nvme-subsys,id=nvme-subsys0,fdp=on,fdp.runs=128K,fdp.nrg=8,fdp.nruh=64
-device nvme,id=nvme0,serial=deadbeef,subsys=nvme-subsys0
-drive id=nvm-1,file=nvme0.img,format=raw,if=none,discard=unmap,media=disk
-device nvme-ns,id=nvm-1,drive=nvm-1,bus=nvme0,nsid=1,logical_block_size=4096,physical_block_size=4096,fdp.ruhs=0-63
test_cmd: "nvme fdp status /dev/ng0n1 && python3 t/nvmept_fdp.py --fio ./fio --dut /dev/ng0n1 && python3 t/verify-trim.py"
extra_pkgs: nvme-cli
- config: ZBD1-5
device:
test_cmd: "./t/zbd/run-tests-against-nullb -s 1 -s 2 -s 3 -s 4 -s 5"
extra_pkgs: sg3-utils util-linux-extra
- config: ZBD6-10
device:
test_cmd: "./t/zbd/run-tests-against-nullb -s 6 -s 7 -s 8 -s 9 -s 10"
extra_pkgs: sg3-utils util-linux-extra
- config: ZBD11-15
device:
test_cmd: "./t/zbd/run-tests-against-nullb -s 11 -s 12 -s 13 -s 14 -s 15"
extra_pkgs: sg3-utils util-linux-extra
- config: ZBD16-20
device:
test_cmd: "./t/zbd/run-tests-against-nullb -s 16 -s 17 -s 18 -s 19 -s 20"
extra_pkgs: sg3-utils util-linux-extra
- config: ZBD21-25
device:
test_cmd: "./t/zbd/run-tests-against-nullb -s 21 -s 22 -s 23 -s 24 -s 25"
extra_pkgs: sg3-utils util-linux-extra
env:
SSHCMD: ssh root@localhost -p 2022
SCPCMD: scp -P 2022
CI_TARGET_BUILD: linux
CI_TARGET_OS: debian
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Create tarball containing repository
run: |
git archive --format=tar.gz -o fio-src.tar.gz --prefix=fio/ HEAD
git log -1
- name: Create guest VM image
uses: ./.github/actions/create-guest-image
with:
extra_pkgs: ${{ matrix.extra_pkgs }}
- name: Build and install QEMU
uses: ./.github/actions/build-qemu
- name: Create backing file for NVMe device
run: truncate -s 1G nvme0.img
- name: Start VM
uses: ./.github/actions/start-vm
with:
host_key: true
options: ${{ matrix.device }}
- name: Transfer fio source to guest
run: |
$SCPCMD fio-src.tar.gz root@localhost:/root/
$SSHCMD "tar xzf fio-src.tar.gz"
- name: Install dependencies on guest
run: $SSHCMD "cd fio && ./ci/actions-install.sh"
- name: Build fio on guest
run: $SSHCMD "cd fio && ./ci/actions-build.sh"
- name: Show nvme device configuration
if: ${{ contains( matrix.extra_pkgs, 'nvme-cli' ) }}
run: |
$SSHCMD "nvme id-ns /dev/ng0n1 -H"
$SSHCMD "nvme nvm-id-ns /dev/ng0n1 -v"
- name: Run test
run: $SSHCMD "cd fio && ${{ matrix.test_cmd }}"