lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87vbi7fq92.fsf_-_@x220.int.ebiederm.org>
Date:	Wed, 11 Mar 2015 11:33:29 -0500
From:	ebiederm@...ssion.com (Eric W. Biederman)
To:	David Miller <davem@...emloft.net>
Cc:	edumazet@...gle.com, netdev@...r.kernel.org,
	stephen@...workplumber.org, nicolas.dichtel@...nd.com,
	roopa@...ulusnetworks.com, hannes@...essinduktion.org,
	ddutt@...ulusnetworks.com, vipin@...ulusnetworks.com,
	shmulik.ladkani@...il.com, dsahern@...il.com,
	Julian Anastasov <ja@....bg>
Subject: [PATCH net-next 0/8] tcp_metrics: Network namespace bloat reduction v2


This is a small pile of patches that convert tcp_metrics from using a
hash table per network namespace to using a single hash table for all
network namespaces.

This is broken up into several patches so that each small step along
the way could be carefully scrutinized as I wrote it, and equally so
that each small step can be reviewed.

There are several cleanups included in this series.  The death of
hold_net and release_net.  The addition of a new type possible_net_t to
allow compiling out struct net * pointers in structures without ugly
ifdefs.  The addition of panic calls during boot where we can not handle
failure, and not trying simplifies the code.  The removal of the return
code from tcp_metrics_flush_all.

The motivation for this change is that the tcp_metrics hash table at
128KiB is one of the largest components of a freshly allocated network
namespace.

Eric W. Biederman (6):
      tcp_metrics: panic when tcp_metrics can not be allocated
      tcp_metrics: Mix the network namespace into the hash function.
      tcp_metrics: Add a field tcpm_net and verify it matches on lookup
      tcp_metrics: Remove the unused return code from tcp_metrics_flush_all
      tcp_metrics: Rewrite tcp_metrics_flush_all
      tcp_metrics: Use a single hash table for all network namespaces.

 include/net/netns/ipv4.h |   2 -
 net/ipv4/tcp_metrics.c   | 118 +++++++++++++++++++++++++++++------------------
 2 files changed, 73 insertions(+), 47 deletions(-)

Eric W. Biederman (8):
      net: Kill hold_net release_net
      net: Introduce possible_net_t
      tcp_metrics: panic when tcp_metrics_init fails.
      tcp_metrics: Mix the network namespace into the hash function.
      tcp_metrics: Add a field tcpm_net and verify it matches on lookup
      tcp_metrics: Remove the unused return code from tcp_metrics_flush_all
      tcp_metrics: Rewrite tcp_metrics_flush_all
      tcp_metrics: Use a single hash table for all network namespaces.

 include/linux/netdevice.h            |   9 +--
 include/net/cfg80211.h               |   4 +-
 include/net/fib_rules.h              |   1 -
 include/net/genetlink.h              |   4 +-
 include/net/inet_hashtables.h        |   4 +-
 include/net/ip_vs.h                  |   8 +-
 include/net/neighbour.h              |   8 +-
 include/net/net_namespace.h          |  52 ++++---------
 include/net/netfilter/nf_conntrack.h |   5 +-
 include/net/netns/ipv4.h             |   2 -
 include/net/sock.h                   |   6 +-
 include/net/xfrm.h                   |   8 +-
 net/9p/trans_fd.c                    |   4 +-
 net/core/dev.c                       |   2 -
 net/core/fib_rules.c                 |   8 +-
 net/core/neighbour.c                 |   9 +--
 net/core/net_namespace.c             |  11 ---
 net/core/sock.c                      |   1 -
 net/ipv4/fib_semantics.c             |   3 +-
 net/ipv4/inet_hashtables.c           |   3 +-
 net/ipv4/inet_timewait_sock.c        |   4 +-
 net/ipv4/ipmr.c                      |   4 +-
 net/ipv4/tcp_metrics.c               | 137 +++++++++++++++++++----------------
 net/ipv6/addrlabel.c                 |  11 +--
 net/ipv6/ip6_flowlabel.c             |   3 +-
 net/ipv6/ip6mr.c                     |   4 +-
 net/openvswitch/datapath.c           |   4 +-
 net/openvswitch/datapath.h           |   4 +-
 net/packet/internal.h                |   4 +-
 29 files changed, 121 insertions(+), 206 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