aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/Makefile_32.cpu
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2008-03-26 16:27:22 -0700
committerDavid S. Miller <davem@davemloft.net>2008-03-26 16:27:22 -0700
commit67727184f28c38d06013c6659560bb046c1d9f9c (patch)
treefce5871c7fe554e05aa61fcc2d2d86afe7befdbc /arch/x86/Makefile_32.cpu
parent789e41e6f496022ac1639aaae38ea1943606a9d0 (diff)
[VLAN]: Reduce memory consumed by vlan_groups
Currently each vlan_groupd contains 8 pointers on arrays with 512 pointers on struct net_device each :) Such a construction "in many cases ... wastes memory". My proposal is to allow for some of these arrays pointers be NULL, meaning that there are no devices in it. When a new device is added to the vlan_group, the appropriate array is allocated. The check in vlan_group_get_device's is safe, since the pointer vg->vlan_devices_arrays[x] can only switch from NULL to not-NULL. The vlan_group_prealloc_vid() is guarded with rtnl lock and is also safe. I've checked (I hope that) all the places, that use these arrays and found, that the register_vlan_dev is the only place, that can put a vlan device on an empty vlan_group. Rough calculations shows, that after the patch a setup with a single vlan dev (or up to 512 vlans with sequential vids) will occupy approximately 8 times less memory. The question I have is - does this patch makes sense, or a totally new structures are required to store the vlan_devs? Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'arch/x86/Makefile_32.cpu')
0 files changed, 0 insertions, 0 deletions