Thread (123 messages) flat view 123 messages, 21 authors, 2014-06-23

Re: [PATCH 08/24] net, diet: Make TCP metrics optional

From: josh@joshtriplett.org
Date: 2014-05-06 19:37:56
Also in: lkml

On Tue, May 06, 2014 at 11:58:38AM -0700, Tom Herbert wrote:
On Tue, May 6, 2014 at 11:32 AM, Andi Kleen [off-list ref] wrote:
quoted
quoted
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.
quoted
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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help