mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 00:20:32 +00:00
net: mscc: ocelot: minimize holes in struct ocelot_port
[ Upstream commit 6d0be60047
]
Reorder members of struct ocelot_port to eliminate holes and reduce
structure size. Pahole says:
Before:
struct ocelot_port {
struct ocelot * ocelot; /* 0 8 */
struct regmap * target; /* 8 8 */
bool vlan_aware; /* 16 1 */
/* XXX 7 bytes hole, try to pack */
const struct ocelot_bridge_vlan * pvid_vlan; /* 24 8 */
unsigned int ptp_skbs_in_flight; /* 32 4 */
u8 ptp_cmd; /* 36 1 */
/* XXX 3 bytes hole, try to pack */
struct sk_buff_head tx_skbs; /* 40 96 */
/* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */
u8 ts_id; /* 136 1 */
/* XXX 3 bytes hole, try to pack */
phy_interface_t phy_mode; /* 140 4 */
bool is_dsa_8021q_cpu; /* 144 1 */
bool learn_ena; /* 145 1 */
/* XXX 6 bytes hole, try to pack */
struct net_device * bond; /* 152 8 */
bool lag_tx_active; /* 160 1 */
/* XXX 1 byte hole, try to pack */
u16 mrp_ring_id; /* 162 2 */
/* XXX 4 bytes hole, try to pack */
struct net_device * bridge; /* 168 8 */
int bridge_num; /* 176 4 */
u8 stp_state; /* 180 1 */
/* XXX 3 bytes hole, try to pack */
int speed; /* 184 4 */
/* size: 192, cachelines: 3, members: 18 */
/* sum members: 161, holes: 7, sum holes: 27 */
/* padding: 4 */
};
After:
struct ocelot_port {
struct ocelot * ocelot; /* 0 8 */
struct regmap * target; /* 8 8 */
struct net_device * bond; /* 16 8 */
struct net_device * bridge; /* 24 8 */
const struct ocelot_bridge_vlan * pvid_vlan; /* 32 8 */
phy_interface_t phy_mode; /* 40 4 */
unsigned int ptp_skbs_in_flight; /* 44 4 */
struct sk_buff_head tx_skbs; /* 48 96 */
/* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */
u16 mrp_ring_id; /* 144 2 */
u8 ptp_cmd; /* 146 1 */
u8 ts_id; /* 147 1 */
u8 stp_state; /* 148 1 */
bool vlan_aware; /* 149 1 */
bool is_dsa_8021q_cpu; /* 150 1 */
bool learn_ena; /* 151 1 */
bool lag_tx_active; /* 152 1 */
/* XXX 3 bytes hole, try to pack */
int bridge_num; /* 156 4 */
int speed; /* 160 4 */
/* size: 168, cachelines: 3, members: 18 */
/* sum members: 161, holes: 1, sum holes: 3 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
fdc2b73b48
commit
9ecc19e28a
1 changed files with 15 additions and 13 deletions
|
@ -652,28 +652,30 @@ struct ocelot_port {
|
|||
|
||||
struct regmap *target;
|
||||
|
||||
bool vlan_aware;
|
||||
struct net_device *bond;
|
||||
struct net_device *bridge;
|
||||
|
||||
/* VLAN that untagged frames are classified to, on ingress */
|
||||
const struct ocelot_bridge_vlan *pvid_vlan;
|
||||
|
||||
unsigned int ptp_skbs_in_flight;
|
||||
u8 ptp_cmd;
|
||||
struct sk_buff_head tx_skbs;
|
||||
u8 ts_id;
|
||||
|
||||
phy_interface_t phy_mode;
|
||||
|
||||
bool is_dsa_8021q_cpu;
|
||||
bool learn_ena;
|
||||
|
||||
struct net_device *bond;
|
||||
bool lag_tx_active;
|
||||
unsigned int ptp_skbs_in_flight;
|
||||
struct sk_buff_head tx_skbs;
|
||||
|
||||
u16 mrp_ring_id;
|
||||
|
||||
struct net_device *bridge;
|
||||
int bridge_num;
|
||||
u8 ptp_cmd;
|
||||
u8 ts_id;
|
||||
|
||||
u8 stp_state;
|
||||
bool vlan_aware;
|
||||
bool is_dsa_8021q_cpu;
|
||||
bool learn_ena;
|
||||
|
||||
bool lag_tx_active;
|
||||
|
||||
int bridge_num;
|
||||
|
||||
int speed;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue