From: Adam C. Emerson Date: Tue, 6 Aug 2019 19:30:57 +0000 (-0400) Subject: RADOS: Completion handling benchmark X-Git-Tag: v15.1.0~843^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5e10fc54a74eedf83571c4fd2b65a12fdde83544;p=ceph.git RADOS: Completion handling benchmark Signed-off-by: Adam C. Emerson --- diff --git a/src/test/RADOS/CMakeLists.txt b/src/test/RADOS/CMakeLists.txt index 6add46d5c4f..8a5d3da8d5e 100644 --- a/src/test/RADOS/CMakeLists.txt +++ b/src/test/RADOS/CMakeLists.txt @@ -1,2 +1,7 @@ add_executable(ceph_test_RADOS_start_stop start_stop.cc) -target_link_libraries(ceph_test_RADOS_start_stop global libRADOS ${unittest_libs}) +target_link_libraries(ceph_test_RADOS_start_stop + global libRADOS ${unittest_libs}) + +add_executable(ceph_test_RADOS_completions completions.cc) +target_link_libraries(ceph_test_RADOS_completions Boost::system pthread + ${unittest_libs}) diff --git a/src/test/RADOS/completions.cc b/src/test/RADOS/completions.cc new file mode 100644 index 00000000000..d9c0e087005 --- /dev/null +++ b/src/test/RADOS/completions.cc @@ -0,0 +1,20 @@ +#include +#include +#include + +constexpr int max_completions = 10'000'000; +int completed = 0; + +boost::asio::io_context c; + +void nested_cb() { + if (++completed < max_completions) + c.post(&nested_cb); +} + +int main(void) { + c.post(&nested_cb); + c.run(); + assert(completed == max_completions); + return 0; +}