public inbox for [email protected]
 help / color / mirror / Atom feed
* [PATCH liburing v1 0/8] liburing updates
@ 2022-12-19 15:49 Ammar Faizi
  2022-12-19 15:49 ` [PATCH liburing v1 1/8] ffi: Add SPDX-License-Idetifier Ammar Faizi
                   ` (8 more replies)
  0 siblings, 9 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

Hi Jens,

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.

Signed-off-by: Ammar Faizi <[email protected]>
---

Ammar Faizi (8):
  ffi: Add SPDX-License-Idetifier
  Makefile: Add a '+' char to silence a Makefile warning
  tests: Fix `-Wstrict-prototypes` warnings from Clang
  test/ring-leak: Remove a "break" statement in a "for loop"
  tests: Fix clang `-Wunreachable-code` warning
  tests: Declare internal variables as static
  github: Add more extra flags for clang build
  CHANGELOG: Update the CHANGELOG file

 .github/workflows/build.yml    | 2 +-
 CHANGELOG                      | 6 ++++++
 Makefile                       | 2 +-
 src/ffi.c                      | 1 +
 test/232c93d07b74.c            | 6 +++---
 test/35fa71a030ca.c            | 4 ++--
 test/a0908ae19763.c            | 2 +-
 test/a4c0b3decb33.c            | 2 +-
 test/accept-link.c             | 4 ++--
 test/accept-reuse.c            | 2 +-
 test/accept.c                  | 2 +-
 test/double-poll-crash.c       | 2 +-
 test/fadvise.c                 | 2 +-
 test/fc2a85cb02ef.c            | 4 ++--
 test/files-exit-hang-timeout.c | 4 ++--
 test/madvise.c                 | 2 +-
 test/nvme.h                    | 4 ++--
 test/poll-link.c               | 4 ++--
 test/pollfree.c                | 4 ++--
 test/ring-leak.c               | 1 -
 test/sqpoll-cancel-hang.c      | 2 +-
 test/sqpoll-disable-exit.c     | 2 +-
 test/test.h                    | 3 ++-
 test/timeout-new.c             | 6 +++---
 24 files changed, 40 insertions(+), 33 deletions(-)


base-commit: 4458aa0372738e844008397f71c062bd8bfadcac
-- 
Ammar Faizi


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [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

end of thread, other threads:[~2022-12-19 17:00 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH liburing v1 3/8] tests: Fix `-Wstrict-prototypes` warnings from Clang 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
2022-12-19 15:49 ` [PATCH liburing v1 5/8] tests: Fix clang `-Wunreachable-code` warning Ammar Faizi
2022-12-19 15:49 ` [PATCH liburing v1 6/8] tests: Declare internal variables as static Ammar Faizi
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 ` [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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox