From: Haomai Wang Date: Sun, 15 Mar 2015 16:09:24 +0000 (+0800) Subject: AsyncMessenger: Use Thread's method to support set affinity X-Git-Tag: v9.0.0~137^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3d8c09c27f54a5cde774d32e9e17845ee99c3473;p=ceph.git AsyncMessenger: Use Thread's method to support set affinity Signed-off-by: Haomai Wang --- diff --git a/src/msg/async/AsyncMessenger.cc b/src/msg/async/AsyncMessenger.cc index a3e25d4e2e47..6d140ceb76ac 100644 --- a/src/msg/async/AsyncMessenger.cc +++ b/src/msg/async/AsyncMessenger.cc @@ -19,9 +19,6 @@ #include #include #include -#ifdef HAVE_SCHED -#include -#endif #include "AsyncMessenger.h" @@ -290,27 +287,11 @@ void *Worker::entry() { ldout(cct, 10) << __func__ << " starting" << dendl; if (cct->_conf->ms_async_set_affinity) { -#ifdef HAVE_SCHED - int cpuid; - cpu_set_t cpuset; - CPU_ZERO(&cpuset); - - cpuid = pool->get_cpuid(id); - if (cpuid < 0) { - cpuid = sched_getcpu(); + int cid = pool->get_cpuid(id); + if (cid >= 0 && set_affinity(cid)) { + ldout(cct, 0) << __func__ << " sched_setaffinity failed: " + << cpp_strerror(errno) << dendl; } - - if (cpuid < CPU_SETSIZE) { - CPU_SET(cpuid, &cpuset); - - if (sched_setaffinity(0, sizeof(cpuset), &cpuset) < 0) { - ldout(cct, 0) << __func__ << " sched_setaffinity failed: " - << cpp_strerror(errno) << dendl; - } - /* guaranteed to take effect immediately */ - sched_yield(); - } -#endif } center.set_owner(pthread_self());