Files
kernel_xiaomi_sm8250/include/linux
Eric Dumazet 720eba31f4 modules: Use a better scheme for refcounting
Current refcounting for modules (done if CONFIG_MODULE_UNLOAD=y) is
using a lot of memory.

Each 'struct module' contains an [NR_CPUS] array of full cache lines.

This patch uses existing infrastructure (percpu_modalloc() &
percpu_modfree()) to allocate percpu space for the refcount storage.

Instead of wasting NR_CPUS*128 bytes (on i386), we now use
nr_cpu_ids*sizeof(local_t) bytes.

On a typical distro, where NR_CPUS=8, shiping 2000 modules, we reduce
size of module files by about 2 Mbytes. (1Kb per module)

Instead of having all refcounters in the same memory node - with TLB misses
because of vmalloc() - this new implementation permits to have better
NUMA properties, since each  CPU will use storage on its preferred node,
thanks to percpu storage.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-02-02 19:17:55 -08:00
..
2009-01-30 19:50:25 +05:30
2009-01-30 19:59:53 +05:30
2009-01-11 01:34:25 +01:00
2009-01-09 12:37:15 -08:00
2009-01-30 23:30:42 +05:30
2009-01-30 23:32:45 +05:30
2009-01-30 23:33:12 +05:30
2009-01-30 23:37:37 +05:30
2009-01-30 23:38:03 +05:30
2009-01-30 23:38:37 +05:30
2009-01-30 23:39:42 +05:30
2009-01-30 23:40:06 +05:30
2009-01-06 15:59:29 -08:00
2009-01-30 23:44:08 +05:30
2009-01-28 07:50:14 -08:00
2009-01-30 23:46:03 +05:30
2009-01-30 23:46:40 +05:30
2009-01-30 23:48:33 +05:30
2009-01-30 23:49:07 +05:30
2009-01-30 23:50:37 +05:30
2009-01-30 23:51:17 +05:30
2009-01-26 21:19:52 +01:00
2009-01-30 23:51:41 +05:30
2009-01-30 23:52:16 +05:30
2009-01-30 23:53:12 +05:30
2009-01-30 23:53:40 +05:30
2009-01-30 23:54:53 +05:30
2009-01-30 23:55:45 +05:30
2009-01-30 23:56:13 +05:30
2009-01-30 23:56:48 +05:30
2009-01-30 23:57:16 +05:30
2009-01-30 23:58:41 +05:30
2009-01-30 23:59:44 +05:30
2009-01-31 00:00:06 +05:30
2009-01-15 16:39:37 -08:00
2009-01-31 00:00:35 +05:30
2009-01-14 07:32:44 -08:00
2009-01-08 08:31:07 -08:00
2009-01-31 00:01:11 +05:30
2009-01-07 17:38:31 -05:00
2009-01-31 00:15:24 +05:30
2009-01-08 08:31:05 -08:00
2009-01-31 00:02:54 +05:30
2009-01-08 08:31:12 -08:00
2009-01-31 00:03:40 +05:30
2009-01-31 00:05:30 +05:30
2009-01-16 18:02:10 +01:00
2009-01-31 00:05:59 +05:30
2009-01-31 00:06:33 +05:30
2009-01-31 00:07:00 +05:30
2009-01-08 08:31:10 -08:00
2009-01-31 00:07:31 +05:30
2009-01-29 18:04:44 -08:00
2009-01-31 00:10:59 +05:30