Messages in this thread | | | Date | Thu, 29 May 2008 21:08:35 -0700 | From | Max Krasnyansky <> | Subject | Re: [PATCH] sched: Move cpu masks from kernel/sched.c into kernel/cpu.c |
| |
Paul Jackson wrote: > Max wrote: >> kernel/cpu.c is now built for the UP kernel too, but it does not >> affect the size the kernel sections. > > I don't think this is possible. It must affect the size. > > The patch moves kernel/cpu.o from being included only if CONFIG_SMP, > to being included always: > > obj-y = sched.o fork.o exec_domain.o panic.o printk.o profile.o \ > - exit.o itimer.o time.o softirq.o resource.o \ > + cpu.o exit.o itimer.o time.o softirq.o resource.o \ > sysctl.o capability.o ptrace.o timer.o user.o \ > signal.o sys.o kmod.o workqueue.o pid.o \ > rcupdate.o extable.o params.o posix-timers.o \ > @@ -27,7 +27,7 @@ obj-$(CONFIG_RT_MUTEXES) += rtmutex.o > obj-$(CONFIG_DEBUG_RT_MUTEXES) += rtmutex-debug.o > obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o > obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o > -obj-$(CONFIG_SMP) += cpu.o spinlock.o > +obj-$(CONFIG_SMP) += spinlock.o > > The kernel/cpu.o object file is non-empty; it has size, > perhaps 1 or 2 kbytes of text, and a little bit of data. > > So adding it to builds which disabled SMP must add to the > size of the resultant kernel, by my thinking anyway.
All the code is ifdefed under CONFIG_SMP. So there is no code in the !SMP case, just three masks. When you mentioned it first time I went back and rebuilt the !SMP kernel with and without the patch. Luckily I have a ridiculously fast 8way box here so I went ahead and verified it again.
Before: size vmlinux text data bss dec hex filename 3305622 306420 310352 3922393 3bd9d9 vmlinux
size kernel/cpu.o size: 'kernel/cpu.o': No such file
After: size vmlinux text data bss dec hex filename 3305621 306420 310352 3922393 3bd9d9 vmlinux
size kernel/cpu.o text data bss dec hex filename 96 24 0 120 78 kernel/cpu.o
Max
| |