<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/include/asm-powerpc/elf.h, branch v2.6.22</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>[POWERPC] Move ELF_ET_DYN_BASE up to 512MB point</title>
<updated>2007-01-24T10:13:56+00:00</updated>
<author>
<name>Anton Blanchard</name>
<email>anton@samba.org</email>
</author>
<published>2006-12-20T04:58:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7e60d1b427c51cf2525e5d736a71780978cfb828'/>
<id>7e60d1b427c51cf2525e5d736a71780978cfb828</id>
<content type='text'>
I often test new versions of glibc by doing:

LD_LIBRARY_PATH=/XXX/lib /XXX/lib/ld.so.1 &lt;binary&gt;

One test case ended up SEGV'ing. Upon closer inspection ld.so was loaded
at 0x8000000 (128MB) with the heap right after it. Since we normally
link binaries at 0x10000000 (256MB) we only had about 128MB of space for
the heap:

00100000-00103000 r-xp 00100000 00:00 0           [vdso]
08000000-0801e000 r-xp 00000000 00:01 33079       /lib/ld-2.5.so
0802d000-0802f000 rwxp 0001d000 00:01 33079       /lib/ld-2.5.so
0802f000-08050000 rwxp 0802f000 00:00 0           [heap]
0fe91000-0ffd9000 r-xp 00000000 00:01 33082       /lib/libc-2.5.so
0ffd9000-0ffe8000 ---p 00148000 00:01 33082       /lib/libc-2.5.so
0ffe8000-0ffea000 r--p 00147000 00:01 33082       /lib/libc-2.5.so
0ffea000-0ffed000 rwxp 00149000 00:01 33082       /lib/libc-2.5.so
10000000-10004000 r-xp 00000000 00:01 76          /bin/sleep
10013000-10014000 rwxp 00003000 00:01 76          /bin/sleep
ffb41000-ffb56000 rw-p ffb41000 00:00 0           [stack]

One way to fix this is move ELF_ET_DYN_BASE from 0x08000000 to 0x20000000.
This allows 128MB for the binary (hopefully enough for even the most
crazy c++ apps), and with our current layout we will grow the heap up
and the stack down, allowing potentially gigabytes of heap:

00100000-00103000 r-xp 00100000 00:00 0           [vdso]
0fe8a000-0ffd3000 r-xp 00000000 00:01 3350        /lib/tls/libc-2.3.6.so
0ffd3000-0ffe3000 ---p 00149000 00:01 3350        /lib/tls/libc-2.3.6.so
0ffe3000-0ffea000 r--p 00149000 00:01 3350        /lib/tls/libc-2.3.6.so
0ffea000-0ffee000 rwxp 00150000 00:01 3350        /lib/tls/libc-2.3.6.so
10000000-10004000 r-xp 00000000 00:01 76          /bin/sleep
10013000-10014000 rwxp 00003000 00:01 76          /bin/sleep
20000000-20018000 r-xp 00000000 00:01 3478        /lib/ld-2.3.6.so
20028000-20029000 r--p 00018000 00:01 3478        /lib/ld-2.3.6.so
20029000-2002a000 rwxp 00019000 00:01 3478        /lib/ld-2.3.6.so
2002a000-2004b000 rwxp 2002a000 00:00 0           [heap]
ffd67000-ffd7c000 rw-p ffd67000 00:00 0           [stack]

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I often test new versions of glibc by doing:

LD_LIBRARY_PATH=/XXX/lib /XXX/lib/ld.so.1 &lt;binary&gt;

One test case ended up SEGV'ing. Upon closer inspection ld.so was loaded
at 0x8000000 (128MB) with the heap right after it. Since we normally
link binaries at 0x10000000 (256MB) we only had about 128MB of space for
the heap:

