From: Bruce Richardson Date: Thu, 21 Jan 2021 17:21:56 +0000 (+0000) Subject: power: create guest channel public header file X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=5f443cc0f905;p=dpdk.git power: create guest channel public header file 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 --- diff --git a/examples/vm_power_manager/channel_manager.c b/examples/vm_power_manager/channel_manager.c index 9dca6f6863..58a243b230 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 228f06803d..08306105d3 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 7362a80d26..4a526ff670 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 6ad14a3dea..2299d23dce 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 ed0623a41d..f7e1b596ec 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/channel_commands.h b/lib/librte_power/channel_commands.h deleted file mode 100644 index adc8e5ca27..0000000000 --- a/lib/librte_power/channel_commands.h +++ /dev/null @@ -1,125 +0,0 @@ -/* SPDX-License-Identifier: BSD-3-Clause - * Copyright(c) 2010-2014 Intel Corporation - */ - -#ifndef CHANNEL_COMMANDS_H_ -#define CHANNEL_COMMANDS_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -/* --- Incoming messages --- */ - -/* Valid Commands */ -#define CPU_POWER 1 -#define CPU_POWER_CONNECT 2 -#define PKT_POLICY 3 -#define PKT_POLICY_REMOVE 4 - -/* 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 - -/* 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 --- */ - -/* Generic Power Command Response */ -#define CPU_POWER_CMD_ACK 1 -#define CPU_POWER_CMD_NACK 2 - -/* CPU Power Query Responses */ -#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 { - int busy_hours[HOURS]; - int quiet_hours[HOURS]; - int hours_to_use_traffic_profile[HOURS]; -}; - -enum workload {HIGH, MEDIUM, LOW}; -enum policy_to_use { - TRAFFIC, - TIME, - WORKLOAD, - BRANCH_RATIO -}; - -struct traffic { - 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 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]; - - uint64_t vfid[MAX_VFS]; - int nb_mac_to_monitor; - struct traffic traffic_policy; - uint8_t vcpu_to_control[MAX_VCPU_PER_VM]; - uint8_t num_vcpu; - struct timer_profile timer_policy; - bool core_type; - enum workload workload; - enum policy_to_use policy_to_use; - struct t_boost_status t_boost_status; -}; - -struct 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]; - - uint32_t freq_list[MAX_VCPU_PER_VM]; - uint8_t num_vcpu; -}; - -struct 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]; - - uint64_t turbo[MAX_VCPU_PER_VM]; - uint64_t priority[MAX_VCPU_PER_VM]; - uint8_t num_vcpu; -}; - - -#ifdef __cplusplus -} -#endif - -#endif /* CHANNEL_COMMANDS_H_ */ diff --git a/lib/librte_power/guest_channel.c b/lib/librte_power/guest_channel.c index 7b5926e5c4..4cb5ae1ddf 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 e15db46fc7..d3d87f0ae2 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 409c3e03ab..649ebe85c4 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/rte_power_guest_channel.h b/lib/librte_power/rte_power_guest_channel.h new file mode 100644 index 0000000000..ef3b064a85 --- /dev/null +++ b/lib/librte_power/rte_power_guest_channel.h @@ -0,0 +1,124 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright(c) 2010-2021 Intel Corporation + */ +#ifndef RTE_POWER_GUEST_CHANNEL_H +#define RTE_POWER_GUEST_CHANNEL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +/* --- Incoming messages --- */ + +/* Valid Commands */ +#define CPU_POWER 1 +#define CPU_POWER_CONNECT 2 +#define PKT_POLICY 3 +#define PKT_POLICY_REMOVE 4 + +/* 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 + +/* 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 --- */ + +/* Generic Power Command Response */ +#define CPU_POWER_CMD_ACK 1 +#define CPU_POWER_CMD_NACK 2 + +/* CPU Power Query Responses */ +#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 { + int busy_hours[HOURS]; + int quiet_hours[HOURS]; + int hours_to_use_traffic_profile[HOURS]; +}; + +enum workload {HIGH, MEDIUM, LOW}; +enum policy_to_use { + TRAFFIC, + TIME, + WORKLOAD, + BRANCH_RATIO +}; + +struct traffic { + 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 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]; + + uint64_t vfid[MAX_VFS]; + int nb_mac_to_monitor; + struct traffic traffic_policy; + uint8_t vcpu_to_control[MAX_VCPU_PER_VM]; + uint8_t num_vcpu; + struct timer_profile timer_policy; + bool core_type; + enum workload workload; + enum policy_to_use policy_to_use; + struct t_boost_status t_boost_status; +}; + +struct 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]; + + uint32_t freq_list[MAX_VCPU_PER_VM]; + uint8_t num_vcpu; +}; + +struct 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]; + + uint64_t turbo[MAX_VCPU_PER_VM]; + uint64_t priority[MAX_VCPU_PER_VM]; + uint8_t num_vcpu; +}; + + +#ifdef __cplusplus +} +#endif + +#endif /* RTE_POWER_GUEST_CHANNEL_H_ */