diff options
author | Alex Wang <alexw@nicira.com> | 2014-09-05 06:17:33 +0000 |
---|---|---|
committer | Alex Wang <alexw@nicira.com> | 2014-09-05 15:19:53 -0700 |
commit | 6b1105fb2007fb72e36ec9da92996bd3b1e18916 (patch) | |
tree | 217486d83d919e2c3a5bb940332b812ea18217fc | |
parent | 421aa227d0cf225b8a6dbf77c3442f57a46ef52f (diff) | |
download | openvswitch-6b1105fb2007fb72e36ec9da92996bd3b1e18916.tar.gz |
ovs-numa: Add function for getting numa node id from core id.
Signed-off-by: Alex Wang <alexw@nicira.com>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
-rw-r--r-- | lib/ovs-numa.c | 17 | ||||
-rw-r--r-- | lib/ovs-numa.h | 7 |
2 files changed, 24 insertions, 0 deletions
diff --git a/lib/ovs-numa.c b/lib/ovs-numa.c index bcdea3b48..46989672c 100644 --- a/lib/ovs-numa.c +++ b/lib/ovs-numa.c @@ -168,6 +168,23 @@ ovs_numa_get_n_cores(void) : OVS_CORE_UNSPEC; } +/* Given 'core_id', returns the corresponding numa node id. Returns + * OVS_NUMA_UNSPEC if 'core_id' is invalid. */ +int +ovs_numa_get_numa_id(int core_id) +{ + if (ovs_numa_core_id_is_valid(core_id)) { + struct cpu_core *core; + + core = CONTAINER_OF(hmap_first_with_hash(&all_cpu_cores, + hash_int(core_id, 0)), + struct cpu_core, hmap_node); + + return core->numa->numa_id; + } + return OVS_NUMA_UNSPEC; +} + /* Returns the number of cpu cores on numa node. Returns OVS_CORE_UNSPEC * if 'numa_id' is invalid. */ int diff --git a/lib/ovs-numa.h b/lib/ovs-numa.h index d4a57a592..83732fc68 100644 --- a/lib/ovs-numa.h +++ b/lib/ovs-numa.h @@ -32,6 +32,7 @@ bool ovs_numa_numa_id_is_valid(int numa_id); bool ovs_numa_core_id_is_valid(int core_id); int ovs_numa_get_n_numas(void); int ovs_numa_get_n_cores(void); +int ovs_numa_get_numa_id(int core_id); int ovs_numa_get_n_cores_on_numa(int numa_id); int ovs_numa_get_n_unpinned_cores_on_numa(int numa_id); bool ovs_numa_try_pin_core_specific(int core_id); @@ -72,6 +73,12 @@ ovs_numa_get_n_cores(void) } static inline int +ovs_numa_get_numa_id(int core_id OVS_UNUSED) +{ + return OVS_NUMA_UNSPEC; +} + +static inline int ovs_numa_get_n_cores_on_numa(int numa_id OVS_UNUSED) { return OVS_CORE_UNSPEC; |