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:
David Hunt 2021-01-15 12:52:50 +00:00 committed by Thomas Monjalon
parent c85ebb39db
commit b49c677a0d
2 changed files with 14 additions and 0 deletions

View File

@ -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;

View File

@ -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 "