<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/kernel/vmlinux_32.lds.S, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-09-05T07:24:30Z</updated>
<entry>
<title>Merge commit '63cc8c75156462d4b42cbdd76c293b7eee7ddbfe':</title>
<updated>2008-09-05T07:24:30Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2008-09-05T07:24:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3d0ba7b8fb8f57c33207adcb41f40c176148c03'/>
<id>urn:sha1:d3d0ba7b8fb8f57c33207adcb41f40c176148c03</id>
<content type='text'>
  "percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro"

into x86/core

Conflicts:
	arch/x86/kernel/cpu/common.c

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>x86: remove cpu_vendor_dev</title>
<updated>2008-09-04T19:09:45Z</updated>
<author>
<name>Yinghai Lu</name>
</author>
<published>2008-09-04T19:09:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=10a434fcb23a57c385177a0086955fae01003f64'/>
<id>urn:sha1:10a434fcb23a57c385177a0086955fae01003f64</id>
<content type='text'>
1. add c_x86_vendor into cpu_dev
2. change cpu_devs to static
3. check c_x86_vendor before put that cpu_dev into array
4. remove alignment for 64bit
5. order the sequence in cpu_devs according to link sequence...
   so could put intel at first, then amd...

Signed-off-by: Yinghai Lu &lt;yhlu.kernel@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>kexec jump: check code size in control page</title>
<updated>2008-08-15T15:35:42Z</updated>
<author>
<name>Huang Ying</name>
</author>
<published>2008-08-15T07:40:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fb45daa69d287b394eca1619b3fadff7c0215c71'/>
<id>urn:sha1:fb45daa69d287b394eca1619b3fadff7c0215c71</id>
<content type='text'>
Kexec/Kexec-jump require code size in control page is less than
PAGE_SIZE/2.  This patch add link-time checking for this.

ASSERT() of ld link script is used as the link-time checking mechanism.

[akpm@linux-foundation.org: build fix]
Signed-off-by: Huang Ying &lt;ying.huang@intel.com&gt;
Cc: Pavel Machek &lt;pavel@ucw.cz&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Acked-by: Vivek Goyal &lt;vgoyal@redhat.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'core/rodata' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2008-07-14T22:28:10Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2008-07-14T22:28:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d18bb9a548e550f3ced57618e75085fb3f173133'/>
<id>urn:sha1:d18bb9a548e550f3ced57618e75085fb3f173133</id>
<content type='text'>
* 'core/rodata' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  move BUG_TABLE into RODATA
</content>
</entry>
<entry>
<title>x86: move tracedata to RODATA</title>
<updated>2008-05-25T05:09:47Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2008-05-12T13:44:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63687a528c39a67c1a213cdffa09feb0e6af9dbe'/>
<id>urn:sha1:63687a528c39a67c1a213cdffa09feb0e6af9dbe</id>
<content type='text'>
.. allowing it to be write-protected just as other read-only data
under CONFIG_DEBUG_RODATA.

Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>move BUG_TABLE into RODATA</title>
<updated>2008-05-25T05:06:08Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2008-05-12T13:44:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6360b1fbb4a939efd34fc770c2ebd927c55506e0'/>
<id>urn:sha1:6360b1fbb4a939efd34fc770c2ebd927c55506e0</id>
<content type='text'>
Signed-off-by: Jan Beulich &lt;jbeulich@novell.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>percpu: introduce DEFINE_PER_CPU_PAGE_ALIGNED() macro</title>
<updated>2008-05-25T05:03:46Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2008-05-12T13:44:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=63cc8c75156462d4b42cbdd76c293b7eee7ddbfe'/>
<id>urn:sha1:63cc8c75156462d4b42cbdd76c293b7eee7ddbfe</id>
<content type='text'>
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

&lt;Big Hole of about 4000 bytes&gt;

c05f6000 d per_cpu__cpuid4_info
c05f6004 d per_cpu__cache_kobject
c05f6008 d per_cpu__index_kobject

