From: josh@joshtriplett.org
To: Tom Herbert <therbert@google.com>
Cc: Andi Kleen <ak@linux.intel.com>,
Eric Dumazet <eric.dumazet@gmail.com>,
David Miller <davem@davemloft.net>,
Andi Kleen <andi@firstfloor.org>,
Linux Netdev List <netdev@vger.kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
tom.zanussi@linux.intel.com
Subject: Re: [PATCH 08/24] net, diet: Make TCP metrics optional
Date: Tue, 6 May 2014 12:37:50 -0700 [thread overview]
Message-ID: <20140506193750.GA21332@cloud> (raw)
In-Reply-To: <CA+mtBx81EdtZeXRG_ubgWMy+8rSOpK3q0S3YktBDDFt-LG2poA@mail.gmail.com>
On Tue, May 06, 2014 at 11:58:38AM -0700, Tom Herbert wrote:
> On Tue, May 6, 2014 at 11:32 AM, Andi Kleen <ak@linux.intel.com> wrote:
> >> We simply can not compete with user space, as a programmer is free to
> >> keep what he really wants/needs.
> >
> > Not true.
> >
> > With my patches and LTO Linux can be competive with LWIP+socket layer.
> > (about 60K more text). And it's easier to use because it's just
> > the standard interface.
> >
> >> I have started using linux on 386/486 pcs which had more than 2MB of
> >> memory, it makes me sad we want linux-3.16 to run on this kind of
> >> hardware, and consuming time to save few KB here and here.
> >
> > Linux has always been a system from very small to big.
> > That's been one of its strengths. It is very adaptable.
> >
> > Many subsystems are very configurable for this.
> > For example that is why we have both SLOB and SLUB.
> > That is why we have NOMMU MM and lots of other tuning
> > knobs for small systems.
> >
> > So if the other subsystems can do this, why should it be
> > impossible for networking?
> >
> Can this at least be done without the combinatorial explosion in
> number of configurations? As Yuchung pointed out these patches
> introduce at least one unresolved configuration dependency. CONFIG_SMP
> works quite well since with a single parameter we can enable/disable a
> whole bunch of functionality in bulk, and it's quite clear that new
> development cannot break smp or non-smp configurations. Maybe you want
> something similar like CONFIG_NETWORK_SMALL?
That seems completely reasonable. Likewise, for infrastructure that
scales by CPU, keying off of CONFIG_NR_CPUS might make sense.
I'd suggest inverting it, so that 'n' means "small" and 'y' means fully
featured. Here's a rough description for a CONFIG_NETWORK_FULL:
config NETWORK_FULL
default y
bool "Full-featured networking stack" if EMBEDDED
--help--
Leave this option enabled for a full-featured networking
stack, including features used by the vast majority of
systems. Saying N here results in a minimal embedded
networking stack, suitable only for the most
memory-constrained and storage-constrained systems; the
minimal stack removes many features, and optimizes for code
and data size rather than performance.
If in doubt, say Y here.
next prev parent reply other threads:[~2014-05-06 19:37 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-05 22:25 RFC: A reduced Linux network stack for small systems Andi Kleen
2014-05-05 22:25 ` [PATCH 01/24] net, diet: Reduce netdev name hash table for CONFIG_BASE_SMALL Andi Kleen
2014-05-06 3:03 ` David Miller
2014-05-05 22:25 ` [PATCH 02/24] net, diet: Reduce NAPI " Andi Kleen
2014-05-05 22:25 ` [PATCH 03/24] net, diet: Decrease ip defrag hash tables and max length with BASE_SMALL Andi Kleen
2014-05-05 22:25 ` [PATCH 04/24] net, diet: Make FIB hash tables smaller with CONFIG_BASE_SMALL Andi Kleen
2014-05-06 3:10 ` David Miller
2014-05-05 22:25 ` [PATCH 05/24] net, diet: Default to small TCP hash tables on small kernels Andi Kleen
2014-05-06 3:12 ` David Miller
2014-05-05 22:25 ` [PATCH 06/24] net, diet: Use small UDP " Andi Kleen
2014-05-06 3:11 ` David Miller
2014-05-06 14:26 ` Eric Dumazet
2014-05-06 18:23 ` Andi Kleen
2014-05-06 19:25 ` Eric Dumazet
2014-05-05 22:25 ` [PATCH 07/24] net, diet: Make ping sockets optional Andi Kleen
2014-05-06 3:04 ` David Miller
2014-05-05 22:25 ` [PATCH 08/24] net, diet: Make TCP metrics optional Andi Kleen
2014-05-05 23:18 ` Yuchung Cheng
2014-05-05 23:28 ` Andi Kleen
2014-05-06 3:12 ` David Miller
2014-05-06 3:21 ` Andi Kleen
2014-05-06 3:23 ` David Miller
2014-05-06 4:39 ` Tom Zanussi
2014-05-07 13:59 ` One Thousand Gnomes
2014-05-07 17:20 ` David Miller
2014-05-07 22:19 ` Tim Bird
2014-05-07 22:52 ` David Miller
2014-05-06 15:57 ` josh
2014-05-06 15:59 ` David Miller
2014-05-06 16:41 ` josh
2014-05-06 17:12 ` Rick Jones
2014-05-06 18:09 ` josh
2014-05-06 17:16 ` David Miller
2014-05-06 17:55 ` josh
2014-05-06 18:33 ` Cong Wang
2014-05-06 18:48 ` Andi Kleen
2014-05-06 19:19 ` Richard Cochran
2014-05-06 20:44 ` David Miller
2014-05-06 21:08 ` josh
2014-05-06 21:11 ` David Miller
2014-05-06 22:50 ` josh
2014-05-06 23:27 ` Eric Dumazet
2014-06-14 20:33 ` Pavel Machek
2014-06-23 10:17 ` zhuyj
2014-05-06 19:14 ` Richard Cochran
2014-05-06 19:50 ` Andi Kleen
2014-05-06 20:07 ` Richard Cochran
2014-05-06 21:05 ` Andi Kleen
2014-05-06 23:29 ` Eric Dumazet
2014-05-07 4:33 ` Andi Kleen
2014-05-06 20:46 ` David Miller
2014-05-07 8:39 ` David Laight
2014-05-09 9:48 ` Pavel Machek
2014-05-06 16:39 ` Eric Dumazet
2014-05-06 16:45 ` josh
2014-05-06 17:03 ` Eric Dumazet
2014-05-06 17:30 ` josh
2014-05-06 17:17 ` David Miller
2014-05-06 17:21 ` josh
2014-05-06 17:25 ` David Miller
2014-05-06 20:06 ` Andi Kleen
2014-05-06 20:47 ` David Miller
2014-05-06 20:11 ` josh
2014-05-06 20:44 ` Andi Kleen
2014-05-06 17:14 ` David Miller
2014-05-06 18:32 ` Andi Kleen
2014-05-06 18:58 ` Tom Herbert
2014-05-06 19:37 ` josh [this message]
2014-05-06 19:57 ` Andi Kleen
2014-05-06 20:17 ` Eric Dumazet
2014-05-06 20:27 ` josh
2014-05-06 20:37 ` Andi Kleen
2014-05-06 20:48 ` David Miller
2014-05-07 13:35 ` One Thousand Gnomes
2014-05-13 16:22 ` Christer Weinigel
2014-05-09 7:38 ` Pavel Machek
2014-05-05 22:25 ` [PATCH 09/24] net, diet: Make ethtool optional Andi Kleen
2014-05-06 3:11 ` David Miller
2014-05-06 3:14 ` Andi Kleen
2014-05-06 3:22 ` David Miller
2014-05-05 22:25 ` [PATCH 10/24] net, diet: Make LPF filter optional Andi Kleen
2014-05-06 3:10 ` David Miller
2014-05-05 22:26 ` [PATCH 11/24] net, diet: Move rtnl_lock to separate file Andi Kleen
2014-05-05 22:26 ` [PATCH 12/24] net, diet: Make rtnetlink optional Andi Kleen
2014-05-06 3:08 ` David Miller
2014-05-06 3:11 ` Andi Kleen
2014-05-05 22:26 ` [PATCH 13/24] net, diet: Make GRO offload optional Andi Kleen
2014-05-06 3:01 ` David Miller
2014-05-06 3:03 ` Andi Kleen
2014-05-05 22:26 ` [PATCH 14/24] net, diet: Make MIB statistics collections depend on PROC_FS Andi Kleen
2014-05-06 3:05 ` David Miller
2014-05-05 22:26 ` [PATCH 15/24] net, diet: Make igmp and mcast ioctls depend on IP_MULTICAST Andi Kleen
2014-05-05 22:26 ` [PATCH 16/24] net, diet: Make TCP fastopen optional Andi Kleen
2014-05-06 3:06 ` David Miller
2014-05-05 22:26 ` [PATCH 17/24] net, diet: Make internal control sockets use UDP Andi Kleen
2014-05-05 22:26 ` [PATCH 18/24] net, diet: Make raw sockets optional Andi Kleen
2014-05-06 3:12 ` David Miller
2014-05-05 22:26 ` [PATCH 19/24] net, diet: Make RPS configurable Andi Kleen
2014-05-06 3:14 ` David Miller
2014-05-06 3:16 ` Andi Kleen
2014-05-06 8:32 ` Bjørn Mork
2014-05-05 22:26 ` [PATCH 20/24] net, diet: Make XPS configurable Andi Kleen
2014-05-05 22:26 ` [PATCH 21/24] net, diet: Make packet tpacket/mmap/fanout/rings optional Andi Kleen
2014-05-06 3:09 ` David Miller
2014-05-05 22:26 ` [PATCH 22/24] net, diet: Support simpler routing table Andi Kleen
2014-05-06 3:02 ` David Miller
2014-05-06 3:08 ` Andi Kleen
2014-05-06 3:21 ` David Miller
2014-05-05 22:26 ` [PATCH 23/24] net, diet: Add coccinelle script to convert drivers to ETHTOOL_OPS Andi Kleen
2014-05-06 9:27 ` Nicolas Palix
2014-05-06 15:05 ` David Miller
2014-05-07 0:18 ` Wilfried Klaebe
2014-05-05 22:26 ` [PATCH 24/24] net, diet: Convert all drivers to use SET_ETHTOOL_OPS Andi Kleen
2014-05-06 7:25 ` RFC: A reduced Linux network stack for small systems Richard Weinberger
2014-05-06 13:34 ` Tom Zanussi
2014-05-06 15:20 ` Alexei Starovoitov
2014-05-06 15:34 ` Tom Zanussi
2014-05-06 17:20 ` Alexei Starovoitov
2014-05-06 20:00 ` Andi Kleen
2014-05-06 21:05 ` Alexei Starovoitov
2014-05-09 7:39 ` Pavel Machek
2014-05-09 7:38 ` Pavel Machek
2014-05-06 9:18 ` David Laight
2014-05-07 13:20 ` One Thousand Gnomes
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=20140506193750.GA21332@cloud \
--to=josh@joshtriplett.org \
--cc=ak@linux.intel.com \
--cc=andi@firstfloor.org \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=therbert@google.com \
--cc=tom.zanussi@linux.intel.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;
as well as URLs for NNTP newsgroup(s).