summaryrefslogtreecommitdiff
path: root/simpleperf/workload.cpp
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-02-01 17:26:26 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-02-01 17:26:26 +0000
commitac42184867e07d1ccf4c4bcaf64d9edfd680c4a7 (patch)
tree1dd5c9a3b955c541c00b4621fa3e02051606f028 /simpleperf/workload.cpp
parent1861f93faf03e6dbf5818a77df46e0fbe527eed3 (diff)
parentbfe2d06be19a7f1e80b9487549348f950fee6903 (diff)
downloadextras-ac42184867e07d1ccf4c4bcaf64d9edfd680c4a7.tar.gz
Snap for 9550700 from bfe2d06be19a7f1e80b9487549348f950fee6903 to mainline-art-releaseaml_art_331813100aml_art_331813010aml_art_331711080aml_art_331612010android13-mainline-art-release
Change-Id: Idf46f826377e6561b32a8741df1eb8b816eb4bec
Diffstat (limited to 'simpleperf/workload.cpp')
-rw-r--r--simpleperf/workload.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/simpleperf/workload.cpp b/simpleperf/workload.cpp
index 4bb7c540..92c6537b 100644
--- a/simpleperf/workload.cpp
+++ b/simpleperf/workload.cpp
@@ -18,6 +18,7 @@
#include <errno.h>
#include <fcntl.h>
+#include <sched.h>
#include <sys/prctl.h>
#include <sys/wait.h>
#include <unistd.h>
@@ -160,6 +161,18 @@ void Workload::ChildProcessFn(int start_signal_fd, int exec_child_fd) {
}
}
+bool Workload::SetCpuAffinity(int cpu) {
+ CHECK_EQ(work_state_, NotYetStartNewProcess);
+ cpu_set_t mask;
+ CPU_ZERO(&mask);
+ CPU_SET(cpu, &mask);
+ if (sched_setaffinity(GetPid(), sizeof(mask), &mask) != 0) {
+ PLOG(WARNING) << "sched_setaffinity failed";
+ return false;
+ }
+ return true;
+}
+
bool Workload::Start() {
CHECK_EQ(work_state_, NotYetStartNewProcess);
char start_signal = 1;