From: Horatiu Vultur <horatiu.vultur@xxxxxxxxxxxxx> Date: Mon, 6 Jul 2020 11:18:31 +0200 > +/* SWITCHDEV_OBJ_ID_IN_TEST_MRP */ > +struct switchdev_obj_in_test_mrp { > + struct switchdev_obj obj; > + /* The value is in us and a value of 0 represents to stop */ > + u32 interval; > + u8 max_miss; > + u32 in_id; > + u32 period; > +}; ... > +#define SWITCHDEV_OBJ_IN_TEST_MRP(OBJ) \ > + container_of((OBJ), struct switchdev_obj_in_test_mrp, obj) > + > +/* SWICHDEV_OBJ_ID_IN_ROLE_MRP */ > +struct switchdev_obj_in_role_mrp { > + struct switchdev_obj obj; > + u16 in_id; > + u32 ring_id; > + u8 in_role; > + struct net_device *i_port; > +}; ... > +#define SWITCHDEV_OBJ_IN_ROLE_MRP(OBJ) \ > + container_of((OBJ), struct switchdev_obj_in_role_mrp, obj) > + > +struct switchdev_obj_in_state_mrp { > + struct switchdev_obj obj; > + u8 in_state; > + u32 in_id; > +}; Please arrange these structure members in a more optimal order so that the resulting object is denser. For example, in switchdev_obj_in_role_mrp if you order it such that: > + u32 ring_id; > + u16 in_id; > + u8 in_role; You'll have less wasted space from padding. Use 'pahole' or similar tools to guide you.