diff options
Diffstat (limited to 'src/lib/syscall_misc.C')
-rw-r--r-- | src/lib/syscall_misc.C | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/syscall_misc.C b/src/lib/syscall_misc.C index 7f490e2ac..f2b50bb01 100644 --- a/src/lib/syscall_misc.C +++ b/src/lib/syscall_misc.C @@ -85,7 +85,23 @@ int cpu_master_winkle() task_affinity_pin(); task_affinity_migrate_to_master(); - int rc = reinterpret_cast<int64_t>(_syscall0(MISC_CPUWINKLE)); + int rc = reinterpret_cast<int64_t>( + _syscall1(MISC_CPUWINKLE, + reinterpret_cast<void*>(WINKLE_SCOPE_MASTER))); + + task_affinity_unpin(); + + return rc; +} + +int cpu_all_winkle() +{ + task_affinity_pin(); + task_affinity_migrate_to_master(); + + int rc = reinterpret_cast<int64_t>( + _syscall1(MISC_CPUWINKLE, + reinterpret_cast<void*>(WINKLE_SCOPE_ALL))); task_affinity_unpin(); |