examples/vm_power: respect core mask
When vm_power_manager is started, it takes over power management on all cores. This should be limited to cores defined in the core mask. When initialising, if a core is not on the coremask, skip it. Applies to both initialisation and exit. Signed-off-by: David Hunt <david.hunt@intel.com>
This commit is contained in:
parent
c85ebb39db
commit
b49c677a0d
@ -455,6 +455,9 @@ add_all_channels(const char *vm_name)
|
||||
CHANNEL_MGR_SOCKET_PATH, dir->d_name);
|
||||
continue;
|
||||
}
|
||||
if (rte_lcore_index(channel_num) == -1)
|
||||
continue;
|
||||
|
||||
/* if channel has not been added previously */
|
||||
if (channel_exists(vm_info, channel_num))
|
||||
continue;
|
||||
@ -512,6 +515,8 @@ add_channels(const char *vm_name, unsigned *channel_list,
|
||||
}
|
||||
|
||||
for (i = 0; i < len_channel_list; i++) {
|
||||
if (rte_lcore_index(i) == -1)
|
||||
continue;
|
||||
|
||||
if (channel_list[i] >= RTE_MAX_LCORE) {
|
||||
RTE_LOG(INFO, CHANNEL_MANAGER, "Channel(%u) is out of range "
|
||||
@ -574,6 +579,9 @@ add_host_channels(void)
|
||||
}
|
||||
|
||||
for (i = 0; i < ci->core_count; i++) {
|
||||
if (rte_lcore_index(i) == -1)
|
||||
continue;
|
||||
|
||||
if (ci->cd[i].global_enabled_cpus == 0)
|
||||
continue;
|
||||
|
||||
|
@ -96,6 +96,9 @@ power_manager_init(void)
|
||||
max_core_num = ci->core_count;
|
||||
|
||||
for (i = 0; i < max_core_num; i++) {
|
||||
if (rte_lcore_index(i) == -1)
|
||||
continue;
|
||||
|
||||
if (ci->cd[i].global_enabled_cpus) {
|
||||
if (rte_power_init(i) < 0)
|
||||
RTE_LOG(ERR, POWER_MANAGER,
|
||||
@ -170,6 +173,9 @@ power_manager_exit(void)
|
||||
max_core_num = ci->core_count;
|
||||
|
||||
for (i = 0; i < max_core_num; i++) {
|
||||
if (rte_lcore_index(i) == -1)
|
||||
continue;
|
||||
|
||||
if (ci->cd[i].global_enabled_cpus) {
|
||||
if (rte_power_exit(i) < 0) {
|
||||
RTE_LOG(ERR, POWER_MANAGER, "Unable to shutdown power manager "
|
||||
|
Loading…
x
Reference in New Issue
Block a user