diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-08-31 23:30:01 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-08-31 23:30:01 +0000 |
commit | e4df6724d440458f7c3ed6f4e709b42a492a52a8 (patch) | |
tree | 7423d08ebb843064b0a468d3007a7e6f56287aa2 /simpleperf/workload.cpp | |
parent | 48f188ddea5c4925121a34655187585dcdb04794 (diff) | |
parent | e275d1e943acdaeaaa644dc7cb1db5c4cf73f4e8 (diff) | |
download | extras-android13-qpr1-s4-release.tar.gz |
Snap for 9014491 from e275d1e943acdaeaaa644dc7cb1db5c4cf73f4e8 to tm-qpr1-releaseandroid-13.0.0_r30android-13.0.0_r29android-13.0.0_r28android-13.0.0_r27android-13.0.0_r24android-13.0.0_r23android-13.0.0_r22android-13.0.0_r21android-13.0.0_r20android-13.0.0_r19android-13.0.0_r18android-13.0.0_r17android-13.0.0_r16android13-qpr1-s8-releaseandroid13-qpr1-s7-releaseandroid13-qpr1-s6-releaseandroid13-qpr1-s5-releaseandroid13-qpr1-s4-releaseandroid13-qpr1-s3-releaseandroid13-qpr1-s2-releaseandroid13-qpr1-s1-releaseandroid13-qpr1-release
Change-Id: I17038ae8868dee099c35012fea1ac753422720e3
Diffstat (limited to 'simpleperf/workload.cpp')
-rw-r--r-- | simpleperf/workload.cpp | 13 |
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; |