Enable an io-uring build
There exists a bug where calls that we previously thought were
non-blocking, actually do block when used with hwmon or filesystem fds.
This causes high latencies on the dbus interfaces when lots of sensors
are used in a single daemon, as is the case in PSUSensor.
This patchset moves the PSUSensor code over to using io-uring, through
boost asio, using the random_access_file class. This helps with
performance in a number of ways, the largest of which being that sensor
reads are no longer blocking.
Tested:
Booted the sensor system on Tyan S7106; dbus-monitor shows sensors
scanning normally.
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: I654eafcfab5a24b65b89c204ab43d81c7ae064cf
diff --git a/src/meson.build b/src/meson.build
index 0fe5f56..4c3d61c 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -14,6 +14,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -48,6 +49,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -66,6 +68,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -82,6 +85,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -99,6 +103,7 @@
i2c,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -114,6 +119,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -130,6 +136,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -146,6 +153,7 @@
'nvmesensor',
sources: nvme_srcs,
dependencies: nvme_deps,
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -164,6 +172,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,
@@ -180,6 +189,7 @@
thresholds_dep,
utils_dep,
],
+ cpp_args: uring_args,
implicit_include_directories: false,
include_directories: '../include',
install: true,