Recent changes (master)
Jens Axboe <[email protected]> Sat, 18 Jul 2026 06:00:01 -0600
| Newsgroups | org.kernel.vger.fio |
|---|---|
| Message-ID | <[email protected]> |
The following changes since commit b75f951c8635c0718c4b1b756f649ceb53b68481:
Merge branch 'prv-y-verify-bytes-issued' of https://github.com/malikoyv/fio (2026-07-15 12:41:48 -0400)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to cd29b7a64de2d5462a3b72e46d098679ba16b3f1:
ci: drop Ubuntu container test platforms (2026-07-17 11:43:02 -0400)
----------------------------------------------------------------
Vincent Fu (8):
test: drop scheduled tests
ci: switch from Ubuntu 22.04 to 26.04
fio: fix const char * warning
fio: resolve const char * compiler warnings
ci: use newer platforms for container tests
ci: update platforms for QEMU tests
ci: update macOS platform from macos-15 to macos-26
ci: drop Ubuntu container test platforms
.github/workflows/ci.yml | 26 +++++++++++---------------
.github/workflows/qemu.yml | 4 ++--
ci/actions-build.sh | 10 +++++++++-
ci/actions-install.sh | 23 ++++++++++++++---------
ioengines.c | 16 +++++++++++++---
options.c | 2 +-
parse.c | 6 +++---
server.c | 2 +-
8 files changed, 54 insertions(+), 35 deletions(-)
---
Diff of recent changes:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 2210f971..27ea58fb 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -4,8 +4,6 @@ on:
push:
pull_request:
workflow_dispatch:
- schedule:
- - cron: "35 5 * * *" # 5:35 UTC which is 0:35 ET
jobs:
build-containers:
@@ -15,13 +13,11 @@ jobs:
fail-fast: false
matrix:
container:
- - {os: 'debian', dh: 'debian', ver: 'bookworm', target_arch: 'x86_64'}
- - {os: 'fedora', dh: 'fedora', ver: '40', target_arch: 'x86_64'}
- - {os: 'alma', dh: 'almalinux', ver: '9', target_arch: 'x86_64'}
- - {os: 'oracle', dh: 'oraclelinux', ver: '9', target_arch: 'x86_64'}
- - {os: 'rocky', dh: 'rockylinux', ver: '9', target_arch: 'x86_64'}
- - {os: 'ubuntu', dh: 'ubuntu', ver: 'noble', target_arch: 'i686'}
- - {os: 'ubuntu', dh: 'ubuntu', ver: 'noble', target_arch: 'x86_64'}
+ - {os: 'debian', dh: 'debian', ver: 'trixie', target_arch: 'x86_64'}
+ - {os: 'fedora', dh: 'fedora', ver: '44', target_arch: 'x86_64'}
+ - {os: 'alma', dh: 'almalinux', ver: '10', target_arch: 'x86_64'}
+ - {os: 'oracle', dh: 'oraclelinux', ver: '10', target_arch: 'x86_64'}
+ - {os: 'rocky', dh: 'rockylinux/rockylinux', ver: '10', target_arch: 'x86_64'}
container:
image: ${{ matrix.container.dh }}:${{ matrix.container.ver }}
@@ -59,21 +55,21 @@ jobs:
- windows-msys2-64
include:
- build: linux-gcc
- os: ubuntu-22.04
+ os: ubuntu-26.04
cc: gcc
- build: linux-clang
- os: ubuntu-22.04
+ os: ubuntu-26.04
cc: clang
- build: macos
- os: macos-15
+ os: macos-26
- build: linux-i686-gcc
- os: ubuntu-22.04
+ os: ubuntu-26.04
arch: i686
- build: android
- os: ubuntu-22.04
+ os: ubuntu-26.04
arch: aarch64-linux-android32
- build: android-recovery
- os: ubuntu-22.04
+ os: ubuntu-26.04
arch: aarch64-linux-android32
- build: windows-cygwin-64
os: windows-latest
diff --git a/.github/workflows/qemu.yml b/.github/workflows/qemu.yml
index e01b4061..16d74e29 100644
--- a/.github/workflows/qemu.yml
+++ b/.github/workflows/qemu.yml
@@ -7,7 +7,7 @@ on:
jobs:
qemu-guest:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-26.04
strategy:
fail-fast: false
@@ -82,7 +82,7 @@ jobs:
extra_pkgs: sg3-utils
env:
- DISTRO: debian-12
+ DISTRO: debian-13
SSHCMD: ssh root@localhost -p 2022
SCPCMD: scp -P 2022
CI_TARGET_BUILD: linux
diff --git a/ci/actions-build.sh b/ci/actions-build.sh
index 861ed3a8..2aecbe85 100755
--- a/ci/actions-build.sh
+++ b/ci/actions-build.sh
@@ -38,6 +38,15 @@ main() {
;;
esac
;;&
+ */linux | */ubuntu | */debian | */fedora)
+ case "${CI_TARGET_ARCH}" in
+ "x86_64")
+ configure_flags+=(
+ "--enable-libiscsi"
+ )
+ ;;
+ esac
+ ;;&
*/linux | */ubuntu | */debian | */fedora | */alma | */oracle | */rocky)
case "${CI_TARGET_ARCH}" in
"i686")
@@ -46,7 +55,6 @@ main() {
;;
"x86_64")
configure_flags+=(
- "--enable-libiscsi"
"--enable-libnbd"
)
;;
diff --git a/ci/actions-install.sh b/ci/actions-install.sh
index 6940e5b9..41ab8439 100755
--- a/ci/actions-install.sh
+++ b/ci/actions-install.sh
@@ -79,7 +79,8 @@ DPKGCFG
# Architecture-independent packages and packages for which we don't
# care about the architecture.
pkgs+=(
- python3-scipy
+ python3-six
+ python3-scipy
python3-sphinx
python3-statsmodels
sudo
@@ -113,7 +114,6 @@ install_fedora() {
kernel-devel
libaio-devel
libibverbs-devel
- libiscsi-devel
libnbd-devel
libnfs-devel
libpmem-devel
@@ -134,6 +134,7 @@ install_fedora() {
cunit-devel
libgfapi-devel
python3-statsmodels
+ libiscsi-devel
)
;;
"rocky" | "alma" | "oracle")
@@ -141,18 +142,20 @@ install_fedora() {
CUnit-devel
python-pip
)
- ;;&
- "rocky" | "alma")
- pkgs+=(
- glusterfs-api-devel
- )
;;
esac
dnf install -y "${pkgs[@]}"
}
install_rhel_clone() {
- dnf install -y epel-release
+ if [ "${CI_TARGET_OS}" == "oracle" ]; then
+ local ver
+ ver="${CI_TARGET_OS_VER}"
+ dnf install -y "oracle-epel-release-el${ver}"
+ else
+ dnf install -y epel-release
+ fi
+
install_fedora
# I could not find a python3-statsmodels package in the repos
@@ -160,7 +163,9 @@ install_rhel_clone() {
}
install_oracle() {
- dnf config-manager --set-enabled ol9_codeready_builder
+ local ver
+ ver="${CI_TARGET_OS_VER}"
+ dnf config-manager --set-enabled "ol${ver}_codeready_builder"
install_rhel_clone
}
diff --git a/ioengines.c b/ioengines.c
index a2816817..911a286e 100644
--- a/ioengines.c
+++ b/ioengines.c
@@ -711,6 +711,7 @@ int fio_show_ioengine_help(const char *engine)
struct thread_data td;
struct ioengine_ops *io_ops;
char *sep;
+ char *engine_name;
int ret = 1;
memset(&td, 0, sizeof(struct thread_data));
@@ -724,17 +725,25 @@ int fio_show_ioengine_help(const char *engine)
}
return 0;
}
- sep = strchr(engine, ',');
+
+ engine_name = strdup(engine);
+ if (!engine_name) {
+ log_err("fio: out of memory\n");
+ return 1;
+ }
+
+ sep = strchr(engine_name, ',');
if (sep) {
*sep = 0;
sep++;
}
- td.o.ioengine = (char *)engine;
+ td.o.ioengine = engine_name;
td.io_ops = load_ioengine(&td);
if (!td.io_ops) {
- log_info("IO engine %s not found\n", engine);
+ log_info("IO engine %s not found\n", engine_name);
+ free(engine_name);
return 1;
}
@@ -744,5 +753,6 @@ int fio_show_ioengine_help(const char *engine)
log_info("IO engine %s has no options\n", td.io_ops->name);
free_ioengine(&td);
+ free(engine_name);
return ret;
}
diff --git a/options.c b/options.c
index a7535e5c..29b86386 100644
--- a/options.c
+++ b/options.c
@@ -34,7 +34,7 @@ static const struct pattern_fmt_desc fmt_desc[] = {
*/
static char *get_opt_postfix(const char *str)
{
- char *p = strstr(str, ":");
+ char *p = (char *)strstr(str, ":");
if (!p)
return NULL;
diff --git a/parse.c b/parse.c
index e2ec4fcc..92de7785 100644
--- a/parse.c
+++ b/parse.c
@@ -484,7 +484,7 @@ static size_t opt_len(const char *str)
size_t prefix_len = strlen(str);
for (i = 0; i < FIO_ARRAY_SIZE(delimiter); i++) {
- postfix = strchr(str, delimiter[i]);
+ postfix = (char *)strchr(str, delimiter[i]);
candidate_len = (size_t)(postfix - str);
if (postfix && candidate_len < prefix_len)
prefix_len = candidate_len;
@@ -799,7 +799,7 @@ store_option_value:
** number of digits after period. Find first
** period in entire remaining list each time
*/
- cp2 = strchr(ptr, '.');
+ cp2 = (char *)strchr(ptr, '.');
if (cp2 != NULL) {
int len = 0;
@@ -850,7 +850,7 @@ store_option_value:
ret = 0;
if (vp->cb)
fn = vp->cb;
- rest = strstr(*cp ?: ptr, ":");
+ rest = (char *)strstr(*cp ?: ptr, ":");
if (rest) {
if (*cp)
*rest = '\0';
diff --git a/server.c b/server.c
index 16ccf52b..34f3f5c0 100644
--- a/server.c
+++ b/server.c
@@ -2702,7 +2702,7 @@ int fio_server_parse_string(const char *str, char **ptr, bool *is_sock,
* If no port seen yet, check if there's a last ',' at the end
*/
if (!lport) {
- portp = strchr(host, ',');
+ portp = (char *)strchr(host, ',');
if (portp) {
*portp = '\0';
portp++;