Compare commits
5 Commits
Author | SHA256 | Date | |
---|---|---|---|
70e15b89b7 | |||
cc54a40d79 | |||
4d777130ad | |||
33295ed29e | |||
a3e4d19aaa |
@@ -1,35 +0,0 @@
|
|||||||
From: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
|
|
||||||
Date: Wed, 4 Dec 2024 13:05:15 +0100
|
|
||||||
Subject: test/init-mem: zero the ringbuf memory
|
|
||||||
References: fix-test-crash
|
|
||||||
Patch-mainline: Submitted, #1293
|
|
||||||
|
|
||||||
This is a similar fix to commit 8100d7b5f862 (test/buf-ring-nommap: zero
|
|
||||||
the ringbuf memory). The same is needed for test/init-mem as it crashes
|
|
||||||
with MALLOC_PERTURB_=69 too.
|
|
||||||
|
|
||||||
So zero the ringbuf memory after posix_memalign() too.
|
|
||||||
|
|
||||||
Fixes #1291.
|
|
||||||
|
|
||||||
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
|
|
||||||
---
|
|
||||||
test/init-mem.c | 2 ++
|
|
||||||
1 file changed, 2 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/test/init-mem.c b/test/init-mem.c
|
|
||||||
index 59973c8b7521..8b139fedd83b 100644
|
|
||||||
--- a/test/init-mem.c
|
|
||||||
+++ b/test/init-mem.c
|
|
||||||
@@ -41,6 +41,8 @@ static int setup_ctx(struct ctx *ctx, struct q_entries *q)
|
|
||||||
if (posix_memalign(&ctx->mem, 4096, 2*1024*1024))
|
|
||||||
return T_EXIT_FAIL;
|
|
||||||
|
|
||||||
+ memset(ctx->mem, 0, 2*1024*1024);
|
|
||||||
+
|
|
||||||
ctx->pre = ctx->mem + 4096 - sizeof(unsigned long long);
|
|
||||||
*ctx->pre = PRE_RED;
|
|
||||||
|
|
||||||
--
|
|
||||||
2.47.1
|
|
||||||
|
|
@@ -1,39 +0,0 @@
|
|||||||
From: Jens Axboe <axboe@kernel.dk>
|
|
||||||
Date: Sun, 27 Oct 2024 18:48:55 -0600
|
|
||||||
Subject: test/rsrc_tags: use correct buffer index for test
|
|
||||||
References: fix-kernel-6.13
|
|
||||||
Git-repo: https://github.com/axboe/liburing
|
|
||||||
Git-commit: 91eecf3a88aa7f72898c17b530d3873331cc1661
|
|
||||||
Patch-mainline: 2.9
|
|
||||||
|
|
||||||
The test is reading from buffer 0, but updating buffer 1. It's expecting
|
|
||||||
buffer 1 not to be put until the per-ring state allows it, but with
|
|
||||||
per-node refs, this is no longer true. However what is true, is that if
|
|
||||||
we use the right buffer, then the ordering will be observed.
|
|
||||||
|
|
||||||
Hence use buffer offset 1 for both the read and the update test, then
|
|
||||||
the test is actually testing what it should be testing. And it'll pass
|
|
||||||
without full buffer table pinning.
|
|
||||||
|
|
||||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
|
||||||
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
|
|
||||||
---
|
|
||||||
test/rsrc_tags.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/test/rsrc_tags.c b/test/rsrc_tags.c
|
|
||||||
index 95f65e930ee5..e78cfe403bfb 100644
|
|
||||||
--- a/test/rsrc_tags.c
|
|
||||||
+++ b/test/rsrc_tags.c
|
|
||||||
@@ -184,7 +184,7 @@ static int test_buffers_update(void)
|
|
||||||
|
|
||||||
/* test that CQE is not emitted before we're done with a buffer */
|
|
||||||
sqe = io_uring_get_sqe(&ring);
|
|
||||||
- io_uring_prep_read_fixed(sqe, pipes[0], tmp_buf, 10, 0, 0);
|
|
||||||
+ io_uring_prep_read_fixed(sqe, pipes[0], tmp_buf, 10, 0, 1);
|
|
||||||
sqe->user_data = 100;
|
|
||||||
ret = io_uring_submit(&ring);
|
|
||||||
if (ret != 1) {
|
|
||||||
--
|
|
||||||
2.47.1
|
|
||||||
|
|
53
923961c.patch
Normal file
53
923961c.patch
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
From 923961c84c0acb166163a1e33bac127ab0559be6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jens Axboe <axboe@kernel.dk>
|
||||||
|
Date: Thu, 3 Apr 2025 09:51:23 -0600
|
||||||
|
Subject: [PATCH] test/pipe-bug: ignore -ENOMEM on ring creation
|
||||||
|
|
||||||
|
Since this test case sets up and tears down a ton of rings, this can
|
||||||
|
result in the deferred freeing/unaccounting causing spurious -ENOMEM
|
||||||
|
returns. This is expected if the system is configured to be tight on
|
||||||
|
locked memory (ulimit -l). If this happens, inject a small delay and
|
||||||
|
just have it retry.
|
||||||
|
|
||||||
|
Link: https://github.com/axboe/liburing/issues/1377
|
||||||
|
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||||
|
---
|
||||||
|
test/pipe-bug.c | 16 +++++++++++-----
|
||||||
|
1 file changed, 11 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/test/pipe-bug.c b/test/pipe-bug.c
|
||||||
|
index 49e4a9412..c76134486 100644
|
||||||
|
--- a/test/pipe-bug.c
|
||||||
|
+++ b/test/pipe-bug.c
|
||||||
|
@@ -24,20 +24,26 @@ do { \
|
||||||
|
|
||||||
|
static int pipe_bug(void)
|
||||||
|
{
|
||||||
|
- struct io_uring_params p;
|
||||||
|
struct io_uring ring;
|
||||||
|
struct io_uring_sqe *sqe;
|
||||||
|
struct io_uring_cqe *cqe;
|
||||||
|
char buf[1024];
|
||||||
|
- int fds[2];
|
||||||
|
+ int ret, fds[2];
|
||||||
|
struct __kernel_timespec to = {
|
||||||
|
.tv_sec = 1
|
||||||
|
};
|
||||||
|
|
||||||
|
- CHECK(pipe(fds) == 0);
|
||||||
|
+ ret = io_uring_queue_init(8, &ring, 0);
|
||||||
|
+ /* can hit -ENOMEM due to repeated ring creation and teardowns */
|
||||||
|
+ if (ret == -ENOMEM) {
|
||||||
|
+ usleep(1000);
|
||||||
|
+ return 0;
|
||||||
|
+ } else if (ret) {
|
||||||
|
+ fprintf(stderr, "ring_init: %d\n", ret);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- memset(&p, 0, sizeof(p));
|
||||||
|
- CHECK(t_create_ring_params(8, &ring, &p) == 0);
|
||||||
|
+ CHECK(pipe(fds) == 0);
|
||||||
|
|
||||||
|
/* WRITE */
|
||||||
|
sqe = io_uring_get_sqe(&ring);
|
BIN
liburing-2.8.tar.gz
(Stored with Git LFS)
BIN
liburing-2.8.tar.gz
(Stored with Git LFS)
Binary file not shown.
@@ -1,17 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmcbrDAQHGF4Ym9lQGtl
|
|
||||||
cm5lbC5kawAKCRD301j7KXHgpic7EACWTk5exmfW92IlhyE/lwiwpOMj6PKBzUM8
|
|
||||||
MjY3qvbMGEvfVN4QFD0F3Tnlhdxy/H143ojOdFG6D6bka2sKm07V8i076p8locNf
|
|
||||||
XXUim7C/cmFEUHGO+SfYXYfnBBNGBzE/iZ4uKGSY6TYAxu0m7RCqbUm9YDtZpeU4
|
|
||||||
RPXeYwI4D07uwJJVy7g4m0/FtGYGICdHAkLd06CkVEW1ZsQqbIMx01o2Im+RXPad
|
|
||||||
jwQKA9L/GyV92/VY59b3lk/CHGT1yEUhl8Av3wYrua2S7ACO7dLP4UVi9TDxSV9m
|
|
||||||
uYYeOVLTnXhHQm8jLJU/FVXBA/kVQNC/EqXLJK+gCs3SPyLinzK1lcu6STJQAaLL
|
|
||||||
e8nIYPQm+0+IiFrwfxCqY2x36hOXuutw9Pfg6SAjtfMC/oo54ezQoEsIyTpvau9u
|
|
||||||
tHHqQ3E6QcQzx2L4OlDAo369vsdIQuO0Pnqa8dIdKsy96CKvquI97dhZJcBtPHhu
|
|
||||||
QMdXtxleQ+m5J/T7Dg5ZwuM2STBZgctoeVRnEQbQkO6lfy0eGwDvlP+jGUvnTW53
|
|
||||||
y8XBdaHfHgf2SXYvHuZvnYqV4xMZ8mh1fY0bzEsTGd2HO2ipSOdtisMwqjn6IoKF
|
|
||||||
hXNZMwduoZd1KXfvLso0XmfstnFYUfPXB2Fg1on9H24GoX0iaPI2zgnyiZjQarYq
|
|
||||||
IPuCifPL3A==
|
|
||||||
=7E4E
|
|
||||||
-----END PGP SIGNATURE-----
|
|
3
liburing-2.9.tar.gz
Normal file
3
liburing-2.9.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:57e9b36e4ac1e46b8e0351dfb1694dc59638fc25e384b4ba36d87b800b16db1a
|
||||||
|
size 407142
|
17
liburing-2.9.tar.gz.asc
Normal file
17
liburing-2.9.tar.gz.asc
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmeguikQHGF4Ym9lQGtl
|
||||||
|
cm5lbC5kawAKCRD301j7KXHgpvfXD/0TzJoza2uLw+gACsVM895NjvlP30aiJxqz
|
||||||
|
0EM1V7wntGOQk53lVdTVJZ7sq5iIRGsVj+ByIlaGGKXPWRAqyroOT0v6OLfJW820
|
||||||
|
CjjHcLTw2ZNTnoO4LW3i6z4T8T7jtm800qUdlNkOYEUJ8cgu4yG4/RuRGewIeKJi
|
||||||
|
jNFKeTb6KlVih7/T86ormA/LJup1ppKGCfSuzvDJMk40p6nEb4rfiT9fYbXdoSFl
|
||||||
|
CLQZn3/XGpFwg2fMkM68XPw5Va8ATA4qiJ1sv1fZdEAJOhErJQgxKLqXHbTOd86J
|
||||||
|
KvGTNL5UtCa64TnUmn8YgANk2sJPohOzsBuD9mOCZthVx/gbBZ4olVdWkWhA8x4C
|
||||||
|
2JX03uh0BXeJGH0TgJ9j/9GVhVCMohulmbRCrwWpdcI4cwgSvbxftqA7MJMaVmxB
|
||||||
|
NVH3Gf5ecZtg5DX0PSy0dga7aAHkWMFOZ04uoOY0HmUDfCjeElZLsAsDQTdVuO+8
|
||||||
|
mS5FSSOnerFznJ7foVKgX6693Y1CYiiqlAvWzzEg0iB79EDcar2SaCIrZq20np8u
|
||||||
|
fdmCFmxtdTTZJF65gljszVovbC7Sp3iYYThgRXdwVrSgEclWAR82CHZ1qsqzHN/R
|
||||||
|
Mr1VU8C8EYsWVyq4zKBaCjDviX64IlBrKCmD570tOM/4LRfrbCHHvANzfx4+rGMo
|
||||||
|
DSli4Ub/aA==
|
||||||
|
=I6sI
|
||||||
|
-----END PGP SIGNATURE-----
|
@@ -1,3 +1,35 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 25 07:26:44 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
|
||||||
|
|
||||||
|
- disable tests on non-x86 -- they fail pretty randomly.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 8 11:46:39 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Disable resize-rings.t as it is not very stable in OBS
|
||||||
|
- Disable timeout.t on Leap 15.6/15.7
|
||||||
|
- Disable read-inc-file.t and timeout.t on Leap 16.0
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 4 08:32:20 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add upstream patch to fix test on aarch64:
|
||||||
|
* 923961c.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 3 13:00:56 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 2.9:
|
||||||
|
* Add support for ring resizing
|
||||||
|
* Add support for registered waits
|
||||||
|
* Test additions and improvements
|
||||||
|
* Fix bug with certain ring setups with SQE128 set not fully closing
|
||||||
|
the ring after io_uring_queue_exit(3) had been called.
|
||||||
|
* Various man page fixes and updates
|
||||||
|
- Remove upstreamed patches:
|
||||||
|
* 0001-test-init-mem-zero-the-ringbuf-memory.patch
|
||||||
|
* 0001-test-rsrc_tags-use-correct-buffer-index-for-test.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Feb 11 08:39:50 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
|
Tue Feb 11 08:39:50 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
%define lname liburing2
|
%define lname liburing2
|
||||||
Name: liburing
|
Name: liburing
|
||||||
Version: 2.8
|
Version: 2.9
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Linux-native io_uring I/O access library
|
Summary: Linux-native io_uring I/O access library
|
||||||
License: (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
|
License: (GPL-2.0-only AND LGPL-2.1-or-later) OR MIT
|
||||||
@@ -27,8 +27,8 @@ URL: https://github.com/axboe/liburing
|
|||||||
Source0: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz
|
Source0: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz
|
||||||
Source1: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz.asc
|
Source1: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz.asc
|
||||||
Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/F7D358FB2971E0A6.asc#/%{name}.keyring
|
Source2: https://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git/plain/keys/F7D358FB2971E0A6.asc#/%{name}.keyring
|
||||||
Patch0: 0001-test-init-mem-zero-the-ringbuf-memory.patch
|
# PATCH-FIX-UPSTREAM - https://github.com/axboe/liburing/issues/1377
|
||||||
Patch1: 0001-test-rsrc_tags-use-correct-buffer-index-for-test.patch
|
Patch1: 923961c.patch
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
@@ -88,33 +88,27 @@ export CPPFLAGS="%{optflags} -fno-stack-protector"
|
|||||||
%make_build -C src
|
%make_build -C src
|
||||||
|
|
||||||
%check
|
%check
|
||||||
declare -a TEST_EXCLUDE=()
|
# the tests terribly (and randomly!) fail on non-x86
|
||||||
|
%ifarch x86_64
|
||||||
|
# io_uring syscalls not supported as of qemu 7.0.0 and would test the host
|
||||||
|
# kernel anyway not the target kernel..
|
||||||
|
%if !0%{?qemu_user_space_build}
|
||||||
|
declare -a TEST_EXCLUDE=( resize-rings.t )
|
||||||
|
|
||||||
%if 0%{?sle_version} == 150500
|
%if 0%{?sle_version} == 150500
|
||||||
TEST_EXCLUDE+=( fallocate.t fd-pass.t fixed-buf-merge.t msg-ring-overflow.t nop.t poll-race-mshot.t reg-hint.t sqwait.t wq-aff.t )
|
TEST_EXCLUDE+=( fallocate.t fd-pass.t fixed-buf-merge.t msg-ring-overflow.t nop.t poll-race-mshot.t reg-hint.t sqwait.t wq-aff.t )
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?sle_version} == 150600 || 0%{?sle_version} == 150700
|
%if 0%{?sle_version} == 150600 || 0%{?sle_version} == 150700
|
||||||
TEST_EXCLUDE+=( accept-non-empty.t bind-listen.t fallocate.t nop.t recvsend_bundle.t recvsend_bundle-inc.t sqwait.t )
|
TEST_EXCLUDE+=( accept-non-empty.t bind-listen.t fallocate.t nop.t recvsend_bundle.t recvsend_bundle-inc.t sqwait.t timeout.t )
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version} == 1600
|
%if 0%{?suse_version} == 1600
|
||||||
TEST_EXCLUDE+=( sqwait.t )
|
TEST_EXCLUDE+=( read-inc-file.t sqwait.t timeout.t )
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%ifarch %{arm}
|
|
||||||
TEST_EXCLUDE+=( min-timeout-wait.t )
|
|
||||||
%elifarch ppc64le
|
|
||||||
TEST_EXCLUDE+=( no-mmap-inval.t recv-multishot.t reg-fd-only.t recvsend_bundle.t recvsend_bundle-inc.t )
|
|
||||||
%elifarch s390x
|
|
||||||
TEST_EXCLUDE+=( 7ad0e4b2f83c.t futex.t multicqes_drain.t poll-mshot-update.t read-mshot.t timeout-new.t waitid.t )
|
|
||||||
TEST_EXCLUDE+=( link-timeout.t min-timeout-wait.t submit-and-wait.t sync-cancel.t )
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# io_uring syscalls not supported as of qemu 7.0.0 and would test the host
|
|
||||||
# kernel anyway not the target kernel..
|
|
||||||
%if !0%{?qemu_user_space_build}
|
|
||||||
echo "TEST_EXCLUDE=\"${TEST_EXCLUDE[@]}\"" > test/config.local
|
echo "TEST_EXCLUDE=\"${TEST_EXCLUDE[@]}\"" > test/config.local
|
||||||
%make_build runtests
|
%make_build runtests
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
|
Reference in New Issue
Block a user