* [PATCH liburing v1 1/8] ffi: Add SPDX-License-Idetifier
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 2/8] Makefile: Add a '+' char to silence a Makefile warning Ammar Faizi
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List, Christian Mazakas
Commit 9e2890d35e96 ("build: add liburing-ffi") didn't add
"SPDX-LIcense-Identifier" in src/ffi.c. Add it.
Cc: Christian Mazakas <[email protected]>
Signed-off-by: Ammar Faizi <[email protected]>
---
src/ffi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/ffi.c b/src/ffi.c
index fbca2a4..03e382e 100644
--- a/src/ffi.c
+++ b/src/ffi.c
@@ -1,10 +1,11 @@
+/* SPDX-License-Identifier: MIT */
#define IOURINGINLINE
#ifdef __clang__
// clang doesn't seem to particularly like that we're including a header that
// deliberately contains function definitions so we explicitly silence it
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmissing-prototypes"
#endif
#include "liburing.h"
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 2/8] Makefile: Add a '+' char to silence a Makefile warning
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 1/8] ffi: Add SPDX-License-Idetifier Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 3/8] tests: Fix `-Wstrict-prototypes` warnings from Clang Ammar Faizi
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List, Christian Hergert
When building with `make -jN` where `N` is greater than 1, it shows:
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[1]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
This happens because since commit 0d55ea19ccf2 ("version: generate
io_uring_version.h from Makefile.common"), the configure file executes
make command.
Add a '+' char in front of the configure command to silence this
warning.
Cc: Christian Hergert <[email protected]>
Fixes: 0d55ea19ccf2f34c5dd74f80846f9e5f133746ff ("version: generate io_uring_version.h from Makefile.common")
Signed-off-by: Ammar Faizi <[email protected]>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 686be4f..4bd7e24 100644
--- a/Makefile
+++ b/Makefile
@@ -18,21 +18,21 @@ partcheck: all
@echo "make partcheck => TODO add tests with out kernel support"
runtests: all
@$(MAKE) -C test runtests
runtests-loop: all
@$(MAKE) -C test runtests-loop
runtests-parallel: all
@$(MAKE) -C test runtests-parallel
config-host.mak: configure
- @if [ ! -e "$@" ]; then \
+ +@if [ ! -e "$@" ]; then \
echo "Running configure ..."; \
./configure; \
else \
echo "$@ is out-of-date, running configure"; \
sed -n "/.*Configured with/s/[^:]*: //p" "$@" | sh; \
fi
ifneq ($(MAKECMDGOALS),clean)
include config-host.mak
endif
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 3/8] tests: Fix `-Wstrict-prototypes` warnings from Clang
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 1/8] ffi: Add SPDX-License-Idetifier Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 2/8] Makefile: Add a '+' char to silence a Makefile warning Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 4/8] test/ring-leak: Remove a "break" statement in a "for loop" Ammar Faizi
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List
This is a preparation patch to integrate -Wstrict-prototypes flag to
the GitHub CI robot. Clang says:
warning: a function declaration without a prototype is \
deprecated in all versions of C [-Wstrict-prototypes]
Make sure we put "void" in the argument list of the function
declaration if the function doesn't accept any argument.
Reproducer (with clang-16):
./configure --cc=clang --cxx=clang++;
CFLAGS="-Wall -Wextra -Wstrict-prototypes" make -j8;
Signed-off-by: Ammar Faizi <[email protected]>
---
test/35fa71a030ca.c | 2 +-
test/a4c0b3decb33.c | 2 +-
test/accept.c | 2 +-
test/fc2a85cb02ef.c | 2 +-
test/pollfree.c | 2 +-
test/sqpoll-disable-exit.c | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/test/35fa71a030ca.c b/test/35fa71a030ca.c
index fc1a419..5540d8d 100644
--- a/test/35fa71a030ca.c
+++ b/test/35fa71a030ca.c
@@ -169,21 +169,21 @@ static void kill_and_wait(int pid, int* status)
close(fd);
}
closedir(dir);
} else {
}
while (waitpid(-1, status, __WALL) != pid) {
}
}
#define SYZ_HAVE_SETUP_TEST 1
-static void setup_test()
+static void setup_test(void)
{
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
write_file("/proc/self/oom_score_adj", "1000");
}
struct thread_t {
int created, call;
event_t ready, done;
};
diff --git a/test/a4c0b3decb33.c b/test/a4c0b3decb33.c
index eb9587c..626f60a 100644
--- a/test/a4c0b3decb33.c
+++ b/test/a4c0b3decb33.c
@@ -88,21 +88,21 @@ static void kill_and_wait(int pid, int* status)
}
close(fd);
}
closedir(dir);
} else {
}
while (waitpid(-1, status, __WALL) != pid) {
}
}
-static void setup_test()
+static void setup_test(void)
{
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
write_file("/proc/self/oom_score_adj", "1000");
}
static void execute_one(void);
#define WAIT_FLAGS __WALL
diff --git a/test/accept.c b/test/accept.c
index 1821faa..61737fa 100644
--- a/test/accept.c
+++ b/test/accept.c
@@ -604,21 +604,21 @@ static int test_multishot_accept(int count, bool before, bool overflow)
if (no_accept_multi)
return T_EXIT_SKIP;
ret = io_uring_queue_init(MAX_FDS + 10, &m_io_uring, 0);
assert(ret >= 0);
ret = test(&m_io_uring, args);
io_uring_queue_exit(&m_io_uring);
return ret;
}
-static int test_accept_multishot_wrong_arg()
+static int test_accept_multishot_wrong_arg(void)
{
struct io_uring m_io_uring;
struct io_uring_cqe *cqe;
struct io_uring_sqe *sqe;
int fd, ret;
ret = io_uring_queue_init(4, &m_io_uring, 0);
assert(ret >= 0);
fd = start_accept_listen(NULL, 0, 0);
diff --git a/test/fc2a85cb02ef.c b/test/fc2a85cb02ef.c
index 6fd5fd8..c828f67 100644
--- a/test/fc2a85cb02ef.c
+++ b/test/fc2a85cb02ef.c
@@ -47,21 +47,21 @@ static int inject_fault(int nth)
fd = open("/proc/thread-self/fail-nth", O_RDWR);
if (fd == -1)
exit(1);
char buf[16];
sprintf(buf, "%d", nth + 1);
if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf))
exit(1);
return fd;
}
-static int setup_fault()
+static int setup_fault(void)
{
static struct {
const char* file;
const char* val;
bool fatal;
} files[] = {
{"/sys/kernel/debug/failslab/ignore-gfp-wait", "N", true},
{"/sys/kernel/debug/failslab/verbose", "0", false},
{"/sys/kernel/debug/fail_futex/ignore-private", "N", false},
{"/sys/kernel/debug/fail_page_alloc/verbose", "0", false},
diff --git a/test/pollfree.c b/test/pollfree.c
index d753ffe..ebd88b1 100644
--- a/test/pollfree.c
+++ b/test/pollfree.c
@@ -245,21 +245,21 @@ static void kill_and_wait(int pid, int* status)
}
close(fd);
}
closedir(dir);
} else {
}
while (waitpid(-1, status, __WALL) != pid) {
}
}
-static void setup_test()
+static void setup_test(void)
{
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
}
struct thread_t {
int created, call;
event_t ready, done;
};
diff --git a/test/sqpoll-disable-exit.c b/test/sqpoll-disable-exit.c
index 76b6cf5..5283702 100644
--- a/test/sqpoll-disable-exit.c
+++ b/test/sqpoll-disable-exit.c
@@ -129,21 +129,21 @@ static void kill_and_wait(int pid, int* status)
}
close(fd);
}
closedir(dir);
} else {
}
while (waitpid(-1, status, __WALL) != pid) {
}
}
-static void setup_test()
+static void setup_test(void)
{
prctl(PR_SET_PDEATHSIG, SIGKILL, 0, 0, 0);
setpgrp();
write_file("/proc/self/oom_score_adj", "1000");
}
static void execute_one(void);
#define WAIT_FLAGS __WALL
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 4/8] test/ring-leak: Remove a "break" statement in a "for loop"
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
` (2 preceding siblings ...)
2022-12-19 15:49 ` [PATCH liburing v1 3/8] tests: Fix `-Wstrict-prototypes` warnings from Clang Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 5/8] tests: Fix clang `-Wunreachable-code` warning Ammar Faizi
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List
Clang says:
ring-leak.c:235:21: warning: loop will run at most once \
(loop increment never executed) [-Wunreachable-code-loop-increment]
for (i = 0; i < 2; i++) {
^~~
This "break" statement makes the "for loop" meaningless. Remove it. We
are supposed to run the test function with 2 different arguments using
this "for loop".
Signed-off-by: Ammar Faizi <[email protected]>
---
test/ring-leak.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/test/ring-leak.c b/test/ring-leak.c
index f2ba74f..97b5a3f 100644
--- a/test/ring-leak.c
+++ b/test/ring-leak.c
@@ -234,21 +234,20 @@ int main(int argc, char *argv[])
for (i = 0; i < 2; i++) {
bool update = !!(i & 1);
ret = test_scm_cycles(update);
if (ret) {
fprintf(stderr, "test_scm_cycles() failed %i\n",
update);
return 1;
}
- break;
}
if (socketpair(AF_UNIX, SOCK_DGRAM, 0, sp) != 0) {
perror("Failed to create Unix-domain socket pair\n");
return 1;
}
ring_fd = get_ring_fd();
if (ring_fd < 0)
return 1;
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 5/8] tests: Fix clang `-Wunreachable-code` warning
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
` (3 preceding siblings ...)
2022-12-19 15:49 ` [PATCH liburing v1 4/8] test/ring-leak: Remove a "break" statement in a "for loop" Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 6/8] tests: Declare internal variables as static Ammar Faizi
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List
Clang says:
fadvise.c:190:3: warning: code will never be executed [-Wunreachable-code]
fprintf(stderr, "Suspicious timings\n");
^~~~~~~
fadvise.c:189:6: note: silence by adding parentheses to mark code as \
explicitly dead
if (0 && bad > good) {
^
/* DISABLES CODE */ ( )
madvise.c:186:3: warning: code will never be executed [-Wunreachable-code]
fprintf(stderr, "Suspicious timings (%u > %u)\n", bad, good);
^~~~~~~
madvise.c:185:6: note: silence by adding parentheses to mark code as \
explicitly dead
if (0 && bad > good)
^
/* DISABLES CODE */ ( )
Add parentheses to silence the warning.
Signed-off-by: Ammar Faizi <[email protected]>
---
test/fadvise.c | 2 +-
test/madvise.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/fadvise.c b/test/fadvise.c
index 889f447..4f4d85f 100644
--- a/test/fadvise.c
+++ b/test/fadvise.c
@@ -179,21 +179,21 @@ int main(int argc, char *argv[])
goto err;
} else if (!ret)
good++;
else if (ret == 2)
bad++;
if (i >= MIN_LOOPS && !bad)
break;
}
/* too hard to reliably test, just ignore */
- if (0 && bad > good) {
+ if ((0) && bad > good) {
fprintf(stderr, "Suspicious timings\n");
goto err;
}
if (fname != argv[1])
unlink(fname);
io_uring_queue_exit(&ring);
return T_EXIT_PASS;
err:
if (fname != argv[1])
diff --git a/test/madvise.c b/test/madvise.c
index 8848143..7938ec4 100644
--- a/test/madvise.c
+++ b/test/madvise.c
@@ -175,21 +175,21 @@ int main(int argc, char *argv[])
goto err;
} else if (!ret)
good++;
else if (ret == 2)
bad++;
if (i >= MIN_LOOPS && !bad)
break;
}
/* too hard to reliably test, just ignore */
- if (0 && bad > good)
+ if ((0) && bad > good)
fprintf(stderr, "Suspicious timings (%u > %u)\n", bad, good);
if (fname != argv[1])
unlink(fname);
io_uring_queue_exit(&ring);
return T_EXIT_PASS;
err:
if (fname != argv[1])
unlink(fname);
return T_EXIT_FAIL;
}
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 6/8] tests: Declare internal variables as static
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
` (4 preceding siblings ...)
2022-12-19 15:49 ` [PATCH liburing v1 5/8] tests: Fix clang `-Wunreachable-code` warning Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 7/8] github: Add more extra flags for clang build Ammar Faizi
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List
This is a preparation patch to add `-Wmissing-variable-declarations`
to the GitHub bot CI. It ensures variables that are not used outside
the translation unit be declared as static.
The error message looks like this:
35fa71a030ca.c:265:1: note: declare 'static' if the variable is not intended \
to be used outside of this translation unit
uint64_t r[1] = {0xffffffffffffffff};
^
1 error generated.
Signed-off-by: Ammar Faizi <[email protected]>
---
test/232c93d07b74.c | 6 +++---
test/35fa71a030ca.c | 2 +-
test/a0908ae19763.c | 2 +-
test/accept-link.c | 4 ++--
test/accept-reuse.c | 2 +-
test/double-poll-crash.c | 2 +-
test/fc2a85cb02ef.c | 2 +-
test/files-exit-hang-timeout.c | 4 ++--
test/nvme.h | 4 ++--
test/poll-link.c | 4 ++--
test/pollfree.c | 2 +-
test/sqpoll-cancel-hang.c | 2 +-
test/test.h | 3 ++-
test/timeout-new.c | 6 +++---
14 files changed, 23 insertions(+), 22 deletions(-)
diff --git a/test/232c93d07b74.c b/test/232c93d07b74.c
index 74cc063..4c65b39 100644
--- a/test/232c93d07b74.c
+++ b/test/232c93d07b74.c
@@ -26,23 +26,23 @@
#define RECV_BUFF_SIZE 2
#define SEND_BUFF_SIZE 3
struct params {
int tcp;
int non_blocking;
__be16 bind_port;
};
-pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-int rcv_ready = 0;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static int rcv_ready = 0;
static void set_rcv_ready(void)
{
pthread_mutex_lock(&mutex);
rcv_ready = 1;
pthread_cond_signal(&cond);
pthread_mutex_unlock(&mutex);
}
diff --git a/test/35fa71a030ca.c b/test/35fa71a030ca.c
index 5540d8d..3e2eddb 100644
--- a/test/35fa71a030ca.c
+++ b/test/35fa71a030ca.c
@@ -255,21 +255,21 @@ static void loop(void)
break;
sleep_ms(1);
if (current_time_ms() - start < 5 * 1000)
continue;
kill_and_wait(pid, &status);
break;
}
}
}
-uint64_t r[1] = {0xffffffffffffffff};
+static uint64_t r[1] = {0xffffffffffffffff};
void execute_call(int call)
{
long res;
switch (call) {
case 0:
*(uint32_t*)0x20000040 = 0;
*(uint32_t*)0x20000044 = 0;
*(uint32_t*)0x20000048 = 0;
*(uint32_t*)0x2000004c = 0;
diff --git a/test/a0908ae19763.c b/test/a0908ae19763.c
index 8f6aaad..d0c2855 100644
--- a/test/a0908ae19763.c
+++ b/test/a0908ae19763.c
@@ -7,21 +7,21 @@
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <unistd.h>
#include "liburing.h"
#include "helpers.h"
#include "../src/syscall.h"
-uint64_t r[1] = {0xffffffffffffffff};
+static uint64_t r[1] = {0xffffffffffffffff};
int main(int argc, char *argv[])
{
if (argc > 1)
return T_EXIT_SKIP;
mmap((void *) 0x20000000, 0x1000000, 3, 0x32, -1, 0);
intptr_t res = 0;
*(uint32_t*)0x20000080 = 0;
*(uint32_t*)0x20000084 = 0;
*(uint32_t*)0x20000088 = 0;
diff --git a/test/accept-link.c b/test/accept-link.c
index 4d42f15..32f73f4 100644
--- a/test/accept-link.c
+++ b/test/accept-link.c
@@ -9,22 +9,22 @@
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
#include <netinet/in.h>
#include <poll.h>
#include <arpa/inet.h>
#include "liburing.h"
#include "helpers.h"
-pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
static int recv_thread_ready = 0;
static int recv_thread_done = 0;
static void signal_var(int *var)
{
pthread_mutex_lock(&mutex);
*var = 1;
pthread_cond_signal(&cond);
pthread_mutex_unlock(&mutex);
diff --git a/test/accept-reuse.c b/test/accept-reuse.c
index 7df5e56..0808866 100644
--- a/test/accept-reuse.c
+++ b/test/accept-reuse.c
@@ -4,21 +4,21 @@
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include "liburing.h"
#include "helpers.h"
#include "../src/syscall.h"
-struct io_uring io_uring;
+static struct io_uring io_uring;
static int sys_io_uring_enter(const int fd, const unsigned to_submit,
const unsigned min_complete,
const unsigned flags, sigset_t * const sig)
{
return __sys_io_uring_enter(fd, to_submit, min_complete, flags, sig);
}
static int submit_sqe(void)
{
diff --git a/test/double-poll-crash.c b/test/double-poll-crash.c
index a0cc985..54f88f4 100644
--- a/test/double-poll-crash.c
+++ b/test/double-poll-crash.c
@@ -102,21 +102,21 @@ static long syz_open_dev(volatile long a0, volatile long a1, volatile long a2)
strncpy(buf, (char*)a0, sizeof(buf) - 1);
buf[sizeof(buf) - 1] = 0;
while ((hash = strchr(buf, '#'))) {
*hash = '0' + (char)(a1 % 10);
a1 /= 10;
}
return open(buf, a2, 0);
}
}
-uint64_t r[4] = {0xffffffffffffffff, 0x0, 0x0, 0xffffffffffffffff};
+static uint64_t r[4] = {0xffffffffffffffff, 0x0, 0x0, 0xffffffffffffffff};
int main(int argc, char *argv[])
{
void *mmap_ret;
#if !defined(__i386) && !defined(__x86_64__)
return T_EXIT_SKIP;
#endif
if (argc > 1)
return T_EXIT_SKIP;
diff --git a/test/fc2a85cb02ef.c b/test/fc2a85cb02ef.c
index c828f67..cd1af39 100644
--- a/test/fc2a85cb02ef.c
+++ b/test/fc2a85cb02ef.c
@@ -72,21 +72,21 @@ static int setup_fault(void)
unsigned i;
for (i = 0; i < sizeof(files) / sizeof(files[0]); i++) {
if (!write_file(files[i].file, files[i].val)) {
if (files[i].fatal)
return 1;
}
}
return 0;
}
-uint64_t r[2] = {0xffffffffffffffff, 0xffffffffffffffff};
+static uint64_t r[2] = {0xffffffffffffffff, 0xffffffffffffffff};
int main(int argc, char *argv[])
{
if (argc > 1)
return T_EXIT_SKIP;
mmap((void *) 0x20000000ul, 0x1000000ul, 3ul, 0x32ul, -1, 0);
if (setup_fault()) {
printf("Test needs failslab/fail_futex/fail_page_alloc enabled, skipped\n");
return T_EXIT_SKIP;
}
diff --git a/test/files-exit-hang-timeout.c b/test/files-exit-hang-timeout.c
index 45f01ea..6f77b7c 100644
--- a/test/files-exit-hang-timeout.c
+++ b/test/files-exit-hang-timeout.c
@@ -14,23 +14,23 @@
#include <sys/socket.h>
#include <unistd.h>
#include <poll.h>
#include "liburing.h"
#include "helpers.h"
#define BACKLOG 512
#define PORT 9100
-struct io_uring ring;
+static struct io_uring ring;
-struct __kernel_timespec ts = {
+static struct __kernel_timespec ts = {
.tv_sec = 300,
.tv_nsec = 0,
};
static void add_timeout(struct io_uring *ring, int fd)
{
struct io_uring_sqe *sqe;
sqe = io_uring_get_sqe(ring);
io_uring_prep_timeout(sqe, &ts, 100, 0);
diff --git a/test/nvme.h b/test/nvme.h
index 52f4172..1254b92 100644
--- a/test/nvme.h
+++ b/test/nvme.h
@@ -50,22 +50,22 @@ struct nvme_uring_cmd {
enum nvme_admin_opcode {
nvme_admin_identify = 0x06,
};
enum nvme_io_opcode {
nvme_cmd_write = 0x01,
nvme_cmd_read = 0x02,
};
-int nsid;
-__u32 lba_shift;
+static int nsid;
+static __u32 lba_shift;
struct nvme_lbaf {
__le16 ms;
__u8 ds;
__u8 rp;
};
struct nvme_id_ns {
__le64 nsze;
__le64 ncap;
diff --git a/test/poll-link.c b/test/poll-link.c
index b94f954..c0b1cf5 100644
--- a/test/poll-link.c
+++ b/test/poll-link.c
@@ -9,22 +9,22 @@
#include <pthread.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
#include <netinet/in.h>
#include <poll.h>
#include <arpa/inet.h>
#include "helpers.h"
#include "liburing.h"
-pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
static int recv_thread_ready = 0;
static int recv_thread_done = 0;
static void signal_var(int *var)
{
pthread_mutex_lock(&mutex);
*var = 1;
pthread_cond_signal(&cond);
pthread_mutex_unlock(&mutex);
diff --git a/test/pollfree.c b/test/pollfree.c
index ebd88b1..010db65 100644
--- a/test/pollfree.c
+++ b/test/pollfree.c
@@ -335,21 +335,21 @@ static void loop(void)
kill_and_wait(pid, &status);
break;
}
}
}
#ifndef __NR_io_uring_enter
#define __NR_io_uring_enter 426
#endif
-uint64_t r[4] = {0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0x0};
+static uint64_t r[4] = {0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0x0};
void execute_call(int call)
{
intptr_t res = 0;
switch (call) {
case 0:
*(uint64_t*)0x200000c0 = 0;
res = syscall(__NR_signalfd4, -1, 0x200000c0ul, 8ul, 0ul);
if (res != -1)
r[0] = res;
diff --git a/test/sqpoll-cancel-hang.c b/test/sqpoll-cancel-hang.c
index cd1c309..7faefa2 100644
--- a/test/sqpoll-cancel-hang.c
+++ b/test/sqpoll-cancel-hang.c
@@ -32,21 +32,21 @@ static uint64_t current_time_ms(void)
static void kill_and_wait(int pid, int* status)
{
kill(-pid, SIGKILL);
kill(pid, SIGKILL);
while (waitpid(-1, status, __WALL) != pid) {
}
}
#define WAIT_FLAGS __WALL
-uint64_t r[3] = {0xffffffffffffffff, 0x0, 0x0};
+static uint64_t r[3] = {0xffffffffffffffff, 0x0, 0x0};
static long syz_io_uring_setup(volatile long a0, volatile long a1,
volatile long a2, volatile long a3, volatile long a4, volatile long
a5)
{
uint32_t entries = (uint32_t)a0;
struct io_uring_params* setup_params = (struct io_uring_params*)a1;
void* vma1 = (void*)a2;
void* vma2 = (void*)a3;
void** ring_ptr_out = (void**)a4;
diff --git a/test/test.h b/test/test.h
index 3628163..e99a8d2 100644
--- a/test/test.h
+++ b/test/test.h
@@ -7,21 +7,22 @@
#ifdef __cplusplus
extern "C" {
#endif
typedef struct io_uring_test_config {
unsigned int flags;
const char *description;
} io_uring_test_config;
-io_uring_test_config io_uring_test_configs[] = {
+__attribute__((__unused__))
+static io_uring_test_config io_uring_test_configs[] = {
{ 0, "default" },
{ IORING_SETUP_SQE128, "large SQE"},
{ IORING_SETUP_CQE32, "large CQE"},
{ IORING_SETUP_SQE128 | IORING_SETUP_CQE32, "large SQE/CQE" },
};
#define FOR_ALL_TEST_CONFIGS \
for (int i = 0; i < sizeof(io_uring_test_configs) / sizeof(io_uring_test_configs[0]); i++)
#define IORING_GET_TEST_CONFIG_FLAGS() (io_uring_test_configs[i].flags)
diff --git a/test/timeout-new.c b/test/timeout-new.c
index 8640678..35cb7bb 100644
--- a/test/timeout-new.c
+++ b/test/timeout-new.c
@@ -5,23 +5,23 @@
*/
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
#include <pthread.h>
#include "liburing.h"
#define TIMEOUT_MSEC 200
#define TIMEOUT_SEC 10
-int thread_ret0, thread_ret1;
-int cnt = 0;
-pthread_mutex_t mutex;
+static int thread_ret0, thread_ret1;
+static int cnt = 0;
+static pthread_mutex_t mutex;
static void msec_to_ts(struct __kernel_timespec *ts, unsigned int msec)
{
ts->tv_sec = msec / 1000;
ts->tv_nsec = (msec % 1000) * 1000000;
}
static unsigned long long mtime_since(const struct timeval *s,
const struct timeval *e)
{
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 7/8] github: Add more extra flags for clang build
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
` (5 preceding siblings ...)
2022-12-19 15:49 ` [PATCH liburing v1 6/8] tests: Declare internal variables as static Ammar Faizi
@ 2022-12-19 15:49 ` Ammar Faizi
2022-12-19 15:50 ` [PATCH liburing v1 8/8] CHANGELOG: Update the CHANGELOG file Ammar Faizi
2022-12-19 17:00 ` [PATCH liburing v1 0/8] liburing updates Jens Axboe
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:49 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List
Add these 4 flags:
-Wstrict-prototypes
-Wunreachable-code-loop-increment
-Wunreachable-code
-Wmissing-variable-declarations
for stricter clang build.
Signed-off-by: Ammar Faizi <[email protected]>
---
.github/workflows/build.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4c0bd26..c2aa3e6 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -20,21 +20,21 @@ jobs:
cc: x86_64-linux-gnu-gcc
cxx: x86_64-linux-gnu-g++
# x86-64 clang
- arch: x86_64
cc_pkg: clang
cxx_pkg: clang
cc: clang
cxx: clang++
liburing_extra_flags: -Wshorten-64-to-32
- extra_flags: -Wmissing-prototypes
+ extra_flags: -Wmissing-prototypes -Wstrict-prototypes -Wunreachable-code-loop-increment -Wunreachable-code -Wmissing-variable-declarations
# x86 (32-bit) gcc
- arch: i686
cc_pkg: gcc-i686-linux-gnu
cxx_pkg: g++-i686-linux-gnu
cc: i686-linux-gnu-gcc
cxx: i686-linux-gnu-g++
# aarch64 gcc
- arch: aarch64
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH liburing v1 8/8] CHANGELOG: Update the CHANGELOG file
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
` (6 preceding siblings ...)
2022-12-19 15:49 ` [PATCH liburing v1 7/8] github: Add more extra flags for clang build Ammar Faizi
@ 2022-12-19 15:50 ` Ammar Faizi
2022-12-19 17:00 ` [PATCH liburing v1 0/8] liburing updates Jens Axboe
8 siblings, 0 replies; 10+ messages in thread
From: Ammar Faizi @ 2022-12-19 15:50 UTC (permalink / raw)
To: Jens Axboe
Cc: Ammar Faizi, Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List, Christian Hergert, Christian Mazakas
Cc: Christian Hergert <[email protected]> # version check
Cc: Christian Mazakas <[email protected]> # FFI support
Signed-off-by: Ammar Faizi <[email protected]>
---
CHANGELOG | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/CHANGELOG b/CHANGELOG
index 09511af..68b732c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,10 +1,16 @@
+liburing-2.4 release
+
+- Add io_uring_{major,minor,check}_version() functions.
+- Add IO_URING_{MAJOR,MINOR,CHECK}_VERSION() macros.
+- FFI support (for non-C/C++ languages integration).
+
liburing-2.3 release
- Support non-libc build for aarch64.
- Add io_uring_{enter,enter2,register,setup} syscall functions.
- Add sync cancel interface, io_uring_register_sync_cancel().
- Fix return value of io_uring_submit_and_wait_timeout() to match the
man page.
- Improvements to the regression tests
- Add support and test case for passthrough IO
- Add recv and recvmsg multishot helpers and support
--
Ammar Faizi
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH liburing v1 0/8] liburing updates
2022-12-19 15:49 [PATCH liburing v1 0/8] liburing updates Ammar Faizi
` (7 preceding siblings ...)
2022-12-19 15:50 ` [PATCH liburing v1 8/8] CHANGELOG: Update the CHANGELOG file Ammar Faizi
@ 2022-12-19 17:00 ` Jens Axboe
8 siblings, 0 replies; 10+ messages in thread
From: Jens Axboe @ 2022-12-19 17:00 UTC (permalink / raw)
To: Ammar Faizi
Cc: Pavel Begunkov, Gilang Fachrezy, Muhammad Rizki,
VNLX Kernel Department, GNU/Weeb Mailing List,
io-uring Mailing List
On Mon, 19 Dec 2022 22:49:52 +0700, Ammar Faizi wrote:
> liburing updates, there are 8 patches in this series:
>
> - Patch #1 is to add a missing SPDX-License-Idetifier.
> - Patch #2 is a Makefile warning fix due to the recent liburing
> version check feature.
> - Patch #3 to #6 are a preparation patch to make the clang build
> stricter.
> - Patch #7 is to apply extra clang flags to the GitHub bot CI.
> - Patch #8 is the CHANGELOG file update.
>
> [...]
Applied, thanks!
[1/8] ffi: Add SPDX-License-Idetifier
(no commit info)
[2/8] Makefile: Add a '+' char to silence a Makefile warning
(no commit info)
[3/8] tests: Fix `-Wstrict-prototypes` warnings from Clang
(no commit info)
[4/8] test/ring-leak: Remove a "break" statement in a "for loop"
(no commit info)
[5/8] tests: Fix clang `-Wunreachable-code` warning
(no commit info)
[6/8] tests: Declare internal variables as static
(no commit info)
[7/8] github: Add more extra flags for clang build
(no commit info)
[8/8] CHANGELOG: Update the CHANGELOG file
(no commit info)
Best regards,
--
Jens Axboe
^ permalink raw reply [flat|nested] 10+ messages in thread