mirror of
https://github.com/openvswitch/ovs
synced 2025-08-31 06:15:47 +00:00
netdev-dpdk: Fixed netdev_dpdk structure alignment
Currently, the code tells us we have 4 pad bytes left in cacheline0
while actually we are 8 bytes short:
struct netdev_dpdk {
union {
OVS_CACHE_LINE_MARKER cacheline0; /* 1 */
struct {
dpdk_port_t port_id; /* 0 2 */
_Bool attached; /* 2 1 */
struct eth_addr hwaddr; /* 4 6 */
int mtu; /* 12 4 */
int socket_id; /* 16 4 */
int buf_size; /* 20 4 */
int max_packet_len; /* 24 4 */
enum dpdk_dev_type type; /* 28 4 */
enum netdev_flags flags; /* 32 4 */
char * devargs; /* 40 8 */
struct dpdk_tx_queue * tx_q; /* 48 8 */
struct rte_eth_link link; /* 56 8 */
int link_reset_cnt; /* 64 4 */
}; /* 72 */
uint8_t pad9[128]; /* 128 */
}; /* 0 128 */
/* --- cacheline 2 boundary (128 bytes) --- */
Re-located one member, link_reset_cnt, and now it's one cache line:
struct netdev_dpdk {
union {
OVS_CACHE_LINE_MARKER cacheline0; /* 1 */
struct {
dpdk_port_t port_id; /* 0 2 */
_Bool attached; /* 2 1 */
struct eth_addr hwaddr; /* 4 6 */
int mtu; /* 12 4 */
int socket_id; /* 16 4 */
int buf_size; /* 20 4 */
int max_packet_len; /* 24 4 */
enum dpdk_dev_type type; /* 28 4 */
enum netdev_flags flags; /* 32 4 */
int link_reset_cnt; /* 36 4 */
char * devargs; /* 40 8 */
struct dpdk_tx_queue * tx_q; /* 48 8 */
struct rte_eth_link link; /* 56 8 */
}; /* 64 */
uint8_t pad9[64]; /* 64 */
}; /* 0 64 */
/* --- cacheline 1 boundary (64 bytes) --- */
Fixes: 5e925ccc2a
("netdev-dpdk: DPDK v17.11 upgrade")
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Acked-by: Tiago Lam <tiago.lam@intel.com>
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
This commit is contained in:
committed by
Ian Stokes
parent
cf8f6f817d
commit
eaa4358119
@@ -373,11 +373,10 @@ struct netdev_dpdk {
|
||||
int max_packet_len;
|
||||
enum dpdk_dev_type type;
|
||||
enum netdev_flags flags;
|
||||
int link_reset_cnt;
|
||||
char *devargs; /* Device arguments for dpdk ports */
|
||||
struct dpdk_tx_queue *tx_q;
|
||||
struct rte_eth_link link;
|
||||
int link_reset_cnt;
|
||||
/* 4 pad bytes here. */
|
||||
);
|
||||
|
||||
PADDED_MEMBERS_CACHELINE_MARKER(CACHE_LINE_SIZE, cacheline1,
|
||||
|
Reference in New Issue
Block a user