io_uring: add GCOV_PROFILE_URING Kconfig option
authorJens Axboe <axboe@kernel.dk>
Fri, 30 Aug 2024 16:52:02 +0000 (10:52 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 30 Aug 2024 16:52:02 +0000 (10:52 -0600)
If GCOV is enabled and this option is set, it enables code coverage
profiling of the io_uring subsystem. Only use this for test purposes,
as it will impact the runtime performance.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
init/Kconfig
io_uring/Makefile

index 5783a0b8751726ad97189d786dca9ee43cb8cd3c..3b6ca7cce03b17075712234b8c0b3b352c438a5a 100644 (file)
@@ -1687,6 +1687,19 @@ config IO_URING
          applications to submit and complete IO through submission and
          completion rings that are shared between the kernel and application.
 
+config GCOV_PROFILE_URING
+       bool "Enable GCOV profiling on the io_uring subsystem"
+       depends on GCOV_KERNEL
+       help
+         Enable GCOV profiling on the io_uring subsystem, to facilitate
+         code coverage testing.
+
+         If unsure, say N.
+
+         Note that this will have a negative impact on the performance of
+         the io_uring subsystem, hence this should only be enabled for
+         specific test purposes.
+
 config ADVISE_SYSCALLS
        bool "Enable madvise/fadvise syscalls" if EXPERT
        default y
index 61923e11c767722c499e2c8914a3e0ee591f7ac4..53167bef37d77e1fc8db935bcc8ed5f21dbec590 100644 (file)
@@ -2,6 +2,10 @@
 #
 # Makefile for io_uring
 
+ifdef CONFIG_GCOV_PROFILE_URING
+GCOV_PROFILE := y
+endif
+
 obj-$(CONFIG_IO_URING)         += io_uring.o opdef.o kbuf.o rsrc.o notif.o \
                                        tctx.o filetable.o rw.o net.o poll.o \
                                        eventfd.o uring_cmd.o openclose.o \