From 3160ad4aa3e6be906f54aeb014345b8c14109525 Mon Sep 17 00:00:00 2001 From: Privacy Sandbox Team Date: Wed, 30 Oct 2024 12:11:04 +0000 Subject: [PATCH] Only mount /proc/self for native Java. Bug: 376434190 Change-Id: I1aefe988afea81f13bb3c993017be1819d092bd2 GitOrigin-RevId: 795edcb517b59c24191a2bb923026bd0b93a0ba2 --- .../byob/benchmark/roma_byob_benchmark.cc | 25 +++++++++++++++---- src/roma/byob/interface/BUILD.bazel | 4 +-- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/roma/byob/benchmark/roma_byob_benchmark.cc b/src/roma/byob/benchmark/roma_byob_benchmark.cc index 81d9f3d48..6b5dd2d66 100644 --- a/src/roma/byob/benchmark/roma_byob_benchmark.cc +++ b/src/roma/byob/benchmark/roma_byob_benchmark.cc @@ -132,16 +132,21 @@ std::string LoadCode(ByobSampleService<>& roma_service, return *std::move(code_id); } +ByobSampleService<> GetRomaService( + Mode mode, ::privacy_sandbox::server_common::byob::Config<> config) { + absl::StatusOr> sample_interface = + ByobSampleService<>::Create(config, mode); + CHECK_OK(sample_interface); + return *std::move(sample_interface); +} + ByobSampleService<> GetRomaService(Mode mode, int num_workers) { ::privacy_sandbox::server_common::byob::Config<> config = { .num_workers = num_workers, .roma_container_name = "roma_server", .function_bindings = {FunctionBindingObjectV2<>{"example", [](auto&) {}}}, }; - absl::StatusOr> sample_interface = - ByobSampleService<>::Create(config, mode); - CHECK_OK(sample_interface); - return *std::move(sample_interface); + return GetRomaService(mode, std::move(config)); } void VerifyResponse(SampleResponse bin_response, @@ -386,8 +391,18 @@ void BM_ProcessRequestUsingCallback(benchmark::State& state) { void BM_ProcessRequestMultipleLanguages(benchmark::State& state) { Language lang = static_cast(state.range(0)); + std::string mounts = "/lib,/lib64,/usr"; + if (lang == Language::kJava) { + mounts += ",/proc/self"; + } + ::privacy_sandbox::server_common::byob::Config<> config = { + .num_workers = 2, + .roma_container_name = "roma_server", + .lib_mounts = std::move(mounts), + .function_bindings = {FunctionBindingObjectV2<>{"example", [](auto&) {}}}, + }; ByobSampleService<> roma_service = - GetRomaService(Mode::kModeSandbox, /*num_workers=*/2); + GetRomaService(Mode::kModeSandbox, std::move(config)); std::string code_token = LoadCode(roma_service, GetFilePathFromLanguage(lang)); diff --git a/src/roma/byob/interface/BUILD.bazel b/src/roma/byob/interface/BUILD.bazel index eea41547f..bb70ff961 100644 --- a/src/roma/byob/interface/BUILD.bazel +++ b/src/roma/byob/interface/BUILD.bazel @@ -23,10 +23,10 @@ cc_library( 'CONTAINER_ROOT_RELPATH=\\"{}\\"'.format(roma_container_root_dir), ] + select({ "@platforms//cpu:arm64": [ - 'LIB_MOUNTS=\\"/lib,/usr,/proc/self\\"', + 'LIB_MOUNTS=\\"/lib,/usr\\"', ], "@platforms//cpu:x86_64": [ - 'LIB_MOUNTS=\\"/lib,/lib64,/usr,/proc/self\\"', + 'LIB_MOUNTS=\\"/lib,/lib64,/usr\\"', ], }), visibility = ["//visibility:public"],