00100000-00103000 r-xp 00100000 00:00 0           [vdso]
08000000-0801e000 r-xp 00000000 00:01 33079       /lib/ld-2.5.so
0802d000-0802f000 rwxp 0001d000 00:01 33079       /lib/ld-2.5.so
0802f000-08050000 rwxp 0802f000 00:00 0           [heap]
0fe91000-0ffd9000 r-xp 00000000 00:01 33082       /lib/libc-2.5.so
0ffd9000-0ffe8000 ---p 00148000 00:01 33082       /lib/libc-2.5.so
0ffe8000-0ffea000 r--p 00147000 00:01 33082       /lib/libc-2.5.so
0ffea000-0ffed000 rwxp 00149000 00:01 33082       /lib/libc-2.5.so
10000000-10004000 r-xp 00000000 00:01 76          /bin/sleep
10013000-10014000 rwxp 00003000 00:01 76          /bin/sleep
ffb41000-ffb56000 rw-p ffb41000 00:00 0           [stack]

One way to fix this is move ELF_ET_DYN_BASE from 0x08000000 to 0x20000000.
This allows 128MB for the binary (hopefully enough for even the most
crazy c++ apps), and with our current layout we will grow the heap up
and the stack down, allowing potentially gigabytes of heap:

00100000-00103000 r-xp 00100000 00:00 0           [vdso]
0fe8a000-0ffd3000 r-xp 00000000 00:01 3350        /lib/tls/libc-2.3.6.so
0ffd3000-0ffe3000 ---p 00149000 00:01 3350        /lib/tls/libc-2.3.6.so
0ffe3000-0ffea000 r--p 00149000 00:01 3350        /lib/tls/libc-2.3.6.so
0ffea000-0ffee000 rwxp 00150000 00:01 3350        /lib/tls/libc-2.3.6.so
10000000-10004000 r-xp 00000000 00:01 76          /bin/sleep
10013000-10014000 rwxp 00003000 00:01 76          /bin/sleep
20000000-20018000 r-xp 00000000 00:01 3478        /lib/ld-2.3.6.so
20028000-20029000 r--p 00018000 00:01 3478        /lib/ld-2.3.6.so
20029000-2002a000 rwxp 00019000 00:01 3478        /lib/ld-2.3.6.so
2002a000-2004b000 rwxp 2002a000 00:00 0           [heap]
ffd67000-ffd7c000 rw-p ffd67000 00:00 0           [stack]

Signed-off-by: Anton Blanchard &lt;anton@samba.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] elf: Always define elf_addr_t in linux/elf.h</title>
<updated>2006-12-07T16:39:38+00:00</updated>
<author>
<name>Magnus Damm</name>
<email>magnus@valinux.co.jp</email>
</author>
<published>2006-12-07T04:37:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=386d9a7edd9f3492c99124b0a659e9ed7abb30f9'/>
<id>386d9a7edd9f3492c99124b0a659e9ed7abb30f9</id>
<content type='text'>
Define elf_addr_t in linux/elf.h.  The size of the type is determined using
ELF_CLASS.  This allows us to remove the defines that today are spread all
over .c and .h files.

Signed-off-by: Magnus Damm &lt;magnus@valinux.co.jp&gt;
Cc: Daniel Jacobowitz &lt;drow@false.org&gt;
Cc: Roland McGrath &lt;roland@redhat.com&gt;
Cc: Jakub Jelinek &lt;jakub@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Define elf_addr_t in linux/elf.h.  The size of the type is determined using
ELF_CLASS.  This allows us to remove the defines that today are spread all
over .c and .h files.

Signed-off-by: Magnus Damm &lt;magnus@valinux.co.jp&gt;
Cc: Daniel Jacobowitz &lt;drow@false.org&gt;
Cc: Roland McGrath &lt;roland@redhat.com&gt;
Cc: Jakub Jelinek &lt;jakub@redhat.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[POWERPC] cell: fix building without spufs</title>
<updated>2006-12-04T09:41:12+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2006-11-27T18:18:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e055595d3e5f5233374211bc6893e5d16976df99'/>
<id>e055595d3e5f5233374211bc6893e5d16976df99</id>
<content type='text'>
It may be desireable to build a kernel for cell without
spufs, e.g. as the initial kboot kernel. This requires
that the SPU specific parts of the core dump and the xmon
code depend on CONFIG_SPU_BASE instead of CONFIG_PPC_CELL.

