Skip to content

block/blk-iolatency: Add the processing flow of the chained bio in the QoS and define the related types to solve the problem of incorrect inflight processing in the QoS. The usage of the done_split_bio abstract function in the blk-iolatency project. #9172

block/blk-iolatency: Add the processing flow of the chained bio in the QoS and define the related types to solve the problem of incorrect inflight processing in the QoS. The usage of the done_split_bio abstract function in the blk-iolatency project.

block/blk-iolatency: Add the processing flow of the chained bio in the QoS and define the related types to solve the problem of incorrect inflight processing in the QoS. The usage of the done_split_bio abstract function in the blk-iolatency project. #9172

Workflow file for this run

# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright (c) 2025 Western Digital Corporation or its affiliates.
#
# Authors: Dennis Maisenbacher ([email protected])
name: Run blktests
on:
pull_request:
concurrency:
group: ci-test-${{ github.ref_name }}
env:
KERNEL_REF: "${{ github.event.pull_request.head.sha }}"
KERNEL_TREE: "https://github.com/${{ github.repository }}"
#This workflow requires an actions-runner-controllers (ARC) to be active.
#The k8s cluster of this ARC needs KubeVirt to be installed.
jobs:
build-and-test-kernel:
#This step runs in a container in the k8s cluster
runs-on: arc-vm-linux-blktests
steps:
- name: Checkout blktests-ci
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
with:
repository: linux-blktests/blktests-ci
path: blktests-ci
- name: Build kernel and package it into a containerimage
run: |
cd blktests-ci/playbooks/roles/kernel-builder-k8s-job/templates
docker build \
--build-arg KERNEL_TREE=${KERNEL_TREE} \
--build-arg KERNEL_REF=${KERNEL_REF} \
-t linux-kernel-containerdisk \
-f Dockerfile.linux-kernel-containerdisk . 2>&1 | tee build.log
#Setting KERNEL_VERSION var which is latern needed for notifying the VM what kernel to pick up
cat build.log | grep KERNEL_VERSION | awk '{print $3}' | grep KERNEL_VERSION >> $GITHUB_ENV
- name: Push the new Fedora containerimage with the freshly build kernel
run: |
docker tag linux-kernel-containerdisk registry-service.docker-registry.svc.cluster.local/linux-kernel-containerdisk:${KERNEL_VERSION}
docker push registry-service.docker-registry.svc.cluster.local/linux-kernel-containerdisk:${KERNEL_VERSION}
- name: Run in VM
uses: ./blktests-ci/.github/actions/kubevirt-action
with:
kernel_version: ${{ env.KERNEL_VERSION }}
vm_artifact_upload_dir: blktests/results
run_cmds: |
#Print VM debug info
uname -a
cat /etc/os-release
lsblk
#Install build dependencies for blktests
sudo dnf install -y gcc \
clang \
make \
util-linux \
llvm \
gawk \
fio \
udev \
kmod \
coreutils \
gcc \
gzip \
e2fsprogs \
xfsprogs \
f2fs-tools \
btrfs-progs \
device-mapper-multipath \
blktrace \
kernel-headers \
liburing \
liburing-devel \
nbd \
device-mapper \
ktls-utils \
dosfstools \
bc \
libnl3-cli \
cryptsetup \
sg3_utils \
pciutils \
unzip \
jq \
nvme-cli \
git \
wget \
pkgconf \
libudev-devel
git clone https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git
cd mdadm
git checkout d764c4829947923142a83251296d04edaee7d2f7
make -j$(nproc)
sudo make install
cd -
git clone https://github.com/linux-blktests/blktests.git
cd blktests
git checkout ci
make
#ATTENTION! This section formats all available NVMe devices. Be careful when changing the `runs-on` tag!
#This step runs in a VM with the previously compiled kernel in the k8s cluster
./contrib/run_ci https://github.com/linux-blktests/blktests-ci-conditions/raw/main
# Mark blktests completion for KPD report
echo "KPD: blktests completed"
# Output failures for KPD report
test -f all_failures && echo "KPD: Failures:" && cat all_failures
test -f all_failures && exit 1
exit 0