root-project / root

The official repository for ROOT: analyzing, storing and visualizing big data, scientifically
https://root.cern
Other
2.68k stars 1.27k forks source link

ROOT does not properly recognize if `io_uring` is supported #12701

Open enirolf opened 1 year ago

enirolf commented 1 year ago

Describe the bug

Alma Linux 9 by default does not have io_uring support, even though its kernel version is recent enough (5.14). ROOT only checks if io_uring is present by checking if the liburing package is present (in cmake/modules/Findliburing.cmake), but not if io_uring is actually supported.

Expected behavior

~ROOT should not be able to build with the uring option if it is not supported by the kernel~
The presence of io_uring should be detected at runtime and a warning could be shown if ROOT was build with uring even though io_uring is not present.

To Reproduce

On a AL9 instance with liburing installed (dnf install liburing), run

grep -i uring /boot/config-$(uname -r)

to verify that io_uring is indeed not supported. The output should be

# CONFIG_IO_URING is not set

Build and install ROOT with -During=on. Run

root-config --has-uring

to confirm ROOT was in fact built with this option.

Setup

ROOT version: master (but most likely every ROOT version that supports the uring option) OS: Alma Linux 9

Additional context

A similar issue was opened (and subsequently fixed) in the ZFS repository: https://github.com/openzfs/zfs/issues/13648

jblomer commented 1 year ago

Actually, it may be ok to build uring support for ROOT, which depends only on the availability of the liburing user space library. When run in a container, it is well possible that the kernel does provide uring after all. So really, I think we need better runtime diagnostics.