Signed-off-by: Arnd Bergmann &lt;arnd.bergmann@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It may be desireable to build a kernel for cell without
spufs, e.g. as the initial kboot kernel. This requires
that the SPU specific parts of the core dump and the xmon
code depend on CONFIG_SPU_BASE instead of CONFIG_PPC_CELL.

Signed-off-by: Arnd Bergmann &lt;arnd.bergmann@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[POWERPC] coredump: Add SPU elf notes to coredump.</title>
<updated>2006-12-04T09:40:19+00:00</updated>
<author>
<name>Dwayne Grant McConnell</name>
<email>decimal@us.ibm.com</email>
</author>
<published>2006-11-22T23:46:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bf1ab978be2318c5a564de9aa0f1a217b44170d4'/>
<id>bf1ab978be2318c5a564de9aa0f1a217b44170d4</id>
<content type='text'>
This patch adds SPU elf notes to the coredump. It creates a separate note
for each of /regs, /fpcr, /lslr, /decr, /decr_status, /mem, /signal1,
/signal1_type, /signal2, /signal2_type, /event_mask, /event_status,
/mbox_info, /ibox_info, /wbox_info, /dma_info, /proxydma_info, /object-id.

A new macro, ARCH_HAVE_EXTRA_NOTES, was created for architectures to
specify they have extra elf core notes.

A new macro, ELF_CORE_EXTRA_NOTES_SIZE, was created so the size of the
additional notes could be calculated and added to the notes phdr entry.

A new macro, ELF_CORE_WRITE_EXTRA_NOTES, was created so the new notes
would be written after the existing notes.

The SPU coredump code resides in spufs. Stub functions are provided in the
kernel which are hooked into the spufs code which does the actual work via
register_arch_coredump_calls().

A new set of __spufs_&lt;file&gt;_read/get() functions was provided to allow the
coredump code to read from the spufs files without having to lock the
SPU context for each file read from.

Cc: &lt;linux-arch@vger.kernel.org&gt;
Signed-off-by: Dwayne Grant McConnell &lt;decimal@us.ibm.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd.bergmann@de.ibm.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds SPU elf notes to the coredump. It creates a separate note
for each of /regs, /fpcr, /lslr, /decr, /decr_status, /mem, /signal1,
/signal1_type, /signal2, /signal2_type, /event_mask, /event_status,
/mbox_info, /ibox_info, /wbox_info, /dma_info, /proxydma_info, /object-id.

A new macro, ARCH_HAVE_EXTRA_NOTES, was created for architectures to
specify they have extra elf core notes.

A new macro, ELF_CORE_EXTRA_NOTES_SIZE, was created so the size of the
additional notes could be calculated and added to the notes phdr entry.

A new macro, ELF_CORE_WRITE_EXTRA_NOTES, was created so the new notes
would be written after the existing notes.

The SPU coredump code resides in spufs. Stub functions are provided in the
kernel which are hooked into the spufs code which does the actual work via
register_arch_coredump_calls().

A new set of __spufs_&lt;file&gt;_read/get() functions was provided to allow the
coredump code to read from the spufs files without having to lock the
SPU context for each file read from.

