From: Yuanhan Liu Date: Tue, 3 May 2016 00:46:18 +0000 (-0700) Subject: vhost: arrange struct fields for better cache sharing X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=a66bcad3224008f6fb89755c34533eb5fead166a;p=dpdk.git vhost: arrange struct fields for better cache sharing The ifname[] field takes so much space, that it seperates some frequently used fields into different caches, say, features and broadcast_rarp. This patch moves all those fields that will be accessed frequently in Rx/Tx together (before the ifname[] field) to let them share one cache line. Signed-off-by: Yuanhan Liu Acked-by: Huawei Xie Tested-by: Rich Lane --- diff --git a/lib/librte_vhost/vhost-net.h b/lib/librte_vhost/vhost-net.h index 162ad04549..41a3ccf685 100644 --- a/lib/librte_vhost/vhost-net.h +++ b/lib/librte_vhost/vhost-net.h @@ -128,16 +128,16 @@ struct virtio_net { int vid; uint32_t flags; uint16_t vhost_hlen; + /* to tell if we need broadcast rarp packet */ + rte_atomic16_t broadcast_rarp; + uint32_t virt_qp_nb; + struct vhost_virtqueue *virtqueue[VHOST_MAX_QUEUE_PAIRS * 2]; #define IF_NAME_SZ (PATH_MAX > IFNAMSIZ ? PATH_MAX : IFNAMSIZ) char ifname[IF_NAME_SZ]; - uint32_t virt_qp_nb; uint64_t log_size; uint64_t log_base; struct ether_addr mac; - /* to tell if we need broadcast rarp packet */ - rte_atomic16_t broadcast_rarp; - struct vhost_virtqueue *virtqueue[VHOST_MAX_QUEUE_PAIRS * 2]; } __rte_cache_aligned; /**