All of lore.kernel.org
 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 <ammarfaizi2@gnuweeb.org>
---

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 <christian.mazakas@gmail.com>
Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
---
 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 <chergert@redhat.com>
Fixes: 0d55ea19ccf2f34c5dd74f80846f9e5f133746ff ("version: generate io_uring_version.h from Makefile.common")
Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
---
 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 <ammarfaizi2@gnuweeb.org>
---
 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 <ammarfaizi2@gnuweeb.org>
---
 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 <ammarfaizi2@gnuweeb.org>
---
 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 <ammarfaizi2@gnuweeb.org>
---
 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 <ammarfaizi2@gnuweeb.org>
---
 .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 <chergert@redhat.com> # version check
Cc: Christian Mazakas <christian.mazakas@gmail.com> # FFI support
Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
---
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.