Cc: &lt;linux-arch@vger.kernel.org&gt;
Signed-off-by: Dwayne Grant McConnell &lt;decimal@us.ibm.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd.bergmann@de.ibm.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc</title>
<updated>2006-06-23T05:11:30+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@g5.osdl.org</email>
</author>
<published>2006-06-23T05:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=45c091bb2d453ce4a8b06cf19872ec7a77fc4799'/>
<id>45c091bb2d453ce4a8b06cf19872ec7a77fc4799</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (139 commits)
  [POWERPC] re-enable OProfile for iSeries, using timer interrupt
  [POWERPC] support ibm,extended-*-frequency properties
  [POWERPC] Extra sanity check in EEH code
  [POWERPC] Dont look for class-code in pci children
  [POWERPC] Fix mdelay badness on shared processor partitions
  [POWERPC] disable floating point exceptions for init
  [POWERPC] Unify ppc syscall tables
  [POWERPC] mpic: add support for serial mode interrupts
  [POWERPC] pseries: Print PCI slot location code on failure
  [POWERPC] spufs: one more fix for 64k pages
  [POWERPC] spufs: fail spu_create with invalid flags
  [POWERPC] spufs: clear class2 interrupt status before wakeup
  [POWERPC] spufs: fix Makefile for "make clean"
  [POWERPC] spufs: remove stop_code from struct spu
  [POWERPC] spufs: fix spu irq affinity setting
  [POWERPC] spufs: further abstract priv1 register access
  [POWERPC] spufs: split the Cell BE support into generic and platform dependant parts
  [POWERPC] spufs: dont try to access SPE channel 1 count
  [POWERPC] spufs: use kzalloc in create_spu
  [POWERPC] spufs: fix initial state of wbox file
  ...

Manually resolved conflicts in:
	drivers/net/phy/Makefile
	include/asm-powerpc/spu.h
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (139 commits)
  [POWERPC] re-enable OProfile for iSeries, using timer interrupt
  [POWERPC] support ibm,extended-*-frequency properties
  [POWERPC] Extra sanity check in EEH code
  [POWERPC] Dont look for class-code in pci children
  [POWERPC] Fix mdelay badness on shared processor partitions
  [POWERPC] disable floating point exceptions for init
  [POWERPC] Unify ppc syscall tables
  [POWERPC] mpic: add support for serial mode interrupts
  [POWERPC] pseries: Print PCI slot location code on failure
  [POWERPC] spufs: one more fix for 64k pages
  [POWERPC] spufs: fail spu_create with invalid flags
  [POWERPC] spufs: clear class2 interrupt status before wakeup
  [POWERPC] spufs: fix Makefile for "make clean"
  [POWERPC] spufs: remove stop_code from struct spu
  [POWERPC] spufs: fix spu irq affinity setting
  [POWERPC] spufs: further abstract priv1 register access
  [POWERPC] spufs: split the Cell BE support into generic and platform dependant parts
  [POWERPC] spufs: dont try to access SPE channel 1 count
  [POWERPC] spufs: use kzalloc in create_spu
  [POWERPC] spufs: fix initial state of wbox file
  ...

Manually resolved conflicts in:
	drivers/net/phy/Makefile
	include/asm-powerpc/spu.h
