From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id F3AB0A0524 for ; Thu, 4 Feb 2021 12:37:00 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EA027240784; Thu, 4 Feb 2021 12:37:00 +0100 (CET) Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by mails.dpdk.org (Postfix) with ESMTP id 9090524074D for ; Thu, 4 Feb 2021 12:36:59 +0100 (CET) Received: from 2.general.paelzer.uk.vpn ([10.172.196.173] helo=localhost.localdomain) by youngberry.canonical.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1l7cwV-0005XL-B9; Thu, 04 Feb 2021 11:36:59 +0000 From: Christian Ehrhardt To: Bruce Richardson Cc: David Hunt , Anatoly Burakov , dpdk stable Date: Thu, 4 Feb 2021 12:29:02 +0100 Message-Id: <20210204112954.2488123-87-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210204112954.2488123-1-christian.ehrhardt@canonical.com> References: <20210204112954.2488123-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'power: rename constants' has been queued to stable release 19.11.7 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 19.11.7 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/06/21. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/cpaelzer/dpdk-stable-queue This queued commit can be viewed at: https://github.com/cpaelzer/dpdk-stable-queue/commit/b9f75f2721aeac4d1fa7962d2aa89feaa66b64c5 Thanks. Christian Ehrhardt --- >From b9f75f2721aeac4d1fa7962d2aa89feaa66b64c5 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Thu, 21 Jan 2021 17:21:59 +0000 Subject: [PATCH] power: rename constants [ upstream commit 38d232b9b804eebd458d758f2face173220ee2f8 ] Rename the #defines to have an RTE_POWER_ prefix Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Signed-off-by: Bruce Richardson Signed-off-by: David Hunt Acked-by: Anatoly Burakov --- examples/vm_power_manager/channel_monitor.c | 116 +++++++++--------- examples/vm_power_manager/channel_monitor.h | 6 +- examples/vm_power_manager/guest_cli/main.c | 29 +++-- .../guest_cli/vm_power_cli_guest.c | 28 ++--- examples/vm_power_manager/main.c | 2 +- lib/librte_power/guest_channel.c | 2 +- lib/librte_power/power_kvm_vm.c | 14 +-- lib/librte_power/rte_power_guest_channel.h | 98 +++++++-------- 8 files changed, 155 insertions(+), 140 deletions(-) diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index ab68b8eb5b..57a7155aad 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -177,10 +177,10 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, pkt->nb_mac_to_monitor = 0; pkt->t_boost_status.tbEnabled = false; - pkt->workload = LOW; - pkt->policy_to_use = TIME; - pkt->command = PKT_POLICY; - pkt->core_type = CORE_TYPE_PHYSICAL; + pkt->workload = RTE_POWER_WL_LOW; + pkt->policy_to_use = RTE_POWER_POLICY_TIME; + pkt->command = RTE_POWER_PKT_POLICY; + pkt->core_type = RTE_POWER_CORE_TYPE_PHYSICAL; if (vm_name == NULL) { RTE_LOG(ERR, CHANNEL_MONITOR, @@ -203,11 +203,11 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char command[32]; strlcpy(command, json_string_value(value), 32); if (!strcmp(command, "power")) { - pkt->command = CPU_POWER; + pkt->command = RTE_POWER_CPU_POWER; } else if (!strcmp(command, "create")) { - pkt->command = PKT_POLICY; + pkt->command = RTE_POWER_PKT_POLICY; } else if (!strcmp(command, "destroy")) { - pkt->command = PKT_POLICY_REMOVE; + pkt->command = RTE_POWER_PKT_POLICY_REMOVE; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Invalid command received in JSON\n"); @@ -217,13 +217,17 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char command[32]; strlcpy(command, json_string_value(value), 32); if (!strcmp(command, "TIME")) { - pkt->policy_to_use = TIME; + pkt->policy_to_use = + RTE_POWER_POLICY_TIME; } else if (!strcmp(command, "TRAFFIC")) { - pkt->policy_to_use = TRAFFIC; + pkt->policy_to_use = + RTE_POWER_POLICY_TRAFFIC; } else if (!strcmp(command, "WORKLOAD")) { - pkt->policy_to_use = WORKLOAD; + pkt->policy_to_use = + RTE_POWER_POLICY_WORKLOAD; } else if (!strcmp(command, "BRANCH_RATIO")) { - pkt->policy_to_use = BRANCH_RATIO; + pkt->policy_to_use = + RTE_POWER_POLICY_BRANCH_RATIO; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Wrong policy_type received in JSON\n"); @@ -233,11 +237,11 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char command[32]; strlcpy(command, json_string_value(value), 32); if (!strcmp(command, "HIGH")) { - pkt->workload = HIGH; + pkt->workload = RTE_POWER_WL_HIGH; } else if (!strcmp(command, "MEDIUM")) { - pkt->workload = MEDIUM; + pkt->workload = RTE_POWER_WL_MEDIUM; } else if (!strcmp(command, "LOW")) { - pkt->workload = LOW; + pkt->workload = RTE_POWER_WL_LOW; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Wrong workload received in JSON\n"); @@ -283,17 +287,17 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, char unit[32]; strlcpy(unit, json_string_value(value), 32); if (!strcmp(unit, "SCALE_UP")) { - pkt->unit = CPU_POWER_SCALE_UP; + pkt->unit = RTE_POWER_SCALE_UP; } else if (!strcmp(unit, "SCALE_DOWN")) { - pkt->unit = CPU_POWER_SCALE_DOWN; + pkt->unit = RTE_POWER_SCALE_DOWN; } else if (!strcmp(unit, "SCALE_MAX")) { - pkt->unit = CPU_POWER_SCALE_MAX; + pkt->unit = RTE_POWER_SCALE_MAX; } else if (!strcmp(unit, "SCALE_MIN")) { - pkt->unit = CPU_POWER_SCALE_MIN; + pkt->unit = RTE_POWER_SCALE_MIN; } else if (!strcmp(unit, "ENABLE_TURBO")) { - pkt->unit = CPU_POWER_ENABLE_TURBO; + pkt->unit = RTE_POWER_ENABLE_TURBO; } else if (!strcmp(unit, "DISABLE_TURBO")) { - pkt->unit = CPU_POWER_DISABLE_TURBO; + pkt->unit = RTE_POWER_DISABLE_TURBO; } else { RTE_LOG(ERR, CHANNEL_MONITOR, "Invalid command received in JSON\n"); @@ -312,7 +316,7 @@ parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, vm_name); return -1; } - strlcpy(pkt->vm_name, vm_name, VM_MAX_NAME_SZ); + strlcpy(pkt->vm_name, vm_name, RTE_POWER_VM_MAX_NAME_SZ); pkt->resource_id = resource_id; } return 0; @@ -367,7 +371,7 @@ pcpu_monitor(struct policy *pol, struct core_info *ci, int pcpu, int count) { int ret = 0; - if (pol->pkt.policy_to_use == BRANCH_RATIO) { + if (pol->pkt.policy_to_use == RTE_POWER_POLICY_BRANCH_RATIO) { ci->cd[pcpu].oob_enabled = 1; ret = add_core_to_monitor(pcpu); if (ret == 0) @@ -407,7 +411,7 @@ get_pcpu_to_control(struct policy *pol) * differenciate between them when adding them to the branch monitor. * Virtual cores need to be converted to physical cores. */ - if (pol->pkt.core_type == CORE_TYPE_VIRTUAL) { + if (pol->pkt.core_type == RTE_POWER_CORE_TYPE_VIRTUAL) { /* * If the cores in the policy are virtual, we need to map them * to physical core. We look up the vm info and use that for @@ -479,7 +483,8 @@ update_policy(struct rte_power_channel_packet *pkt) policies[i].pkt = *pkt; get_pcpu_to_control(&policies[i]); /* Check Eth dev only for Traffic policy */ - if (policies[i].pkt.policy_to_use == TRAFFIC) { + if (policies[i].pkt.policy_to_use == + RTE_POWER_POLICY_TRAFFIC) { if (get_pfid(&policies[i]) < 0) { updated = 1; break; @@ -496,7 +501,8 @@ update_policy(struct rte_power_channel_packet *pkt) policies[i].pkt = *pkt; get_pcpu_to_control(&policies[i]); /* Check Eth dev only for Traffic policy */ - if (policies[i].pkt.policy_to_use == TRAFFIC) { + if (policies[i].pkt.policy_to_use == + RTE_POWER_POLICY_TRAFFIC) { if (get_pfid(&policies[i]) < 0) { updated = 1; break; @@ -615,7 +621,7 @@ apply_time_profile(struct policy *pol) /* Format the date and time, down to a single second. */ strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", ptm); - for (x = 0; x < HOURS; x++) { + for (x = 0; x < RTE_POWER_HOURS_PER_DAY; x++) { if (ptm->tm_hour == pol->pkt.timer_policy.busy_hours[x]) { for (count = 0; count < pol->pkt.num_vcpu; count++) { @@ -648,19 +654,19 @@ apply_workload_profile(struct policy *pol) int count; - if (pol->pkt.workload == HIGH) { + if (pol->pkt.workload == RTE_POWER_WL_HIGH) { for (count = 0; count < pol->pkt.num_vcpu; count++) { if (pol->core_share[count].status != 1) power_manager_scale_core_max( pol->core_share[count].pcpu); } - } else if (pol->pkt.workload == MEDIUM) { + } else if (pol->pkt.workload == RTE_POWER_WL_MEDIUM) { for (count = 0; count < pol->pkt.num_vcpu; count++) { if (pol->core_share[count].status != 1) power_manager_scale_core_med( pol->core_share[count].pcpu); } - } else if (pol->pkt.workload == LOW) { + } else if (pol->pkt.workload == RTE_POWER_WL_LOW) { for (count = 0; count < pol->pkt.num_vcpu; count++) { if (pol->core_share[count].status != 1) power_manager_scale_core_min( @@ -676,11 +682,11 @@ apply_policy(struct policy *pol) struct rte_power_channel_packet *pkt = &pol->pkt; /*Check policy to use*/ - if (pkt->policy_to_use == TRAFFIC) + if (pkt->policy_to_use == RTE_POWER_POLICY_TRAFFIC) apply_traffic_profile(pol); - else if (pkt->policy_to_use == TIME) + else if (pkt->policy_to_use == RTE_POWER_POLICY_TIME) apply_time_profile(pol); - else if (pkt->policy_to_use == WORKLOAD) + else if (pkt->policy_to_use == RTE_POWER_POLICY_WORKLOAD) apply_workload_profile(pol); } @@ -726,13 +732,13 @@ send_freq(struct rte_power_channel_packet *pkt, if (get_info_vm(pkt->vm_name, &info) != 0) return -1; - if (!freq_list && vcore_id >= MAX_VCPU_PER_VM) + if (!freq_list && vcore_id >= RTE_POWER_MAX_VCPU_PER_VM) return -1; if (!info.allow_query) return -1; - channel_pkt_freq_list.command = CPU_POWER_FREQ_LIST; + channel_pkt_freq_list.command = RTE_POWER_FREQ_LIST; channel_pkt_freq_list.num_vcpu = info.num_vcpus; if (freq_list) { @@ -764,13 +770,13 @@ send_capabilities(struct rte_power_channel_packet *pkt, if (get_info_vm(pkt->vm_name, &info) != 0) return -1; - if (!list_requested && vcore_id >= MAX_VCPU_PER_VM) + if (!list_requested && vcore_id >= RTE_POWER_MAX_VCPU_PER_VM) return -1; if (!info.allow_query) return -1; - channel_pkt_caps_list.command = CPU_POWER_CAPS_LIST; + channel_pkt_caps_list.command = RTE_POWER_CAPS_LIST; channel_pkt_caps_list.num_vcpu = info.num_vcpus; if (list_requested) { @@ -828,10 +834,10 @@ process_request(struct rte_power_channel_packet *pkt, CHANNEL_MGR_CHANNEL_PROCESSING) == 0) return -1; - if (pkt->command == CPU_POWER) { + if (pkt->command == RTE_POWER_CPU_POWER) { unsigned int core_num; - if (pkt->core_type == CORE_TYPE_VIRTUAL) + if (pkt->core_type == RTE_POWER_CORE_TYPE_VIRTUAL) core_num = get_pcpu(chan_info, pkt->resource_id); else core_num = pkt->resource_id; @@ -843,22 +849,22 @@ process_request(struct rte_power_channel_packet *pkt, bool valid_unit = true; switch (pkt->unit) { - case(CPU_POWER_SCALE_MIN): + case(RTE_POWER_SCALE_MIN): scale_res = power_manager_scale_core_min(core_num); break; - case(CPU_POWER_SCALE_MAX): + case(RTE_POWER_SCALE_MAX): scale_res = power_manager_scale_core_max(core_num); break; - case(CPU_POWER_SCALE_DOWN): + case(RTE_POWER_SCALE_DOWN): scale_res = power_manager_scale_core_down(core_num); break; - case(CPU_POWER_SCALE_UP): + case(RTE_POWER_SCALE_UP): scale_res = power_manager_scale_core_up(core_num); break; - case(CPU_POWER_ENABLE_TURBO): + case(RTE_POWER_ENABLE_TURBO): scale_res = power_manager_enable_turbo_core(core_num); break; - case(CPU_POWER_DISABLE_TURBO): + case(RTE_POWER_DISABLE_TURBO): scale_res = power_manager_disable_turbo_core(core_num); break; default: @@ -870,8 +876,8 @@ process_request(struct rte_power_channel_packet *pkt, ret = send_ack_for_received_cmd(pkt, chan_info, scale_res >= 0 ? - CPU_POWER_CMD_ACK : - CPU_POWER_CMD_NACK); + RTE_POWER_CMD_ACK : + RTE_POWER_CMD_NACK); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during sending ack command.\n"); } else @@ -879,19 +885,19 @@ process_request(struct rte_power_channel_packet *pkt, } - if (pkt->command == PKT_POLICY) { + if (pkt->command == RTE_POWER_PKT_POLICY) { RTE_LOG(INFO, CHANNEL_MONITOR, "Processing policy request %s\n", pkt->vm_name); int ret = send_ack_for_received_cmd(pkt, chan_info, - CPU_POWER_CMD_ACK); + RTE_POWER_CMD_ACK); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during sending ack command.\n"); update_policy(pkt); policy_is_set = 1; } - if (pkt->command == PKT_POLICY_REMOVE) { + if (pkt->command == RTE_POWER_PKT_POLICY_REMOVE) { ret = remove_policy(pkt); if (ret == 0) RTE_LOG(INFO, CHANNEL_MONITOR, @@ -901,26 +907,26 @@ process_request(struct rte_power_channel_packet *pkt, "Policy %s does not exist\n", pkt->vm_name); } - if (pkt->command == CPU_POWER_QUERY_FREQ_LIST || - pkt->command == CPU_POWER_QUERY_FREQ) { + if (pkt->command == RTE_POWER_QUERY_FREQ_LIST || + pkt->command == RTE_POWER_QUERY_FREQ) { RTE_LOG(INFO, CHANNEL_MONITOR, "Frequency for %s requested.\n", pkt->vm_name); int ret = send_freq(pkt, chan_info, - pkt->command == CPU_POWER_QUERY_FREQ_LIST); + pkt->command == RTE_POWER_QUERY_FREQ_LIST); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during frequency sending.\n"); } - if (pkt->command == CPU_POWER_QUERY_CAPS_LIST || - pkt->command == CPU_POWER_QUERY_CAPS) { + if (pkt->command == RTE_POWER_QUERY_CAPS_LIST || + pkt->command == RTE_POWER_QUERY_CAPS) { RTE_LOG(INFO, CHANNEL_MONITOR, "Capabilities for %s requested.\n", pkt->vm_name); int ret = send_capabilities(pkt, chan_info, - pkt->command == CPU_POWER_QUERY_CAPS_LIST); + pkt->command == RTE_POWER_QUERY_CAPS_LIST); if (ret < 0) RTE_LOG(ERR, CHANNEL_MONITOR, "Error during sending capabilities.\n"); } diff --git a/examples/vm_power_manager/channel_monitor.h b/examples/vm_power_manager/channel_monitor.h index 0ca6207ad8..5d3537b911 100644 --- a/examples/vm_power_manager/channel_monitor.h +++ b/examples/vm_power_manager/channel_monitor.h @@ -19,10 +19,10 @@ struct core_share { struct policy { struct rte_power_channel_packet pkt; - uint32_t pfid[MAX_VFS]; - uint32_t port[MAX_VFS]; + uint32_t pfid[RTE_POWER_MAX_VFS]; + uint32_t port[RTE_POWER_MAX_VFS]; unsigned int enabled; - struct core_share core_share[MAX_VCPU_PER_VM]; + struct core_share core_share[RTE_POWER_MAX_VCPU_PER_VM]; }; #ifdef __cplusplus diff --git a/examples/vm_power_manager/guest_cli/main.c b/examples/vm_power_manager/guest_cli/main.c index fc7a8c30af..4e17f7fb90 100644 --- a/examples/vm_power_manager/guest_cli/main.c +++ b/examples/vm_power_manager/guest_cli/main.c @@ -50,8 +50,8 @@ parse_args(int argc, char **argv) }; struct rte_power_channel_packet *policy; unsigned short int hours[MAX_HOURS]; - unsigned short int cores[MAX_VCPU_PER_VM]; - unsigned short int ports[MAX_VCPU_PER_VM]; + unsigned short int cores[RTE_POWER_MAX_VCPU_PER_VM]; + unsigned short int ports[RTE_POWER_MAX_VCPU_PER_VM]; int i, cnt, idx; policy = get_policy(); @@ -69,7 +69,8 @@ parse_args(int argc, char **argv) switch (opt) { /* portmask */ case 'n': - strlcpy(policy->vm_name, optarg, VM_MAX_NAME_SZ); + strlcpy(policy->vm_name, optarg, + RTE_POWER_VM_MAX_NAME_SZ); printf("Setting VM Name to [%s]\n", policy->vm_name); break; case 'b': @@ -97,14 +98,15 @@ parse_args(int argc, char **argv) } break; case 'l': - cnt = parse_set(optarg, cores, MAX_VCPU_PER_VM); + cnt = parse_set(optarg, cores, + RTE_POWER_MAX_VCPU_PER_VM); if (cnt < 0) { printf("Invalid value passed to vcpu-list - [%s]\n", optarg); break; } idx = 0; - for (i = 0; i < MAX_VCPU_PER_VM; i++) { + for (i = 0; i < RTE_POWER_MAX_VCPU_PER_VM; i++) { if (cores[i]) { printf("***Using core %d\n", i); policy->vcpu_to_control[idx++] = i; @@ -114,14 +116,15 @@ parse_args(int argc, char **argv) printf("Total cores: %d\n", idx); break; case 'p': - cnt = parse_set(optarg, ports, MAX_VCPU_PER_VM); + cnt = parse_set(optarg, ports, + RTE_POWER_MAX_VCPU_PER_VM); if (cnt < 0) { printf("Invalid value passed to port-list - [%s]\n", optarg); break; } idx = 0; - for (i = 0; i < MAX_VCPU_PER_VM; i++) { + for (i = 0; i < RTE_POWER_MAX_VCPU_PER_VM; i++) { if (ports[i]) { printf("***Using port %d\n", i); if (set_policy_mac(i, idx++) != 0) { @@ -135,13 +138,17 @@ parse_args(int argc, char **argv) break; case 'o': if (!strcmp(optarg, "TRAFFIC")) - policy->policy_to_use = TRAFFIC; + policy->policy_to_use = + RTE_POWER_POLICY_TRAFFIC; else if (!strcmp(optarg, "TIME")) - policy->policy_to_use = TIME; + policy->policy_to_use = + RTE_POWER_POLICY_TIME; else if (!strcmp(optarg, "WORKLOAD")) - policy->policy_to_use = WORKLOAD; + policy->policy_to_use = + RTE_POWER_POLICY_WORKLOAD; else if (!strcmp(optarg, "BRANCH_RATIO")) - policy->policy_to_use = BRANCH_RATIO; + policy->policy_to_use = + RTE_POWER_POLICY_BRANCH_RATIO; else { printf("Invalid policy specified: %s\n", optarg); diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c index 3260dbd2bb..ceb59cad7b 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c @@ -103,10 +103,10 @@ set_policy_defaults(struct rte_power_channel_packet *pkt) pkt->timer_policy.hours_to_use_traffic_profile[0] = 8; pkt->timer_policy.hours_to_use_traffic_profile[1] = 10; - pkt->core_type = CORE_TYPE_VIRTUAL; - pkt->workload = LOW; - pkt->policy_to_use = TIME; - pkt->command = PKT_POLICY; + pkt->core_type = RTE_POWER_CORE_TYPE_VIRTUAL; + pkt->workload = RTE_POWER_WL_LOW; + pkt->policy_to_use = RTE_POWER_POLICY_TIME; + pkt->command = RTE_POWER_PKT_POLICY; strlcpy(pkt->vm_name, "ubuntu2", sizeof(pkt->vm_name)); return 0; @@ -169,7 +169,7 @@ receive_freq_list(struct rte_power_channel_packet_freq_list *pkt_freq_list, RTE_LOG(ERR, GUEST_CLI, "Error receiving message.\n"); return -1; } - if (pkt_freq_list->command != CPU_POWER_FREQ_LIST) { + if (pkt_freq_list->command != RTE_POWER_FREQ_LIST) { RTE_LOG(ERR, GUEST_CLI, "Unexpected message received.\n"); return -1; } @@ -203,18 +203,18 @@ cmd_query_freq_list_parsed(void *parsed_result, return; } - pkt.command = CPU_POWER_QUERY_FREQ_LIST; + pkt.command = RTE_POWER_QUERY_FREQ_LIST; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); query_list = true; } else { errno = 0; lcore_id = (unsigned int)strtol(res->cpu_num, &ep, 10); - if (errno != 0 || lcore_id >= MAX_VCPU_PER_VM || + if (errno != 0 || lcore_id >= RTE_POWER_MAX_VCPU_PER_VM || ep == res->cpu_num) { cmdline_printf(cl, "Invalid parameter provided.\n"); return; } - pkt.command = CPU_POWER_QUERY_FREQ; + pkt.command = RTE_POWER_QUERY_FREQ; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); pkt.resource_id = lcore_id; } @@ -279,7 +279,7 @@ receive_capabilities(struct rte_power_channel_packet_caps_list *pkt_caps_list, RTE_LOG(ERR, GUEST_CLI, "Error receiving message.\n"); return -1; } - if (pkt_caps_list->command != CPU_POWER_CAPS_LIST) { + if (pkt_caps_list->command != RTE_POWER_CAPS_LIST) { RTE_LOG(ERR, GUEST_CLI, "Unexpected message received.\n"); return -1; } @@ -313,18 +313,18 @@ cmd_query_caps_list_parsed(void *parsed_result, return; } - pkt.command = CPU_POWER_QUERY_CAPS_LIST; + pkt.command = RTE_POWER_QUERY_CAPS_LIST; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); query_list = true; } else { errno = 0; lcore_id = (unsigned int)strtol(res->cpu_num, &ep, 10); - if (errno != 0 || lcore_id >= MAX_VCPU_PER_VM || + if (errno != 0 || lcore_id >= RTE_POWER_MAX_VCPU_PER_VM || ep == res->cpu_num) { cmdline_printf(cl, "Invalid parameter provided.\n"); return; } - pkt.command = CPU_POWER_QUERY_CAPS; + pkt.command = RTE_POWER_QUERY_CAPS; strlcpy(pkt.vm_name, policy.vm_name, sizeof(pkt.vm_name)); pkt.resource_id = lcore_id; } @@ -388,10 +388,10 @@ check_response_cmd(unsigned int lcore_id, int *result) return -1; switch (pkt.command) { - case(CPU_POWER_CMD_ACK): + case(RTE_POWER_CMD_ACK): *result = 1; break; - case(CPU_POWER_CMD_NACK): + case(RTE_POWER_CMD_NACK): *result = 0; break; default: diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c index 0409a832b5..2316aace5a 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -395,7 +395,7 @@ main(int argc, char **argv) "Cannot init port %"PRIu8 "\n", portid); - for (w = 0; w < MAX_VFS; w++) { + for (w = 0; w < RTE_POWER_MAX_VFS; w++) { eth.addr_bytes[5] = w + 0xf0; ret = -ENOTSUP; diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c index 373589863d..ff2ad38466 100644 --- a/lib/librte_power/guest_channel.c +++ b/lib/librte_power/guest_channel.c @@ -74,7 +74,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id) /* Send a test packet, this command is ignored by the host, but a successful * send indicates that the host endpoint is monitoring. */ - pkt.command = CPU_POWER_CONNECT; + pkt.command = RTE_POWER_CPU_POWER_CONNECT; global_fds[lcore_id] = fd; ret = guest_channel_send_msg(&pkt, lcore_id); if (ret != 0) { diff --git a/lib/librte_power/power_kvm_vm.c b/lib/librte_power/power_kvm_vm.c index 899d738a99..86a349f493 100644 --- a/lib/librte_power/power_kvm_vm.c +++ b/lib/librte_power/power_kvm_vm.c @@ -24,7 +24,7 @@ power_kvm_vm_init(unsigned int lcore_id) lcore_id, RTE_MAX_LCORE-1); return -1; } - pkt[lcore_id].command = CPU_POWER; + pkt[lcore_id].command = RTE_POWER_CPU_POWER; pkt[lcore_id].resource_id = lcore_id; return guest_channel_host_connect(FD_PATH, lcore_id); } @@ -85,25 +85,25 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction) int power_kvm_vm_freq_up(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_UP); + return send_msg(lcore_id, RTE_POWER_SCALE_UP); } int power_kvm_vm_freq_down(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_DOWN); + return send_msg(lcore_id, RTE_POWER_SCALE_DOWN); } int power_kvm_vm_freq_max(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_MAX); + return send_msg(lcore_id, RTE_POWER_SCALE_MAX); } int power_kvm_vm_freq_min(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_SCALE_MIN); + return send_msg(lcore_id, RTE_POWER_SCALE_MIN); } int @@ -116,13 +116,13 @@ power_kvm_vm_turbo_status(__attribute__((unused)) unsigned int lcore_id) int power_kvm_vm_enable_turbo(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_ENABLE_TURBO); + return send_msg(lcore_id, RTE_POWER_ENABLE_TURBO); } int power_kvm_vm_disable_turbo(unsigned int lcore_id) { - return send_msg(lcore_id, CPU_POWER_DISABLE_TURBO); + return send_msg(lcore_id, RTE_POWER_DISABLE_TURBO); } struct rte_power_core_capabilities; diff --git a/lib/librte_power/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h index c9ab7bae81..b9273a025c 100644 --- a/lib/librte_power/rte_power_guest_channel.h +++ b/lib/librte_power/rte_power_guest_channel.h @@ -11,63 +11,65 @@ extern "C" { #include #include -#define MAX_VFS 10 -#define VM_MAX_NAME_SZ 32 -#define MAX_VCPU_PER_VM 8 -#define HOURS 24 +#define RTE_POWER_MAX_VFS 10 +#define RTE_POWER_VM_MAX_NAME_SZ 32 +#define RTE_POWER_MAX_VCPU_PER_VM 8 +#define RTE_POWER_HOURS_PER_DAY 24 /* Valid Commands */ -#define CPU_POWER 1 -#define CPU_POWER_CONNECT 2 -#define PKT_POLICY 3 -#define PKT_POLICY_REMOVE 4 +#define RTE_POWER_CPU_POWER 1 +#define RTE_POWER_CPU_POWER_CONNECT 2 +#define RTE_POWER_PKT_POLICY 3 +#define RTE_POWER_PKT_POLICY_REMOVE 4 -#define CORE_TYPE_VIRTUAL 0 -#define CORE_TYPE_PHYSICAL 1 +#define RTE_POWER_CORE_TYPE_VIRTUAL 0 +#define RTE_POWER_CORE_TYPE_PHYSICAL 1 /* CPU Power Command Scaling */ -#define CPU_POWER_SCALE_UP 1 -#define CPU_POWER_SCALE_DOWN 2 -#define CPU_POWER_SCALE_MAX 3 -#define CPU_POWER_SCALE_MIN 4 -#define CPU_POWER_ENABLE_TURBO 5 -#define CPU_POWER_DISABLE_TURBO 6 +#define RTE_POWER_SCALE_UP 1 +#define RTE_POWER_SCALE_DOWN 2 +#define RTE_POWER_SCALE_MAX 3 +#define RTE_POWER_SCALE_MIN 4 +#define RTE_POWER_ENABLE_TURBO 5 +#define RTE_POWER_DISABLE_TURBO 6 /* CPU Power Queries */ -#define CPU_POWER_QUERY_FREQ_LIST 7 -#define CPU_POWER_QUERY_FREQ 8 -#define CPU_POWER_QUERY_CAPS_LIST 9 -#define CPU_POWER_QUERY_CAPS 10 - -/* --- Outgoing messages --- */ +#define RTE_POWER_QUERY_FREQ_LIST 7 +#define RTE_POWER_QUERY_FREQ 8 +#define RTE_POWER_QUERY_CAPS_LIST 9 +#define RTE_POWER_QUERY_CAPS 10 /* Generic Power Command Response */ -#define CPU_POWER_CMD_ACK 1 -#define CPU_POWER_CMD_NACK 2 +#define RTE_POWER_CMD_ACK 1 +#define RTE_POWER_CMD_NACK 2 /* CPU Power Query Responses */ -#define CPU_POWER_FREQ_LIST 3 -#define CPU_POWER_CAPS_LIST 4 +#define RTE_POWER_FREQ_LIST 3 +#define RTE_POWER_CAPS_LIST 4 -struct rte_power_timer_profile { - int busy_hours[HOURS]; - int quiet_hours[HOURS]; - int hours_to_use_traffic_profile[HOURS]; +struct rte_power_traffic_policy { + uint32_t min_packet_thresh; + uint32_t avg_max_packet_thresh; + uint32_t max_max_packet_thresh; }; -enum rte_power_workload_level {HIGH, MEDIUM, LOW}; +struct rte_power_timer_profile { + int busy_hours[RTE_POWER_HOURS_PER_DAY]; + int quiet_hours[RTE_POWER_HOURS_PER_DAY]; + int hours_to_use_traffic_profile[RTE_POWER_HOURS_PER_DAY]; +}; -enum rte_power_policy { - TRAFFIC, - TIME, - WORKLOAD, - BRANCH_RATIO +enum rte_power_workload_level { + RTE_POWER_WL_HIGH, + RTE_POWER_WL_MEDIUM, + RTE_POWER_WL_LOW }; -struct rte_power_traffic_policy { - uint32_t min_packet_thresh; - uint32_t avg_max_packet_thresh; - uint32_t max_max_packet_thresh; +enum rte_power_policy { + RTE_POWER_POLICY_TRAFFIC, + RTE_POWER_POLICY_TIME, + RTE_POWER_POLICY_WORKLOAD, + RTE_POWER_POLICY_BRANCH_RATIO }; struct rte_power_turbo_status { @@ -78,12 +80,12 @@ struct rte_power_channel_packet { uint64_t resource_id; /**< core_num, device */ uint32_t unit; /**< scale down/up/min/max */ uint32_t command; /**< Power, IO, etc */ - char vm_name[VM_MAX_NAME_SZ]; + char vm_name[RTE_POWER_VM_MAX_NAME_SZ]; - uint64_t vfid[MAX_VFS]; + uint64_t vfid[RTE_POWER_MAX_VFS]; int nb_mac_to_monitor; struct rte_power_traffic_policy traffic_policy; - uint8_t vcpu_to_control[MAX_VCPU_PER_VM]; + uint8_t vcpu_to_control[RTE_POWER_MAX_VCPU_PER_VM]; uint8_t num_vcpu; struct rte_power_timer_profile timer_policy; bool core_type; @@ -96,9 +98,9 @@ struct rte_power_channel_packet_freq_list { uint64_t resource_id; /**< core_num, device */ uint32_t unit; /**< scale down/up/min/max */ uint32_t command; /**< Power, IO, etc */ - char vm_name[VM_MAX_NAME_SZ]; + char vm_name[RTE_POWER_VM_MAX_NAME_SZ]; - uint32_t freq_list[MAX_VCPU_PER_VM]; + uint32_t freq_list[RTE_POWER_MAX_VCPU_PER_VM]; uint8_t num_vcpu; }; @@ -106,10 +108,10 @@ struct rte_power_channel_packet_caps_list { uint64_t resource_id; /**< core_num, device */ uint32_t unit; /**< scale down/up/min/max */ uint32_t command; /**< Power, IO, etc */ - char vm_name[VM_MAX_NAME_SZ]; + char vm_name[RTE_POWER_VM_MAX_NAME_SZ]; - uint64_t turbo[MAX_VCPU_PER_VM]; - uint64_t priority[MAX_VCPU_PER_VM]; + uint64_t turbo[RTE_POWER_MAX_VCPU_PER_VM]; + uint64_t priority[RTE_POWER_MAX_VCPU_PER_VM]; uint8_t num_vcpu; }; -- 2.30.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-02-04 12:04:31.644000313 +0100 +++ 0087-power-rename-constants.patch 2021-02-04 12:04:28.090789786 +0100 @@ -1 +1 @@ -From 38d232b9b804eebd458d758f2face173220ee2f8 Mon Sep 17 00:00:00 2001 +From b9f75f2721aeac4d1fa7962d2aa89feaa66b64c5 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 38d232b9b804eebd458d758f2face173220ee2f8 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index 1b6041b6f8..7bb33e026c 100644 +index ab68b8eb5b..57a7155aad 100644 @@ -458 +459 @@ -index 125dfeb10a..ec6409abd7 100644 +index 3260dbd2bb..ceb59cad7b 100644 @@ -552 +553 @@ -index 75d5b5364f..799d7b9bc3 100644 +index 0409a832b5..2316aace5a 100644 @@ -555 +556 @@ -@@ -394,7 +394,7 @@ main(int argc, char **argv) +@@ -395,7 +395,7 @@ main(int argc, char **argv) @@ -565 +566 @@ -index 9eb2f63306..039cb18729 100644 +index 373589863d..ff2ad38466 100644 @@ -568 +569 @@ -@@ -100,7 +100,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id) +@@ -74,7 +74,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id) @@ -578 +579 @@ -index 9ae438489e..27f9937aab 100644 +index 899d738a99..86a349f493 100644 @@ -581 +582 @@ -@@ -29,7 +29,7 @@ power_kvm_vm_init(unsigned int lcore_id) +@@ -24,7 +24,7 @@ power_kvm_vm_init(unsigned int lcore_id) @@ -590 +591 @@ -@@ -90,25 +90,25 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction) +@@ -85,25 +85,25 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction) @@ -620 +621 @@ -@@ -121,13 +121,13 @@ power_kvm_vm_turbo_status(__rte_unused unsigned int lcore_id) +@@ -116,13 +116,13 @@ power_kvm_vm_turbo_status(__attribute__((unused)) unsigned int lcore_id)