From 304b61613b7761d043a83842c7e86c81935515d2 Mon Sep 17 00:00:00 2001 From: Michael Mueller Date: Wed, 10 Aug 2022 16:32:20 +0200 Subject: [PATCH] blinktree: Use all cores from assigned affinity space. --- .../app/blinktree/blinktree_benchmark/main.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/repos/mml/src/app/blinktree/blinktree_benchmark/main.cpp b/repos/mml/src/app/blinktree/blinktree_benchmark/main.cpp index 652777ba71..7b55f52d1e 100644 --- a/repos/mml/src/app/blinktree/blinktree_benchmark/main.cpp +++ b/repos/mml/src/app/blinktree/blinktree_benchmark/main.cpp @@ -7,6 +7,7 @@ #include #include #include +#include using namespace application::blinktree_benchmark; @@ -27,6 +28,7 @@ std::tuple create_benchmark(Libc::Env& env, in * * @return Return code of the application. */ +extern "C" void wait_for_continue(); int bt_main(Libc::Env &env, int count_arguments, char **arguments) { if (mx::system::Environment::is_numa_balancing_enabled()) @@ -42,11 +44,14 @@ int bt_main(Libc::Env &env, int count_arguments, char **arguments) mx::util::core_set cores{}; + //cores = benchmark->core_set(); while ((cores = benchmark->core_set())) { - mx::tasking::runtime_guard _(use_system_allocator, cores, prefetch_distance); + mx::tasking::runtime_guard _(false, cores, prefetch_distance); benchmark->start(); + //wait_for_continue(); } + Genode::log("Benchmark finished."); delete benchmark; @@ -168,9 +173,9 @@ std::tuple create_benchmark(Libc::Env &env, in } // Create the benchmark. - Genode::Heap _heap{env.ram(), env.rm()}; + //Genode::Heap _heap{env.ram(), env.rm()}; auto *benchmark = - new (_heap) Benchmark(env, std::move(cores), argument_parser.get("-i"), std::move(workload_files[0]), + new Benchmark(env, std::move(cores), argument_parser.get("-i"), std::move(workload_files[0]), std::move(workload_files[1]), argument_parser.get("-p"), isolation_level, preferred_synchronization_method, argument_parser.get("--print-stats"), argument_parser.get("--disable-check") == false, argument_parser.get("-o"), @@ -184,7 +189,12 @@ void Libc::Component::construct(Libc::Env &env) { mx::system::Environment::set_env(&env); - char *args[] = {"blinktree_benchmark", "1:4"}; + std::uint16_t cores = env.cpu().affinity_space().total(); + + char cores_arg[10]; + snprintf(cores_arg, 9, "1:%d", cores); + + char *args[] = {"blinktree_benchmark", cores_arg, "-pd", "3", "--sync4me"}; Libc::with_libc([&]() {