netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/9] net: bridge: convert bool options to bits
@ 2018-09-26 12:17 Nikolay Aleksandrov
  2018-09-26 12:17 ` [PATCH net-next 1/9] net: bridge: make struct opening bracket consistent Nikolay Aleksandrov
                   ` (9 more replies)
  0 siblings, 10 replies; 16+ messages in thread
From: Nikolay Aleksandrov @ 2018-09-26 12:17 UTC (permalink / raw)
  To: netdev; +Cc: roopa, davem, stephen, bridge, Nikolay Aleksandrov

Hi,
A lot of boolean bridge options have been added around the net_bridge
structure resulting in holes and more importantly different cache lines
that need to be fetched in the fast path. This set moves all of those
to bits in a bitfield which resides in a hot cache line thus reducing
the size of net_bridge, the number of holes and the number of cache
lines needed for the fast path.
The set is also sent in preparation for new boolean options to avoid
spreading them in the structure and making new holes.
One nice side-effect is that we avoid potential race conditions by using
the bitops since some of the options were bits being directly set in
parallel risking hard to debug issues (has_ipv6_addr).

Before:
 size: 1184, holes: 8, sum holes: 30
After:
 size: 1160, holes: 2, sum holes: 3

Patch 01 is a trivial style fix
Patch 02 adds the new options bitfield and converts the vlan boolean
         options to bits
Patches 03-08 convert the rest of the boolean options to bits
Patch 09 re-arranges a few fields in net_bridge to avoid fetching one
         extra cache line in fast path and to further reduce size

Thanks,
 Nik


Nikolay Aleksandrov (9):
  net: bridge: make struct opening bracket consistent
  net: bridge: add bitfield for options and convert vlan opts
  net: bridge: convert nf call options to bits
  net: bridge: convert group_addr_set option to a bit
  net: bridge: convert and rename mcast disabled
  net: bridge: convert mcast options to bits
  net: bridge: convert neigh_suppress_enabled option to a bit
  net: bridge: convert mtu_set_by_user to a bit
  net: bridge: pack net_bridge better

 net/bridge/br.c                 | 16 +++++++++
 net/bridge/br_arp_nd_proxy.c    | 13 +++++---
 net/bridge/br_device.c          |  6 ++--
 net/bridge/br_if.c              |  4 +--
 net/bridge/br_input.c           |  2 +-
 net/bridge/br_mdb.c             |  6 ++--
 net/bridge/br_multicast.c       | 54 +++++++++++++++---------------
 net/bridge/br_netfilter_hooks.c |  7 ++--
 net/bridge/br_netlink.c         | 31 +++++++++--------
 net/bridge/br_private.h         | 74 +++++++++++++++++++++++------------------
 net/bridge/br_sysfs_br.c        | 32 +++++++++---------
 net/bridge/br_vlan.c            | 30 +++++++++--------
 12 files changed, 155 insertions(+), 120 deletions(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2018-09-26 21:14 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-26 12:17 [PATCH net-next 0/9] net: bridge: convert bool options to bits Nikolay Aleksandrov
2018-09-26 12:17 ` [PATCH net-next 1/9] net: bridge: make struct opening bracket consistent Nikolay Aleksandrov
2018-09-26 12:17 ` [PATCH net-next 2/9] net: bridge: add bitfield for options and convert vlan opts Nikolay Aleksandrov
2018-09-26 14:48   ` Andrew Lunn
2018-09-26 14:55     ` Nikolay Aleksandrov
2018-09-26 15:01       ` Andrew Lunn
2018-09-26 12:17 ` [PATCH net-next 3/9] net: bridge: convert nf call options to bits Nikolay Aleksandrov
2018-09-26 12:17 ` [PATCH net-next 4/9] net: bridge: convert group_addr_set option to a bit Nikolay Aleksandrov
2018-09-26 12:17 ` [PATCH net-next 5/9] net: bridge: convert and rename mcast disabled Nikolay Aleksandrov
2018-09-26 12:17 ` [PATCH net-next 6/9] net: bridge: convert mcast options to bits Nikolay Aleksandrov
2018-09-26 12:18 ` [PATCH net-next 7/9] net: bridge: convert neigh_suppress_enabled option to a bit Nikolay Aleksandrov
2018-09-26 12:18 ` [PATCH net-next 8/9] net: bridge: convert mtu_set_by_user " Nikolay Aleksandrov
2018-09-26 12:18 ` [PATCH net-next 9/9] net: bridge: pack net_bridge better Nikolay Aleksandrov
2018-09-26 13:30   ` Ido Schimmel
2018-09-26 13:35     ` Nikolay Aleksandrov
2018-09-26 12:52 ` [PATCH net-next 0/9] net: bridge: convert bool options to bits Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).