Subject: Re: [PATCH] [NET] reduce sizeof(struct flow)

From: Eric Dumazet <[email-masked]>
Date: Wed, 18 Oct 2006 07:42:17 +0200

David Miller a écrit :
> From: Eric Dumazet <[email-masked]>
> Date: Wed, 18 Oct 2006 07:08:07 +0200
> 
>> Each route entry includes a 'struct flow'. This structure has a
>> current size of 80 bytes. This patch makes a size reduction
>> depending on
>> CONFIG_IPV6/CONFIG_IPV6_MODULE/CONFIG_DECNET/CONFIG_IP_ROUTE_FWMARK
>> For a platform doing IPV4 only, the new size is 36 bytes (instead of
>> 80) As many routers are base on PIII (L1_CACHE_SIZE=32), this saves
>> one cache line per rtable entry.
> 
> I don't like these kinds of patches because %99 of people will never
> ever realize the "savings" because distribution vendors will always,
> unlaterally, enable everything.
> 
> For example, I'm still pending to cut the patch that kills the "struct
> flow" from inet_sock's cork area since it really isn't needed.
> 
> I'd rather do things that get rid of the size in a way that benefits
> everyone, regardless of kernel config.  I also would totally support
> a patch that got rid of all the config ifdefs used in struct sk_buff.

I agree with you David (I dont like these patches as well), but I know a lot 
of sysadmins who recompile themselves their kernels because they have old 
machines and/or want optimized kernels, not 'big bloated kernels' from distro 
guys running the very latest intel/amd bomb.

As long the #ifdefs are in .h files, I do think the pain is small.

Fact is linux has many CONFIG_XXXX things, and as many possible binary 
versions for a single linux-2.6.XX version as atoms in the universe... A 
distro cannot provides all version and just provide the largest possible one, 
containing many obsolete/funny features.

How many people are using DECNET and want to pay the price of this 20 bytes 
dnports structure ?

Eric