From patchwork Thu Jan 21 17:21:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 87036 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2FB3EA09E4; Thu, 21 Jan 2021 18:22:59 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57776140D97; Thu, 21 Jan 2021 18:22:56 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id D86F4140D21; Thu, 21 Jan 2021 18:22:51 +0100 (CET) IronPort-SDR: oTk644gVCMo1sdD6Wf18jIszz0CUTDt8vpfPAbhWxgubeAe8ezI/Oz3+oOp+bzHj/DjW0pPCWy 8G4xomlt2dmQ== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="175799668" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="175799668" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 09:22:49 -0800 IronPort-SDR: Dyq2qUSZmUHZvOQcO0EZQ0ITbcWmwn6sBey2/UzJY2eEPX4dvzEq1OND7czAwaGmhnv0e/y+3e 6g83OooUIYSw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="385386735" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.222.38]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2021 09:22:48 -0800 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com, stable@dpdk.org, Bruce Richardson Date: Thu, 21 Jan 2021 17:21:56 +0000 Message-Id: <20210121172201.22582-2-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210121172201.22582-1-david.hunt@intel.com> References: <20210120135556.33763-2-david.hunt@intel.com> <20210121172201.22582-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v4 1/6] power: create guest channel public header file X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Bruce Richardson In preparation for making the header file public, we first rename channel_commands.h as rte_power_guest_channel.h. Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Signed-off-by: David Hunt --- examples/vm_power_manager/channel_manager.c | 2 +- examples/vm_power_manager/channel_monitor.c | 2 +- examples/vm_power_manager/channel_monitor.h | 2 +- examples/vm_power_manager/guest_cli/vm_power_cli_guest.h | 2 +- examples/vm_power_manager/vm_power_cli.c | 2 +- lib/librte_power/guest_channel.c | 2 +- lib/librte_power/guest_channel.h | 2 +- lib/librte_power/power_kvm_vm.c | 2 +- .../{channel_commands.h => rte_power_guest_channel.h} | 9 ++++----- 9 files changed, 12 insertions(+), 13 deletions(-) rename lib/librte_power/{channel_commands.h => rte_power_guest_channel.h} (94%) diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c index a26315051..c7d5bf5a8 100644 --- a/examples/vm_power_manager/channel_manager.c +++ b/examples/vm_power_manager/channel_manager.c @@ -27,7 +27,7 @@ #include #include "channel_manager.h" -#include "channel_commands.h" +#include "rte_power_guest_channel.h" #include "channel_monitor.h" #include "power_manager.h" diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index 228f06803..08306105d 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -35,7 +35,7 @@ #include #include "channel_monitor.h" -#include "channel_commands.h" +#include "rte_power_guest_channel.h" #include "channel_manager.h" #include "power_manager.h" #include "oob_monitor.h" diff --git a/examples/vm_power_manager/channel_monitor.h b/examples/vm_power_manager/channel_monitor.h index 7362a80d2..4a526ff67 100644 --- a/examples/vm_power_manager/channel_monitor.h +++ b/examples/vm_power_manager/channel_monitor.h @@ -6,7 +6,7 @@ #define CHANNEL_MONITOR_H_ #include "channel_manager.h" -#include "channel_commands.h" +#include "rte_power_guest_channel.h" struct core_share { unsigned int pcpu; diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h index 6ad14a3de..2299d23dc 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h @@ -9,7 +9,7 @@ extern "C" { #endif -#include "channel_commands.h" +#include "rte_power_guest_channel.h" struct channel_packet *get_policy(void); diff --git a/examples/vm_power_manager/vm_power_cli.c b/examples/vm_power_manager/vm_power_cli.c index ed0623a41..f7e1b596e 100644 --- a/examples/vm_power_manager/vm_power_cli.c +++ b/examples/vm_power_manager/vm_power_cli.c @@ -21,7 +21,7 @@ #include "channel_manager.h" #include "channel_monitor.h" #include "power_manager.h" -#include "channel_commands.h" +#include "rte_power_guest_channel.h" struct cmd_quit_result { cmdline_fixed_string_t quit; diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c index 7b5926e5c..4cb5ae1dd 100644 --- a/lib/librte_power/guest_channel.c +++ b/lib/librte_power/guest_channel.c @@ -17,7 +17,7 @@ #include #include "guest_channel.h" -#include "channel_commands.h" +#include "rte_power_guest_channel.h" #define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1 diff --git a/lib/librte_power/guest_channel.h b/lib/librte_power/guest_channel.h index e15db46fc..d3d87f0ae 100644 --- a/lib/librte_power/guest_channel.h +++ b/lib/librte_power/guest_channel.h @@ -8,7 +8,7 @@ extern "C" { #endif -#include +#include /** * Check if any Virtio-Serial VM end-points exist in path. diff --git a/lib/librte_power/power_kvm_vm.c b/lib/librte_power/power_kvm_vm.c index 409c3e03a..649ebe85c 100644 --- a/lib/librte_power/power_kvm_vm.c +++ b/lib/librte_power/power_kvm_vm.c @@ -7,7 +7,7 @@ #include #include "guest_channel.h" -#include "channel_commands.h" +#include "rte_power_guest_channel.h" #include "power_kvm_vm.h" #include "power_common.h" diff --git a/lib/librte_power/channel_commands.h b/lib/librte_power/rte_power_guest_channel.h similarity index 94% rename from lib/librte_power/channel_commands.h rename to lib/librte_power/rte_power_guest_channel.h index adc8e5ca2..ef3b064a8 100644 --- a/lib/librte_power/channel_commands.h +++ b/lib/librte_power/rte_power_guest_channel.h @@ -1,9 +1,8 @@ /* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2014 Intel Corporation + * Copyright(c) 2010-2021 Intel Corporation */ - -#ifndef CHANNEL_COMMANDS_H_ -#define CHANNEL_COMMANDS_H_ +#ifndef RTE_POWER_GUEST_CHANNEL_H +#define RTE_POWER_GUEST_CHANNEL_H #ifdef __cplusplus extern "C" { @@ -122,4 +121,4 @@ struct channel_packet_caps_list { } #endif -#endif /* CHANNEL_COMMANDS_H_ */ +#endif /* RTE_POWER_GUEST_CHANNEL_H_ */ From patchwork Thu Jan 21 17:21:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 87037 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E36BEA09E4; Thu, 21 Jan 2021 18:23:07 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CC577140DCC; Thu, 21 Jan 2021 18:22:57 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 65E63140D38; Thu, 21 Jan 2021 18:22:52 +0100 (CET) IronPort-SDR: Lx49lSAFrXgW0jP6U3BOkb6oW81sjspy7/h/DNyEJkHdo54524Pu091HOqXBt/84hwRRZKYMnY DO19xQlN9pGQ== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="175799673" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="175799673" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 09:22:51 -0800 IronPort-SDR: shW3GI1V5dW/64ztzxm7L5LFR9AeGl6+kCOWCtwJ6Kc/KJBdSP+WCiklLc/a7VxrHAzqcIETkO aqVpSnpDk0Uw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="385386741" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.222.38]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2021 09:22:49 -0800 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com, stable@dpdk.org, Bruce Richardson Date: Thu, 21 Jan 2021 17:21:57 +0000 Message-Id: <20210121172201.22582-3-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210121172201.22582-1-david.hunt@intel.com> References: <20210120135556.33763-2-david.hunt@intel.com> <20210121172201.22582-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v4 2/6] power: make channel msg functions public X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Bruce Richardson Move the 2 public functions into rte_power_guest_channel.h Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Signed-off-by: David Hunt Acked-by: Anatoly Burakov --- changes in v3 * Mark both added functions as experimental changes in v4 * add @internal tag for Doxygen * add @warning EXPERIMENTAL tag for Doxygen * improve description of lcore param --- lib/librte_power/guest_channel.h | 40 +---------------- lib/librte_power/rte_power_guest_channel.h | 50 ++++++++++++++++++++++ 2 files changed, 51 insertions(+), 39 deletions(-) diff --git a/lib/librte_power/guest_channel.h b/lib/librte_power/guest_channel.h index d3d87f0ae..69020b030 100644 --- a/lib/librte_power/guest_channel.h +++ b/lib/librte_power/guest_channel.h @@ -65,21 +65,7 @@ void guest_channel_host_disconnect(unsigned int lcore_id); */ int guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id); -/** - * Send a message contained in pkt over the Virtio-Serial to the host endpoint. - * - * @param pkt - * Pointer to a populated struct channel_packet - * - * @param lcore_id - * lcore_id. - * - * @return - * - 0 on success. - * - Negative on error. - */ -int rte_power_guest_channel_send_msg(struct channel_packet *pkt, - unsigned int lcore_id); + /** * Read a message contained in pkt over the Virtio-Serial @@ -103,30 +89,6 @@ int power_guest_channel_read_msg(void *pkt, size_t pkt_len, unsigned int lcore_id); -/** - * Receive a message contained in pkt over the Virtio-Serial - * from the host endpoint. - * - * @param pkt - * Pointer to channel_packet or - * channel_packet_freq_list struct. - * - * @param pkt_len - * Size of expected data packet. - * - * @param lcore_id - * lcore_id. - * - * @return - * - 0 on success. - * - Negative on error. - */ -__rte_experimental -int -rte_power_guest_channel_receive_msg(void *pkt, - size_t pkt_len, - unsigned int lcore_id); - #ifdef __cplusplus } diff --git a/lib/librte_power/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h index ef3b064a8..c500c0cda 100644 --- a/lib/librte_power/rte_power_guest_channel.h +++ b/lib/librte_power/rte_power_guest_channel.h @@ -116,6 +116,56 @@ struct channel_packet_caps_list { uint8_t num_vcpu; }; +/** + * @internal + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice. + * + * Send a message contained in pkt over the Virtio-Serial to the host endpoint. + * + * @param pkt + * Pointer to a populated struct channel_packet. + * + * @param lcore_id + * Use channel specific to this lcore_id. + * + * @return + * - 0 on success. + * - Negative on error. + */ +__rte_experimental +int rte_power_guest_channel_send_msg(struct channel_packet *pkt, + unsigned int lcore_id); + +/** + * @internal + * + * @warning + * @b EXPERIMENTAL: this API may change without prior notice. + * + * Receive a message contained in pkt over the Virtio-Serial + * from the host endpoint. + * + * @param pkt + * Pointer to channel_packet or + * channel_packet_freq_list struct. + * + * @param pkt_len + * Size of expected data packet. + * + * @param lcore_id + * Use channel specific to this lcore_id. + * + * @return + * - 0 on success. + * - Negative on error. + */ +__rte_experimental +int rte_power_guest_channel_receive_msg(void *pkt, + size_t pkt_len, + unsigned int lcore_id); + #ifdef __cplusplus } From patchwork Thu Jan 21 17:21:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 87038 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DE054A09E4; Thu, 21 Jan 2021 18:23:15 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 09D7A140DD3; Thu, 21 Jan 2021 18:22:59 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 15BF9140D90; Thu, 21 Jan 2021 18:22:53 +0100 (CET) IronPort-SDR: W+kSQQpz2Q3GPpEBdHY2IEJMZYswzsIjfffX6lFnJ4ExOUqznxKyDwBnSmnNoDHhXFQ+4tYyLW Z4iv0s+c05Bg== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="175799676" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="175799676" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 09:22:53 -0800 IronPort-SDR: LR6kGssMCmcH1DvHp85KZ2NlJtfHZ0Nu8SjyBgKlFE3R6OMeAs9y/Zg/1wYh4D1Cxi761pbH0q 5tp0EYZxWvDw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="385386751" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.222.38]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2021 09:22:51 -0800 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com, stable@dpdk.org, Bruce Richardson Date: Thu, 21 Jan 2021 17:21:58 +0000 Message-Id: <20210121172201.22582-4-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210121172201.22582-1-david.hunt@intel.com> References: <20210120135556.33763-2-david.hunt@intel.com> <20210121172201.22582-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v4 3/6] power: rename public structs X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Bruce Richardson rename the public structs to have an rte_power_ prefix and add them to version.map in experimental section. Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Signed-off-by: David Hunt Acked-by: Anatoly Burakov --- changes in v4 * Improve sizeof's * add the 2 functions to the version.map file --- examples/vm_power_manager/channel_monitor.c | 33 ++++++------ examples/vm_power_manager/channel_monitor.h | 2 +- examples/vm_power_manager/guest_cli/main.c | 2 +- .../guest_cli/vm_power_cli_guest.c | 38 +++++++------- .../guest_cli/vm_power_cli_guest.h | 4 +- lib/librte_power/guest_channel.c | 7 +-- lib/librte_power/guest_channel.h | 7 +-- lib/librte_power/power_kvm_vm.c | 2 +- lib/librte_power/rte_power_guest_channel.h | 51 +++++++++---------- lib/librte_power/version.map | 4 ++ 10 files changed, 77 insertions(+), 73 deletions(-) diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index 08306105d..1b6041b6f 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -108,7 +108,7 @@ str_to_ether_addr(const char *a, struct rte_ether_addr *ether_addr) } static int -set_policy_mac(struct channel_packet *pkt, int idx, char *mac) +set_policy_mac(struct rte_power_channel_packet *pkt, int idx, char *mac) { union PFID pfid; int ret; @@ -165,7 +165,7 @@ get_resource_id_from_vmname(const char *vm_name) } static int -parse_json_to_pkt(json_t *element, struct channel_packet *pkt, +parse_json_to_pkt(json_t *element, struct rte_power_channel_packet *pkt, const char *vm_name) { const char *key; @@ -173,7 +173,7 @@ parse_json_to_pkt(json_t *element, struct channel_packet *pkt, int ret; int resource_id; - memset(pkt, 0, sizeof(struct channel_packet)); + memset(pkt, 0, sizeof(*pkt)); pkt->nb_mac_to_monitor = 0; pkt->t_boost_status.tbEnabled = false; @@ -463,7 +463,7 @@ get_pfid(struct policy *pol) } static int -update_policy(struct channel_packet *pkt) +update_policy(struct rte_power_channel_packet *pkt) { unsigned int updated = 0; @@ -512,7 +512,7 @@ update_policy(struct channel_packet *pkt) } static int -remove_policy(struct channel_packet *pkt __rte_unused) +remove_policy(struct rte_power_channel_packet *pkt __rte_unused) { unsigned int i; @@ -673,7 +673,7 @@ static void apply_policy(struct policy *pol) { - struct channel_packet *pkt = &pol->pkt; + struct rte_power_channel_packet *pkt = &pol->pkt; /*Check policy to use*/ if (pkt->policy_to_use == TRAFFIC) @@ -715,12 +715,12 @@ write_binary_packet(void *buffer, } static int -send_freq(struct channel_packet *pkt, +send_freq(struct rte_power_channel_packet *pkt, struct channel_info *chan_info, bool freq_list) { unsigned int vcore_id = pkt->resource_id; - struct channel_packet_freq_list channel_pkt_freq_list; + struct rte_power_channel_packet_freq_list channel_pkt_freq_list; struct vm_info info; if (get_info_vm(pkt->vm_name, &info) != 0) @@ -751,12 +751,12 @@ send_freq(struct channel_packet *pkt, } static int -send_capabilities(struct channel_packet *pkt, +send_capabilities(struct rte_power_channel_packet *pkt, struct channel_info *chan_info, bool list_requested) { unsigned int vcore_id = pkt->resource_id; - struct channel_packet_caps_list channel_pkt_caps_list; + struct rte_power_channel_packet_caps_list channel_pkt_caps_list; struct vm_info info; struct rte_power_core_capabilities caps; int ret; @@ -805,18 +805,19 @@ send_capabilities(struct channel_packet *pkt, } static int -send_ack_for_received_cmd(struct channel_packet *pkt, +send_ack_for_received_cmd(struct rte_power_channel_packet *pkt, struct channel_info *chan_info, uint32_t command) { pkt->command = command; return write_binary_packet(pkt, - sizeof(struct channel_packet), + sizeof(*pkt), chan_info); } static int -process_request(struct channel_packet *pkt, struct channel_info *chan_info) +process_request(struct rte_power_channel_packet *pkt, + struct channel_info *chan_info) { int ret; @@ -988,7 +989,7 @@ channel_monitor_init(void) static void read_binary_packet(struct channel_info *chan_info) { - struct channel_packet pkt; + struct rte_power_channel_packet pkt; void *buffer = &pkt; int buffer_len = sizeof(pkt); int n_bytes, err = 0; @@ -1019,7 +1020,7 @@ read_binary_packet(struct channel_info *chan_info) static void read_json_packet(struct channel_info *chan_info) { - struct channel_packet pkt; + struct rte_power_channel_packet pkt; int n_bytes, ret; json_t *root; json_error_t error; @@ -1063,7 +1064,7 @@ read_json_packet(struct channel_info *chan_info) /* * Because our data is now in the json * object, we can overwrite the pkt - * with a channel_packet struct, using + * with a rte_power_channel_packet struct, using * parse_json_to_pkt() */ ret = parse_json_to_pkt(root, &pkt, resource_name); diff --git a/examples/vm_power_manager/channel_monitor.h b/examples/vm_power_manager/channel_monitor.h index 4a526ff67..0ca6207ad 100644 --- a/examples/vm_power_manager/channel_monitor.h +++ b/examples/vm_power_manager/channel_monitor.h @@ -18,7 +18,7 @@ struct core_share { }; struct policy { - struct channel_packet pkt; + struct rte_power_channel_packet pkt; uint32_t pfid[MAX_VFS]; uint32_t port[MAX_VFS]; unsigned int enabled; diff --git a/examples/vm_power_manager/guest_cli/main.c b/examples/vm_power_manager/guest_cli/main.c index f63b3c988..fc7a8c30a 100644 --- a/examples/vm_power_manager/guest_cli/main.c +++ b/examples/vm_power_manager/guest_cli/main.c @@ -48,7 +48,7 @@ parse_args(int argc, char **argv) { "policy", required_argument, 0, 'o'}, {NULL, 0, 0, 0} }; - struct channel_packet *policy; + 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]; 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 cf1636e78..125dfeb10 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 @@ -38,9 +38,9 @@ union PFID { uint64_t pfid; }; -static struct channel_packet policy; +static struct rte_power_channel_packet policy; -struct channel_packet * +struct rte_power_channel_packet * get_policy(void) { return &policy; @@ -49,7 +49,7 @@ get_policy(void) int set_policy_mac(int port, int idx) { - struct channel_packet *policy; + struct rte_power_channel_packet *policy; union PFID pfid; int ret; @@ -73,7 +73,7 @@ set_policy_mac(int port, int idx) } int -set_policy_defaults(struct channel_packet *pkt) +set_policy_defaults(struct rte_power_channel_packet *pkt) { int ret; @@ -145,7 +145,7 @@ struct cmd_freq_list_result { }; static int -query_data(struct channel_packet *pkt, unsigned int lcore_id) +query_data(struct rte_power_channel_packet *pkt, unsigned int lcore_id) { int ret; ret = rte_power_guest_channel_send_msg(pkt, lcore_id); @@ -157,13 +157,13 @@ query_data(struct channel_packet *pkt, unsigned int lcore_id) } static int -receive_freq_list(struct channel_packet_freq_list *pkt_freq_list, +receive_freq_list(struct rte_power_channel_packet_freq_list *pkt_freq_list, unsigned int lcore_id) { int ret; ret = rte_power_guest_channel_receive_msg(pkt_freq_list, - sizeof(struct channel_packet_freq_list), + sizeof(*pkt_freq_list), lcore_id); if (ret < 0) { RTE_LOG(ERR, GUEST_CLI, "Error receiving message.\n"); @@ -183,14 +183,14 @@ cmd_query_freq_list_parsed(void *parsed_result, { struct cmd_freq_list_result *res = parsed_result; unsigned int lcore_id; - struct channel_packet_freq_list pkt_freq_list; - struct channel_packet pkt; + struct rte_power_channel_packet_freq_list pkt_freq_list; + struct rte_power_channel_packet pkt; bool query_list = false; int ret; char *ep; - memset(&pkt, 0, sizeof(struct channel_packet)); - memset(&pkt_freq_list, 0, sizeof(struct channel_packet_freq_list)); + memset(&pkt, 0, sizeof(pkt)); + memset(&pkt_freq_list, 0, sizeof(pkt_freq_list)); if (!strcmp(res->cpu_num, "all")) { @@ -267,13 +267,13 @@ struct cmd_query_caps_result { }; static int -receive_capabilities(struct channel_packet_caps_list *pkt_caps_list, +receive_capabilities(struct rte_power_channel_packet_caps_list *pkt_caps_list, unsigned int lcore_id) { int ret; ret = rte_power_guest_channel_receive_msg(pkt_caps_list, - sizeof(struct channel_packet_caps_list), + sizeof(*pkt_caps_list), lcore_id); if (ret < 0) { RTE_LOG(ERR, GUEST_CLI, "Error receiving message.\n"); @@ -293,14 +293,14 @@ cmd_query_caps_list_parsed(void *parsed_result, { struct cmd_query_caps_result *res = parsed_result; unsigned int lcore_id; - struct channel_packet_caps_list pkt_caps_list; - struct channel_packet pkt; + struct rte_power_channel_packet_caps_list pkt_caps_list; + struct rte_power_channel_packet pkt; bool query_list = false; int ret; char *ep; - memset(&pkt, 0, sizeof(struct channel_packet)); - memset(&pkt_caps_list, 0, sizeof(struct channel_packet_caps_list)); + memset(&pkt, 0, sizeof(pkt)); + memset(&pkt_caps_list, 0, sizeof(pkt_caps_list)); if (!strcmp(res->cpu_num, "all")) { @@ -380,7 +380,7 @@ cmdline_parse_inst_t cmd_query_caps_list = { static int check_response_cmd(unsigned int lcore_id, int *result) { - struct channel_packet pkt; + struct rte_power_channel_packet pkt; int ret; ret = rte_power_guest_channel_receive_msg(&pkt, sizeof pkt, lcore_id); @@ -473,7 +473,7 @@ struct cmd_send_policy_result { }; static inline int -send_policy(struct channel_packet *pkt, struct cmdline *cl) +send_policy(struct rte_power_channel_packet *pkt, struct cmdline *cl) { int ret; diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h index 2299d23dc..5d285ca9d 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h @@ -11,11 +11,11 @@ extern "C" { #include "rte_power_guest_channel.h" -struct channel_packet *get_policy(void); +struct rte_power_channel_packet *get_policy(void); int set_policy_mac(int port, int idx); -int set_policy_defaults(struct channel_packet *pkt); +int set_policy_defaults(struct rte_power_channel_packet *pkt); void run_cli(__rte_unused void *arg); diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c index 4cb5ae1dd..9eb2f6330 100644 --- a/lib/librte_power/guest_channel.c +++ b/lib/librte_power/guest_channel.c @@ -55,7 +55,7 @@ int guest_channel_host_connect(const char *path, unsigned int lcore_id) { int flags, ret; - struct channel_packet pkt; + struct rte_power_channel_packet pkt; char fd_path[PATH_MAX]; int fd = -1; @@ -119,7 +119,8 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id) } int -guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id) +guest_channel_send_msg(struct rte_power_channel_packet *pkt, + unsigned int lcore_id) { int ret, buffer_len = sizeof(*pkt); void *buffer = pkt; @@ -149,7 +150,7 @@ guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id) return 0; } -int rte_power_guest_channel_send_msg(struct channel_packet *pkt, +int rte_power_guest_channel_send_msg(struct rte_power_channel_packet *pkt, unsigned int lcore_id) { return guest_channel_send_msg(pkt, lcore_id); diff --git a/lib/librte_power/guest_channel.h b/lib/librte_power/guest_channel.h index 69020b030..7d3a909d9 100644 --- a/lib/librte_power/guest_channel.h +++ b/lib/librte_power/guest_channel.h @@ -63,7 +63,8 @@ void guest_channel_host_disconnect(unsigned int lcore_id); * - Negative on channel not connected. * - errno on write to channel error. */ -int guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id); +int guest_channel_send_msg(struct rte_power_channel_packet *pkt, + unsigned int lcore_id); @@ -72,8 +73,8 @@ int guest_channel_send_msg(struct channel_packet *pkt, unsigned int lcore_id); * from the host endpoint. * * @param pkt - * Pointer to channel_packet or - * channel_packet_freq_list struct. + * Pointer to rte_power_channel_packet or + * rte_power_channel_packet_freq_list struct. * * @param pkt_len * Size of expected data packet. diff --git a/lib/librte_power/power_kvm_vm.c b/lib/librte_power/power_kvm_vm.c index 649ebe85c..9ae438489 100644 --- a/lib/librte_power/power_kvm_vm.c +++ b/lib/librte_power/power_kvm_vm.c @@ -13,7 +13,7 @@ #define FD_PATH "/dev/virtio-ports/virtio.serial.port.poweragent" -static struct channel_packet pkt[RTE_MAX_LCORE]; +static struct rte_power_channel_packet pkt[RTE_MAX_LCORE]; int power_kvm_vm_check_supported(void) diff --git a/lib/librte_power/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h index c500c0cda..c9ab7bae8 100644 --- a/lib/librte_power/rte_power_guest_channel.h +++ b/lib/librte_power/rte_power_guest_channel.h @@ -11,7 +11,10 @@ extern "C" { #include #include -/* --- Incoming messages --- */ +#define MAX_VFS 10 +#define VM_MAX_NAME_SZ 32 +#define MAX_VCPU_PER_VM 8 +#define HOURS 24 /* Valid Commands */ #define CPU_POWER 1 @@ -19,6 +22,9 @@ extern "C" { #define PKT_POLICY 3 #define PKT_POLICY_REMOVE 4 +#define CORE_TYPE_VIRTUAL 0 +#define CORE_TYPE_PHYSICAL 1 + /* CPU Power Command Scaling */ #define CPU_POWER_SCALE_UP 1 #define CPU_POWER_SCALE_DOWN 2 @@ -43,41 +49,32 @@ extern "C" { #define CPU_POWER_FREQ_LIST 3 #define CPU_POWER_CAPS_LIST 4 -#define HOURS 24 - -#define MAX_VFS 10 -#define VM_MAX_NAME_SZ 32 - -#define MAX_VCPU_PER_VM 8 - -struct t_boost_status { - bool tbEnabled; -}; - -struct timer_profile { +struct rte_power_timer_profile { int busy_hours[HOURS]; int quiet_hours[HOURS]; int hours_to_use_traffic_profile[HOURS]; }; -enum workload {HIGH, MEDIUM, LOW}; -enum policy_to_use { +enum rte_power_workload_level {HIGH, MEDIUM, LOW}; + +enum rte_power_policy { TRAFFIC, TIME, WORKLOAD, BRANCH_RATIO }; -struct traffic { +struct rte_power_traffic_policy { uint32_t min_packet_thresh; uint32_t avg_max_packet_thresh; uint32_t max_max_packet_thresh; }; -#define CORE_TYPE_VIRTUAL 0 -#define CORE_TYPE_PHYSICAL 1 +struct rte_power_turbo_status { + bool tbEnabled; +}; -struct channel_packet { +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 */ @@ -85,17 +82,17 @@ struct channel_packet { uint64_t vfid[MAX_VFS]; int nb_mac_to_monitor; - struct traffic traffic_policy; + struct rte_power_traffic_policy traffic_policy; uint8_t vcpu_to_control[MAX_VCPU_PER_VM]; uint8_t num_vcpu; - struct timer_profile timer_policy; + struct rte_power_timer_profile timer_policy; bool core_type; - enum workload workload; - enum policy_to_use policy_to_use; - struct t_boost_status t_boost_status; + enum rte_power_workload_level workload; + enum rte_power_policy policy_to_use; + struct rte_power_turbo_status t_boost_status; }; -struct channel_packet_freq_list { +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 */ @@ -105,7 +102,7 @@ struct channel_packet_freq_list { uint8_t num_vcpu; }; -struct channel_packet_caps_list { +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 */ @@ -135,7 +132,7 @@ struct channel_packet_caps_list { * - Negative on error. */ __rte_experimental -int rte_power_guest_channel_send_msg(struct channel_packet *pkt, +int rte_power_guest_channel_send_msg(struct rte_power_channel_packet *pkt, unsigned int lcore_id); /** diff --git a/lib/librte_power/version.map b/lib/librte_power/version.map index 69ca9af61..13f0af3b2 100644 --- a/lib/librte_power/version.map +++ b/lib/librte_power/version.map @@ -34,4 +34,8 @@ EXPERIMENTAL { rte_power_guest_channel_receive_msg; rte_power_poll_stat_fetch; rte_power_poll_stat_update; + + # added in 21.02 + rte_power_guest_channel_receive_msg; + rte_power_guest_channel_send_msg; }; From patchwork Thu Jan 21 17:21:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 87039 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 739ACA09E4; Thu, 21 Jan 2021 18:23:28 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D83E8140DBD; Thu, 21 Jan 2021 18:23:04 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 64975140D90; Thu, 21 Jan 2021 18:22:55 +0100 (CET) IronPort-SDR: D8Bvaw2Q37ubOZM6hFFnmpatk7k/rO3X7v181/anLtSUrS1R8Vv3S+mXm+eXUyi0Seti4J6tFy CUQC7bKPeH5A== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="175799681" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="175799681" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 09:22:54 -0800 IronPort-SDR: NyYgcaQ2j/vs1kSjWw7rDYfGOyC87YwrAXZvWIfKHa2GcR8ad6VmY2y88l7vwpRgHqUO+KryS4 Vi8QezS2zMRw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="385386759" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.222.38]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2021 09:22:53 -0800 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com, stable@dpdk.org, Bruce Richardson Date: Thu, 21 Jan 2021 17:21:59 +0000 Message-Id: <20210121172201.22582-5-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210121172201.22582-1-david.hunt@intel.com> References: <20210120135556.33763-2-david.hunt@intel.com> <20210121172201.22582-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v4 4/6] power: rename defines X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Bruce Richardson 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") Cc: stable@dpdk.org 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 1b6041b6f..7bb33e026 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 0ca6207ad..5d3537b91 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 fc7a8c30a..4e17f7fb9 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 125dfeb10..ec6409abd 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 75d5b5364..799d7b9bc 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -394,7 +394,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 9eb2f6330..039cb1872 100644 --- a/lib/librte_power/guest_channel.c +++ b/lib/librte_power/guest_channel.c @@ -100,7 +100,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 9ae438489..27f9937aa 100644 --- a/lib/librte_power/power_kvm_vm.c +++ b/lib/librte_power/power_kvm_vm.c @@ -29,7 +29,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); } @@ -90,25 +90,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 @@ -121,13 +121,13 @@ power_kvm_vm_turbo_status(__rte_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 c9ab7bae8..b9273a025 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; }; From patchwork Thu Jan 21 17:22:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 87040 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 727A2A09E4; Thu, 21 Jan 2021 18:23:39 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61061140DF7; Thu, 21 Jan 2021 18:23:06 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 6E709140DA1; Thu, 21 Jan 2021 18:22:56 +0100 (CET) IronPort-SDR: OxEnXBho4i0rfoOm9mx0z5i1XoAJxZ3g5qpf07mHO0C+++VKRH0RtcSTCjoO5EyoTxGmWDGHKp OAqWwQjMqfng== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="175799684" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="175799684" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 09:22:56 -0800 IronPort-SDR: E3rt4Za/jvJOTwF/M0BZLpA0YJcQ/RvuxQioYf90RVs5jpRvzQCphBvQ2Sw4++5r/vOcFLUDGH wo8xp8GW3X9Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="385386764" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.222.38]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2021 09:22:54 -0800 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com, stable@dpdk.org, Bruce Richardson Date: Thu, 21 Jan 2021 17:22:00 +0000 Message-Id: <20210121172201.22582-6-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210121172201.22582-1-david.hunt@intel.com> References: <20210120135556.33763-2-david.hunt@intel.com> <20210121172201.22582-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v4 5/6] power: add new header file to export list X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Bruce Richardson Adjust meson.build so that 'ninja install' copies the new header file into the installation directory. Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Signed-off-by: David Hunt Acked-by: Anatoly Burakov --- lib/librte_power/meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/librte_power/meson.build b/lib/librte_power/meson.build index 4b4cf1b90..541569528 100644 --- a/lib/librte_power/meson.build +++ b/lib/librte_power/meson.build @@ -10,5 +10,6 @@ sources = files('rte_power.c', 'power_acpi_cpufreq.c', 'rte_power_empty_poll.c', 'power_pstate_cpufreq.c', 'power_common.c') -headers = files('rte_power.h','rte_power_empty_poll.h') +headers = files('rte_power.h','rte_power_empty_poll.h', + 'rte_power_guest_channel.h') deps += ['timer'] From patchwork Thu Jan 21 17:22:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Hunt, David" X-Patchwork-Id: 87041 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F736A09E4; Thu, 21 Jan 2021 18:23:48 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9D250140E01; Thu, 21 Jan 2021 18:23:07 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id CAB32140DC6; Thu, 21 Jan 2021 18:22:57 +0100 (CET) IronPort-SDR: ZY1oFDWyJBCjNs1Z8aZEyHZ0O/v2yuRcVWlveDckVXDxTfdtotJ/s9QaBAgi6kGGkDSSewXXCl ro1O6q1Iv32Q== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="175799689" X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="175799689" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2021 09:22:57 -0800 IronPort-SDR: pF0zltpWvOJ1O7ufS2jZIwmruwIL4L+D0n6pZWdDMf3JymD34GNNg6RCw6XUmVOOsaJ27+8n1n MYl6FZIhec6A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,364,1602572400"; d="scan'208";a="385386781" Received: from silpixa00399952.ir.intel.com (HELO silpixa00399952.ger.corp.intel.com) ([10.237.222.38]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2021 09:22:56 -0800 From: David Hunt To: dev@dpdk.org Cc: david.hunt@intel.com, stable@dpdk.org, Bruce Richardson Date: Thu, 21 Jan 2021 17:22:01 +0000 Message-Id: <20210121172201.22582-7-david.hunt@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210121172201.22582-1-david.hunt@intel.com> References: <20210120135556.33763-2-david.hunt@intel.com> <20210121172201.22582-1-david.hunt@intel.com> Subject: [dpdk-dev] [PATCH v4 6/6] power: clean up includes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Bruce Richardson re-organise the including of the new public header file and remove un-needed includes Fixes: 210c383e247b ("power: packet format for vm power management") Fixes: cd0d5547e873 ("power: vm communication channels in guest") Cc: stable@dpdk.org Signed-off-by: Bruce Richardson Signed-off-by: David Hunt Acked-by: Anatoly Burakov --- examples/vm_power_manager/channel_manager.c | 1 - examples/vm_power_manager/channel_monitor.c | 1 - examples/vm_power_manager/channel_monitor.h | 2 +- examples/vm_power_manager/guest_cli/vm_power_cli_guest.c | 1 - examples/vm_power_manager/guest_cli/vm_power_cli_guest.h | 2 -- examples/vm_power_manager/vm_power_cli.c | 1 - lib/librte_power/guest_channel.c | 2 +- lib/librte_power/guest_channel.h | 2 -- lib/librte_power/power_kvm_vm.c | 2 +- lib/librte_power/rte_power.h | 1 + lib/librte_power/rte_power_guest_channel.h | 3 --- 11 files changed, 4 insertions(+), 14 deletions(-) diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c index c7d5bf5a8..0a28cb643 100644 --- a/examples/vm_power_manager/channel_manager.c +++ b/examples/vm_power_manager/channel_manager.c @@ -27,7 +27,6 @@ #include #include "channel_manager.h" -#include "rte_power_guest_channel.h" #include "channel_monitor.h" #include "power_manager.h" diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index 7bb33e026..99f81544d 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -35,7 +35,6 @@ #include #include "channel_monitor.h" -#include "rte_power_guest_channel.h" #include "channel_manager.h" #include "power_manager.h" #include "oob_monitor.h" diff --git a/examples/vm_power_manager/channel_monitor.h b/examples/vm_power_manager/channel_monitor.h index 5d3537b91..9184a8327 100644 --- a/examples/vm_power_manager/channel_monitor.h +++ b/examples/vm_power_manager/channel_monitor.h @@ -5,8 +5,8 @@ #ifndef CHANNEL_MONITOR_H_ #define CHANNEL_MONITOR_H_ +#include #include "channel_manager.h" -#include "rte_power_guest_channel.h" struct core_share { unsigned int pcpu; 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 ec6409abd..0bf5774ff 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 @@ -19,7 +19,6 @@ #include #include -#include #include "vm_power_cli_guest.h" diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h index 5d285ca9d..b578ec072 100644 --- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h +++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.h @@ -9,8 +9,6 @@ extern "C" { #endif -#include "rte_power_guest_channel.h" - struct rte_power_channel_packet *get_policy(void); int set_policy_mac(int port, int idx); diff --git a/examples/vm_power_manager/vm_power_cli.c b/examples/vm_power_manager/vm_power_cli.c index f7e1b596e..1a55e553b 100644 --- a/examples/vm_power_manager/vm_power_cli.c +++ b/examples/vm_power_manager/vm_power_cli.c @@ -21,7 +21,6 @@ #include "channel_manager.h" #include "channel_monitor.h" #include "power_manager.h" -#include "rte_power_guest_channel.h" struct cmd_quit_result { cmdline_fixed_string_t quit; diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c index 039cb1872..2f7507a03 100644 --- a/lib/librte_power/guest_channel.c +++ b/lib/librte_power/guest_channel.c @@ -15,9 +15,9 @@ #include +#include #include "guest_channel.h" -#include "rte_power_guest_channel.h" #define RTE_LOGTYPE_GUEST_CHANNEL RTE_LOGTYPE_USER1 diff --git a/lib/librte_power/guest_channel.h b/lib/librte_power/guest_channel.h index 7d3a909d9..24f609df3 100644 --- a/lib/librte_power/guest_channel.h +++ b/lib/librte_power/guest_channel.h @@ -8,8 +8,6 @@ extern "C" { #endif -#include - /** * Check if any Virtio-Serial VM end-points exist in path. * diff --git a/lib/librte_power/power_kvm_vm.c b/lib/librte_power/power_kvm_vm.c index 27f9937aa..ab7d4b8ce 100644 --- a/lib/librte_power/power_kvm_vm.c +++ b/lib/librte_power/power_kvm_vm.c @@ -6,8 +6,8 @@ #include -#include "guest_channel.h" #include "rte_power_guest_channel.h" +#include "guest_channel.h" #include "power_kvm_vm.h" #include "power_common.h" diff --git a/lib/librte_power/rte_power.h b/lib/librte_power/rte_power.h index bbbde4dfb..c8086bf6b 100644 --- a/lib/librte_power/rte_power.h +++ b/lib/librte_power/rte_power.h @@ -14,6 +14,7 @@ #include #include #include +#include #ifdef __cplusplus extern "C" { diff --git a/lib/librte_power/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h index b9273a025..adc973817 100644 --- a/lib/librte_power/rte_power_guest_channel.h +++ b/lib/librte_power/rte_power_guest_channel.h @@ -8,9 +8,6 @@ extern "C" { #endif -#include -#include - #define RTE_POWER_MAX_VFS 10 #define RTE_POWER_VM_MAX_NAME_SZ 32 #define RTE_POWER_MAX_VCPU_PER_VM 8