By reordering the data elements in dpif_upcall structure, pad bytes can
be reduced and also a cache line.

Before: structure size:768, holes:1, sum padbytes:60, cachelines:12
After: structure size:656, holes:1, sum padbytes:4, cachelines:11

Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com>
Signed-off-by: Antonio Fischetti <antonio.fische...@intel.com>
---
 lib/dpif.h | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/lib/dpif.h b/lib/dpif.h
index a7c5097..4a4bb3d 100644
--- a/lib/dpif.h
+++ b/lib/dpif.h
@@ -779,17 +779,18 @@ const char *dpif_upcall_type_to_string(enum 
dpif_upcall_type);
 struct dpif_upcall {
     /* All types. */
     enum dpif_upcall_type type;
-    struct dp_packet packet;       /* Packet data. */
-    struct nlattr *key;         /* Flow key. */
-    size_t key_len;             /* Length of 'key' in bytes. */
-    ovs_u128 ufid;              /* Unique flow identifier for 'key'. */
-    struct nlattr *mru;         /* Maximum receive unit. */
-    struct nlattr *cutlen;      /* Number of bytes shrink from the end. */
 
     /* DPIF_UC_ACTION only. */
-    struct nlattr *userdata;    /* Argument to OVS_ACTION_ATTR_USERSPACE. */
-    struct nlattr *out_tun_key;    /* Output tunnel key. */
     struct nlattr *actions;    /* Argument to OVS_ACTION_ATTR_USERSPACE. */
+    struct nlattr *out_tun_key;    /* Output tunnel key. */
+    struct nlattr *userdata;    /* Argument to OVS_ACTION_ATTR_USERSPACE. */
+
+    struct nlattr *cutlen;      /* Number of bytes shrink from the end. */
+    struct nlattr *mru;         /* Maximum receive unit. */
+    ovs_u128 ufid;              /* Unique flow identifier for 'key'. */
+    struct dp_packet packet;       /* Packet data. */
+    struct nlattr *key;         /* Flow key. */
+    size_t key_len;             /* Length of 'key' in bytes. */
 };
 
 /* A callback to notify higher layer of dpif about to be purged, so that
-- 
2.4.11

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to