[v4,21/39] power: use C11 alignas
Checks
Commit Message
* Move __rte_aligned from the end of {struct,union} definitions to
be between {struct,union} and tag.
The placement between {struct,union} and the tag allows the desired
alignment to be imparted on the type regardless of the toolchain being
used for all of GCC, LLVM, MSVC compilers building both C and C++.
* Replace use of __rte_aligned(a) on variables/fields with alignas(a).
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
---
lib/power/power_acpi_cpufreq.c | 4 ++--
lib/power/power_amd_pstate_cpufreq.c | 4 ++--
lib/power/power_cppc_cpufreq.c | 4 ++--
lib/power/power_intel_uncore.c | 4 ++--
lib/power/power_pstate_cpufreq.c | 4 ++--
lib/power/rte_power_pmd_mgmt.c | 4 ++--
6 files changed, 12 insertions(+), 12 deletions(-)
@@ -41,7 +41,7 @@ enum power_state {
/**
* Power info per lcore.
*/
-struct acpi_power_info {
+struct __rte_cache_aligned acpi_power_info {
unsigned int lcore_id; /**< Logical core id */
uint32_t freqs[RTE_MAX_LCORE_FREQS]; /**< Frequency array */
uint32_t nb_freqs; /**< number of available freqs */
@@ -51,7 +51,7 @@ struct acpi_power_info {
RTE_ATOMIC(uint32_t) state; /**< Power in use state */
uint16_t turbo_available; /**< Turbo Boost available */
uint16_t turbo_enable; /**< Turbo Boost enable/disable */
-} __rte_cache_aligned;
+};
static struct acpi_power_info lcore_power_info[RTE_MAX_LCORE];
@@ -45,7 +45,7 @@ enum power_state {
/**
* Power info per lcore.
*/
-struct amd_pstate_power_info {
+struct __rte_cache_aligned amd_pstate_power_info {
uint32_t lcore_id; /**< Logical core id */
RTE_ATOMIC(uint32_t) state; /**< Power in use state */
FILE *f; /**< FD of scaling_setspeed */
@@ -58,7 +58,7 @@ struct amd_pstate_power_info {
uint16_t turbo_enable; /**< Turbo Boost enable/disable */
uint32_t nb_freqs; /**< number of available freqs */
uint32_t freqs[RTE_MAX_LCORE_FREQS]; /**< Frequency array */
-} __rte_cache_aligned;
+};
static struct amd_pstate_power_info lcore_power_info[RTE_MAX_LCORE];
@@ -49,7 +49,7 @@ enum power_state {
/**
* Power info per lcore.
*/
-struct cppc_power_info {
+struct __rte_cache_aligned cppc_power_info {
unsigned int lcore_id; /**< Logical core id */
RTE_ATOMIC(uint32_t) state; /**< Power in use state */
FILE *f; /**< FD of scaling_setspeed */
@@ -61,7 +61,7 @@ struct cppc_power_info {
uint16_t turbo_enable; /**< Turbo Boost enable/disable */
uint32_t nb_freqs; /**< number of available freqs */
uint32_t freqs[RTE_MAX_LCORE_FREQS]; /**< Frequency array */
-} __rte_cache_aligned;
+};
static struct cppc_power_info lcore_power_info[RTE_MAX_LCORE];
@@ -29,7 +29,7 @@
"/sys/devices/system/cpu/intel_uncore_frequency/package_%02u_die_%02u/initial_min_freq_khz"
-struct uncore_power_info {
+struct __rte_cache_aligned uncore_power_info {
unsigned int die; /* Core die id */
unsigned int pkg; /* Package id */
uint32_t freqs[MAX_UNCORE_FREQS]; /* Frequency array */
@@ -41,7 +41,7 @@ struct uncore_power_info {
uint32_t org_max_freq; /* Original max freq of uncore */
uint32_t init_max_freq; /* System max uncore freq */
uint32_t init_min_freq; /* System min uncore freq */
-} __rte_cache_aligned;
+};
static struct uncore_power_info uncore_info[RTE_MAX_NUMA_NODES][MAX_NUMA_DIE];
@@ -49,7 +49,7 @@ enum power_state {
POWER_UNKNOWN
};
-struct pstate_power_info {
+struct __rte_cache_aligned pstate_power_info {
unsigned int lcore_id; /**< Logical core id */
uint32_t freqs[RTE_MAX_LCORE_FREQS]; /**< Frequency array */
uint32_t nb_freqs; /**< number of available freqs */
@@ -64,7 +64,7 @@ struct pstate_power_info {
uint16_t turbo_available; /**< Turbo Boost available */
uint16_t turbo_enable; /**< Turbo Boost enable/disable */
uint16_t priority_core; /**< High Performance core */
-} __rte_cache_aligned;
+};
static struct pstate_power_info lcore_power_info[RTE_MAX_LCORE];
@@ -55,7 +55,7 @@ struct queue_list_entry {
const struct rte_eth_rxtx_callback *cb;
};
-struct pmd_core_cfg {
+struct __rte_cache_aligned pmd_core_cfg {
TAILQ_HEAD(queue_list_head, queue_list_entry) head;
/**< List of queues associated with this lcore */
size_t n_queues;
@@ -68,7 +68,7 @@ struct pmd_core_cfg {
/**< Number of queues ready to enter power optimized state */
uint64_t sleep_target;
/**< Prevent a queue from triggering sleep multiple times */
-} __rte_cache_aligned;
+};
static struct pmd_core_cfg lcore_cfgs[RTE_MAX_LCORE];
static inline bool