Eric Dumazet
63cc8c7515
percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro
...
While examining holes in percpu section I found this :
c05f5000 D per_cpu__current_task
c05f5000 D __per_cpu_start
c05f5004 D per_cpu__cpu_number
c05f5008 D per_cpu__irq_regs
c05f500c d per_cpu__cpu_devices
c05f5040 D per_cpu__cyc2ns
<Big Hole of about 4000 bytes>
c05f6000 d per_cpu__cpuid4_info
c05f6004 d per_cpu__cache_kobject
c05f6008 d per_cpu__index_kobject
<Big Hole of about 4000 bytes>
c05f7000 D per_cpu__gdt_page
This is because gdt_page is a percpu variable, defined with
a page alignement, and linker is doing its job, two times because of .o
nesting in the build process.
I introduced a new macro DEFINE_PER_CPU_PAGE_ALIGNED() to avoid
wasting this space. All page aligned variables (only one at this time)
are put in a separate
subsection .data.percpu.page_aligned, at the very begining of percpu zone.
Before patch , on a x86_32 machine :
.data.percpu 30232 3227471872
.data.percpu 22168 3227471872
Thats 8064 bytes saved for each CPU.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
2008-05-25 07:03:46 +02:00
..
2008-04-30 08:29:54 -07:00
2008-05-18 20:49:41 +02:00
2008-05-01 18:59:11 +01:00
2008-05-08 01:15:21 -07:00
2008-05-21 14:08:38 -07:00
2008-05-21 14:08:38 -07:00
2008-05-21 14:08:38 -07:00
2008-04-30 08:29:33 -07:00
2008-05-19 07:34:01 -05:00
2008-04-29 08:06:27 -07:00
2008-05-20 14:14:15 -07:00
2008-04-30 08:29:54 -07:00
2008-04-29 08:06:00 -07:00
2008-05-01 13:08:50 -04:00
2008-05-14 23:24:09 -07:00
2008-05-14 23:24:09 -07:00
2008-04-30 08:29:50 -07:00
2008-05-16 17:23:05 -04:00
2008-05-13 08:02:25 -07:00
2008-04-29 08:11:16 -07:00
2008-04-29 12:36:54 -07:00
2008-04-29 08:06:01 -07:00
2008-04-30 08:29:54 -07:00
2008-04-29 08:06:09 -07:00
2008-04-29 08:06:10 -07:00
2008-05-01 08:03:59 -07:00
2008-04-30 08:29:54 -07:00
2008-05-01 08:03:59 -07:00
2008-04-30 08:42:49 -07:00
2008-05-10 19:51:16 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-04-29 08:06:06 -07:00
2008-04-30 08:29:52 -07:00
2008-05-13 08:02:25 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:53 -07:00
2008-04-29 08:06:09 -07:00
2008-04-30 08:29:54 -07:00
2008-05-20 13:31:53 -07:00
2008-04-30 08:29:48 -07:00
2008-04-29 08:06:11 -07:00
2008-04-29 08:06:11 -07:00
2008-04-29 08:06:26 -07:00
2008-04-29 08:06:16 -07:00
2008-04-30 08:29:54 -07:00
2008-05-07 09:48:23 +02:00
2008-05-16 17:22:26 -04:00
2008-05-01 13:08:16 -04:00
2008-05-07 09:29:00 +02:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-05-13 08:02:26 -07:00
2008-04-30 08:29:45 -07:00
2008-05-14 10:37:57 -07:00
2008-05-10 20:58:02 -07:00
2008-05-20 16:44:43 +02:00
2008-05-20 16:44:43 +02:00
2008-05-03 18:11:48 +02:00
2008-04-30 08:29:54 -07:00
2008-05-18 20:49:41 +02:00
2008-04-30 08:29:54 -07:00
2008-05-14 23:06:16 +02:00
2008-04-29 08:06:25 -07:00
2008-04-30 20:34:26 -04:00
2008-05-02 16:53:33 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-05-16 17:22:20 -04:00
2008-04-29 08:06:03 -07:00
2007-04-29 23:42:45 -04:00
2008-04-29 08:06:02 -07:00
2008-05-05 16:47:14 +10:00
2008-05-07 09:51:23 +02:00
2008-04-29 08:06:13 -07:00
2008-04-29 08:06:15 -07:00
2008-04-29 08:06:15 -07:00
2008-05-02 13:40:34 +02:00
2008-04-30 08:29:54 -07:00
2008-05-01 08:03:58 -07:00
2008-05-15 17:50:37 -07:00
2008-05-20 17:23:03 -07:00
2008-04-29 08:06:29 -07:00
2008-05-14 19:11:14 -07:00
2008-04-29 08:06:17 -07:00
2008-04-29 08:06:16 -07:00
2008-04-30 08:29:54 -07:00
2008-05-05 07:13:21 -05:00
2008-04-30 16:52:58 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-05-19 17:51:48 -04:00
2008-04-30 08:29:54 -07:00
2008-05-01 08:03:58 -07:00
2008-04-29 08:06:01 -07:00
2008-04-29 08:06:10 -07:00
2008-04-29 08:06:12 -07:00
2008-05-13 08:02:25 -07:00
2008-04-29 08:06:17 -07:00
2008-04-30 08:29:54 -07:00
2008-05-01 21:14:59 +10:00
2005-04-16 15:20:36 -07:00
2008-04-30 08:29:54 -07:00
2008-04-29 08:06:12 -07:00
2008-04-29 09:11:12 -07:00
2008-04-29 08:06:24 -07:00
2008-04-30 08:29:54 -07:00
2008-05-20 14:54:50 -07:00
2008-05-21 14:08:38 -07:00
2008-04-29 08:06:13 -07:00
2008-04-30 08:29:54 -07:00
2008-05-09 20:22:58 +10:00
2008-05-14 19:23:25 -05:00
2008-05-01 08:04:01 -07:00
2008-04-29 15:34:05 -07:00
2008-05-03 03:39:55 +04:00
2008-05-25 07:03:46 +02:00
2008-04-29 08:06:02 -07:00
2008-04-29 08:06:02 -07:00
2008-05-06 12:01:41 -04:00
2008-04-30 08:29:49 -07:00
2008-04-30 08:29:49 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 11:52:52 -07:00
2008-04-30 08:29:53 -07:00
2008-05-01 13:07:28 -04:00
2008-04-29 08:06:20 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:50 -07:00
2008-04-30 08:29:38 -07:00
2008-05-01 08:04:01 -07:00
2008-04-30 08:29:54 -07:00
2008-05-10 19:51:16 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:51 -07:00
2008-04-29 08:06:10 -07:00
2008-04-30 08:29:54 -07:00
2008-05-03 10:01:33 -07:00
2008-04-30 08:29:54 -07:00
2008-05-12 13:34:13 -07:00
2008-04-29 08:06:16 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:30 -07:00
2008-04-30 08:29:34 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:54 -07:00
2008-04-29 08:06:05 -07:00
2008-05-01 08:03:59 -07:00
2008-04-30 08:29:54 -07:00
2008-04-29 08:06:06 -07:00
2008-04-29 08:06:23 -07:00
2008-05-04 17:07:03 -07:00
2008-04-29 08:06:27 -07:00
2008-05-21 17:40:05 -07:00
2008-04-30 08:29:54 -07:00
2008-04-30 08:29:37 -07:00
2008-04-30 08:29:53 -07:00
2008-05-01 08:03:59 -07:00
2008-04-30 08:29:47 -07:00
2008-04-30 08:29:47 -07:00
2008-05-09 07:45:18 -07:00
2008-05-02 21:50:51 +10:00
2008-05-02 21:50:50 +10:00
2008-05-02 21:50:47 +10:00
2008-05-02 21:50:50 +10:00
2008-05-01 17:38:35 -04:00
2008-04-30 08:29:49 -07:00
2008-04-29 08:06:06 -07:00