Skip to content

Commit

Permalink
meson: remove Boost TS executors
Browse files Browse the repository at this point in the history
BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT enables the older Networking TS
executors instead of the newer "Standard Executors" and is not
necessary for io_uring.  Remove this option to use the newer execution
model.

Tested:

Confirmed the io_uring interfaces are still being used.
```
 (gdb) bt
 #0  0x00007ffff7dfba47 in ?? () from /usr/lib64/liburing.so.2
 #1  0x00007ffff7dfbca2 in __io_uring_get_cqe () from /usr/lib64/liburing.so.2
 #2  0x000055555556dd72 in io_uring_wait_cqe_nr (ring=0x555555807c30, cqe_ptr=0x7fffffffd9f0, wait_nr=1)
    at /usr/include/liburing.h:1175
 #3  0x000055555556df08 in io_uring_wait_cqe (ring=0x555555807c30, cqe_ptr=0x7fffffffd9f0)
    at /usr/include/liburing.h:1248
 #4  0x000055555557ff4f in boost::asio::detail::io_uring_service::run (this=0x555555807bf0, usec=-1, ops=...)
    at ../subprojects/boost_1_83_0/boost/asio/detail/impl/io_uring_service.ipp:437
 #5  0x000055555557e7a4 in boost::asio::detail::scheduler::do_run_one (this=0x555555806020, lock=...,
    this_thread=..., ec=...) at ../subprojects/boost_1_83_0/boost/asio/detail/impl/scheduler.ipp:477
 #6  0x000055555557e27a in boost::asio::detail::scheduler::run (this=0x555555806020, ec=...)
    at ../subprojects/boost_1_83_0/boost/asio/detail/impl/scheduler.ipp:210
 #7  0x0000555555581725 in boost::asio::io_context::run (this=0x7fffffffdc90)
    at ../subprojects/boost_1_83_0/boost/asio/impl/io_context.ipp:64
 #8  0x0000555555573af0 in main () at ../src/HwmonTempMain.cpp:643
```

Ran QEMU for Bletchley and observed HwmonTempSensor still works:
```
root@bletchley:~# busctl introspect xyz.openbmc_project.HwmonTempSensor /xyz/openbmc_project/sensors/temperature/SLED1_THERM_LOCAL xyz.openbmc_project.Sensor.Value
NAME                             TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.MaxValue                        property  d         127                                      emits-change
.MinValue                        property  d         -128                                     emits-change
.Unit                            property  s         "xyz.openbmc_project.Sensor.Value.Uni... emits-change
.Value                           property  d         0                                        emits-change writable
```

Checking strace yields lots of io_uring related calls:
```
root@bletchley:~# strace -p 960
strace: Process 960 attached
io_uring_enter(4, 0, 1, IORING_ENTER_GETEVENTS, NULL, 8) = 0
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=240, tv_nsec=810659232}) = 0
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=240, tv_nsec=813407042}) = 0
io_uring_enter(4, 2, 0, 0, NULL, 8)     = 2
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=240, tv_nsec=816897328}) = 0
io_uring_enter(4, 0, 1, IORING_ENTER_GETEVENTS, NULL, 8) = 0
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=240, tv_nsec=822788059}) = 0
clock_gettime64(CLOCK_MONOTONIC, {tv_sec=240, tv_nsec=824535222}) = 0
```

Signed-off-by: Patrick Williams <[email protected]>
Change-Id: I0eb1d732a9bc3bb25e625b9f8fe3eeeaf8ae3143
  • Loading branch information
williamspatrick committed Feb 8, 2024
1 parent ea14f14 commit 495aba1
Showing 1 changed file with 0 additions and 2 deletions.
2 changes: 0 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ project(
# Enable io_uring for all daemons with below flags.
# '-DBOOST_ASIO_HAS_IO_URING',
# '-DBOOST_ASIO_DISABLE_EPOLL',
# '-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT',
# Note, there is currently an issue with CPUSensor when used in
# conjunction with io_uring. So it has not been changed to use
# random file access. But we'd like to enable it for all daemons.
Expand All @@ -29,7 +28,6 @@ add_project_arguments(
'-DBOOST_ALLOW_DEPRECATED_HEADERS',
'-DBOOST_ASIO_HAS_IO_URING',
'-DBOOST_ASIO_DISABLE_EPOLL',
'-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT',
language: 'cpp',
)

Expand Down

0 comments on commit 495aba1

Please sign in to comment.