]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw: switch back to boost::asio for spawn() and yield_context
authorCasey Bodley <cbodley@redhat.com>
Thu, 15 Feb 2024 03:53:47 +0000 (22:53 -0500)
committerCasey Bodley <cbodley@redhat.com>
Mon, 13 May 2024 16:57:01 +0000 (12:57 -0400)
commit9dd892e289b32a90b24d55ab8e1b7d7601af21ca
tree1a1c0157205bb9d6adf0e3572b01f18f62d40916
parent911735290919e84429984b4342dd17bb445187a1
rgw: switch back to boost::asio for spawn() and yield_context

a fork of boost::asio::spawn() was introduced in 2020 with spawn::spawn() from #31580. this fork enabled rgw to customize how the coroutine stacks are allocated in order to avoid stack overflows in frontend request coroutines. this customization was based on a StackAllocator concept from the boost::context library

in boost 1.80, that same StackAllocator overload was added to boost::asio::spawn(), along with other improvements like per-op cancellation. now that boost has everything we need, switch back and drop the spawn submodule

this required switching a lot of async functions from async_completion<> to async_initiate<>. similar changes were necessary to enable the c++20 coroutine token boost::asio::use_awaitable

Signed-off-by: Casey Bodley <cbodley@redhat.com>
40 files changed:
src/cls/CMakeLists.txt
src/common/async/yield_context.h
src/crypto/isa-l/CMakeLists.txt
src/crypto/openssl/CMakeLists.txt
src/crypto/qat/CMakeLists.txt
src/crypto/qat/qcccrypto.cc
src/rgw/CMakeLists.txt
src/rgw/driver/d4n/d4n_directory.cc
src/rgw/driver/d4n/d4n_policy.cc
src/rgw/driver/dbstore/CMakeLists.txt
src/rgw/driver/rados/cls_fifo_legacy.h
src/rgw/driver/rados/rgw_bucket.cc
src/rgw/driver/rados/rgw_notify.cc
src/rgw/driver/rados/rgw_pubsub_push.cc
src/rgw/driver/rados/rgw_rados.cc
src/rgw/driver/rados/rgw_reshard.cc
src/rgw/driver/rados/rgw_reshard.h
src/rgw/driver/rados/rgw_tools.cc
src/rgw/driver/rados/topic_migration.cc
src/rgw/driver/rados/topic_migration.h
src/rgw/rgw_aio.cc
src/rgw/rgw_aio_throttle.h
src/rgw/rgw_asio_frontend.cc
src/rgw/rgw_d3n_cacherequest.h
src/rgw/rgw_op.cc
src/rgw/rgw_redis_driver.cc
src/rgw/rgw_ssd_driver.cc
src/rgw/rgw_sync_checkpoint.cc
src/test/CMakeLists.txt
src/test/librados/CMakeLists.txt
src/test/librados/asio.cc
src/test/rgw/CMakeLists.txt
src/test/rgw/bench_rgw_ratelimit.cc
src/test/rgw/test_d4n_directory.cc
src/test/rgw/test_d4n_policy.cc
src/test/rgw/test_redis_driver.cc
src/test/rgw/test_rgw_dmclock_scheduler.cc
src/test/rgw/test_rgw_reshard_wait.cc
src/test/rgw/test_rgw_throttle.cc
src/test/rgw/test_ssd_driver.cc