</pre>
</div>
</content>
</entry>
<entry>
<title>[PATCH] powerpc vdso updates</title>
<updated>2006-06-09T11:20:57+00:00</updated>
<author>
<name>Benjamin Herrenschmidt</name>
<email>benh@kernel.crashing.org</email>
</author>
<published>2006-05-30T03:51:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a5bba930d802009c259e56c8d53086d96f63813b'/>
<id>a5bba930d802009c259e56c8d53086d96f63813b</id>
<content type='text'>
This patch cleans up some locking &amp; error handling in the ppc vdso and
moves the vdso base pointer from the thread struct to the mm context
where it more logically belongs. It brings the powerpc implementation
closer to Ingo's new x86 one and also adds an arch_vma_name() function
allowing to print [vsdo] in /proc/&lt;pid&gt;/maps if Ingo's x86 vdso patch is
also applied.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch cleans up some locking &amp; error handling in the ppc vdso and
moves the vdso base pointer from the thread struct to the mm context
where it more logically belongs. It brings the powerpc implementation
closer to Ingo's new x86 one and also adds an arch_vma_name() function
allowing to print [vsdo] in /proc/&lt;pid&gt;/maps if Ingo's x86 vdso patch is
also applied.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use __u32 for elf_addr_t in &lt;asm-powerpc/elf.h&gt;, not u32. It's user-visible.</title>
<updated>2006-05-04T11:39:12+00:00</updated>
<author>
<name>David Woodhouse</name>
<email>dwmw2@infradead.org</email>
</author>
<published>2006-05-04T11:39:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5ee882f153a49098a12f6b26f153ba12a33d767a'/>
<id>5ee882f153a49098a12f6b26f153ba12a33d767a</id>
<content type='text'>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove user-visible references to PAGE_SIZE in include/asm-powerpc/elf.h</title>
<updated>2006-04-25T12:51:52+00:00</updated>
<author>
<name>David Woodhouse</name>
<email>dwmw2@infradead.org</email>
</author>
<published>2006-04-25T12:51:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=dd02ec3ac25828d0918f5b389defe2238d015fe6'/>
<id>dd02ec3ac25828d0918f5b389defe2238d015fe6</id>
<content type='text'>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: David Woodhouse &lt;dwmw2@infradead.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>powerpc: Provide a suitable AT_PLATFORM value</title>
<updated>2006-01-13T23:11:39+00:00</updated>
<author>
<name>Paul Mackerras</name>
<email>paulus@samba.org</email>
</author>
<published>2006-01-13T23:11:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=80f15dc703b3677d0b025bafd215f1f3664c8978'/>
<id>80f15dc703b3677d0b025bafd215f1f3664c8978</id>
<content type='text'>
The glibc folks want to use AT_PLATFORM to select between possible
alternative versions of shared libraries.  This commit makes the kernel
supply an AT_PLATFORM string that indicates what class of processor
we are running on.  Processors with the same set of user-level
instructions and roughly the same instruction scheduling characteristics
are given the same AT_PLATFORM value; for example, 821, 823 and 860
are all reported as "ppc823", and 7447, 7447A, 7448, 7450, 7451, 7455
are all called "ppc7450".

The intention is that the AT_PLATFORM values match the values that
gcc accepts for the -mcpu= option.  For values which are numeric
(e.g. -mcpu=750), "ppc" has been prepended.

This also adds a PPC_FEATURE_BOOKE bit to the AT_HWCAP value and sets
it for the 440 family and the Freescale 85xx family.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The glibc folks want to use AT_PLATFORM to select between possible
alternative versions of shared libraries.  This commit makes the kernel
supply an AT_PLATFORM string that indicates what class of processor
we are running on.  Processors with the same set of user-level
instructions and roughly the same instruction scheduling characteristics
are given the same AT_PLATFORM value; for example, 821, 823 and 860
are all reported as "ppc823", and 7447, 7447A, 7448, 7450, 7451, 7455
are all called "ppc7450".

The intention is that the AT_PLATFORM values match the values that
gcc accepts for the -mcpu= option.  For values which are numeric
(e.g. -mcpu=750), "ppc" has been prepended.

This also adds a PPC_FEATURE_BOOKE bit to the AT_HWCAP value and sets
it for the 440 family and the Freescale 85xx family.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>asm-powerpc: header included twice</title>
<updated>2006-01-11T01:07:34+00:00</updated>
<author>
<name>Nicolas Kaiser</name>
<email>nikai@nikai.net</email>
</author>
<published>2006-01-11T01:07:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0563572bf47efdc02a059b923d3c1e589783c019'/>
<id>0563572bf47efdc02a059b923d3c1e589783c019</id>
<content type='text'>
Header included twice.

Signed-off-by: Nicolas Kaiser &lt;nikai@nikai.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Header included twice.

Signed-off-by: Nicolas Kaiser &lt;nikai@nikai.net&gt;
Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