&lt;Big Hole of about 4000 bytes&gt;

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 &lt;dada1@cosmosbay.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>x86: use ELF section to list CPU vendor specific code</title>
<updated>2008-04-17T15:40:47Z</updated>
<author>
<name>Thomas Petazzoni</name>
</author>
<published>2008-02-15T11:00:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=03ae5768b6110ebaa97dc3e7abf1c3d8bec5f874'/>
<id>urn:sha1:03ae5768b6110ebaa97dc3e7abf1c3d8bec5f874</id>
<content type='text'>
Replace the hardcoded list of initialization functions for each CPU
vendor by a list in an ELF section, which is read at initialization in
arch/x86/kernel/cpu/cpu.c to fill the cpu_devs[] array. The ELF
section, named .x86cpuvendor.init, is reclaimed after boot, and
contains entries of type "struct cpu_vendor_dev" which associates a
vendor number with a pointer to a "struct cpu_dev" structure.

This first modification allows to remove all the VENDOR_init_cpu()
functions.

This patch also removes the hardcoded calls to early_init_amd() and
early_init_intel(). Instead, we add a "c_early_init" member to the
cpu_dev structure, which is then called if not NULL by the generic CPU
initialization code. Unfortunately, in early_cpu_detect(), this_cpu is
not yet set, so we have to use the cpu_devs[] array directly.

This patch is part of the Linux Tiny project, and is needed for
further patch that will allow to disable compilation of unused CPU
support code.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>x86: lds - Use PAGE_SIZE instead of numeric constant</title>
<updated>2008-02-19T15:18:33Z</updated>
<author>
<name>Cyrill Gorcunov</name>
</author>
<published>2008-02-17T15:17:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3cdac41f2090ad9013dfefab7399b1debfb9275a'/>
<id>urn:sha1:3cdac41f2090ad9013dfefab7399b1debfb9275a</id>
<content type='text'>
It's much better to use PAGE_SIZE then magic 4096
(though it's almost synonym in most cases on x86 but
not for *all* cases ;)

Signed-off-by: Cyrill Gorcunov &lt;gorcunov@gmail.com&gt;
Acked-by: Sam Ravnborg &lt;sam@ravnborg.org&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
<entry>
<title>x86: make arch/x86/kernel/acpi/wakeup_32.S use a separate</title>
<updated>2008-01-30T12:32:50Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2008-01-30T12:32:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c4915627f94a81a834a7a65dee83acdfb45788c'/>
<id>urn:sha1:4c4915627f94a81a834a7a65dee83acdfb45788c</id>
<content type='text'>
While examining vmlinux namelist on i386 (nm -v vmlinux) I noticed :

c01021d0 t es7000_rename_gsi
c010221a T es7000_start_cpu
&lt;Big Hole&gt;
c0103000 T thread_saved_pc

and

c0113218 T acpi_restore_state_mem
c0113219 T acpi_save_state_mem
&lt;Big Hole&gt;
c0114000 t wakeup_code

This is because arch/x86/kernel/acpi/wakeup_32.S forces a .text alignment
of 4096 bytes. (I have no idea if it is really needed, since
arch/x86/kernel/acpi/wakeup_64.S uses a 16 bytes alignment *only*)

So arch/x86/kernel/built-in.o also has this alignment

arch/x86/kernel/built-in.o:     file format elf32-i386

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00018c94  00000000  00000000  00001000  2**12
                  CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE

But as arch/x86/kernel/acpi/wakeup_32.o is not the first object linked
into arch/x86/kernel/built-in.o, linker had to build several holes to meet
alignement requirements, because of .o nestings in the kbuild process.

This can be solved by using a special section, .text.page_aligned, so that
no holes are needed.

# size vmlinux.before vmlinux.after
   text    data     bss     dec     hex filename
4619942  422838  458752 5501532  53f25c vmlinux.before
4610534  422838  458752 5492124  53cd9c vmlinux.after

This saves 9408 bytes

Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
</content>
</entry>
</feed>
