From: Stephen Hemminger <stephen@networkplumber.org>
To: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Cc: netdev@vger.kernel.org, roopa@cumulusnetworks.com,
davem@davemloft.net, bridge@lists.linux-foundation.org
Subject: Re: [PATCH net-next 0/9] net: bridge: convert bool options to bits
Date: Wed, 26 Sep 2018 13:52:33 +0100 [thread overview]
Message-ID: <20180926135233.06cb25dd@shemminger-XPS-13-9360> (raw)
In-Reply-To: <20180926121802.27851-1-nikolay@cumulusnetworks.com>
On Wed, 26 Sep 2018 15:17:53 +0300
Nikolay Aleksandrov <nikolay@cumulusnetworks.com> wrote:
> 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(-)
>
Looks good, these flags grew over time and cleanup was overdue.
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
prev parent reply other threads:[~2018-09-26 19:05 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Stephen Hemminger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180926135233.06cb25dd@shemminger-XPS-13-9360 \
--to=stephen@networkplumber.org \
--cc=bridge@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=roopa@cumulusnetworks.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox