Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into per cpu area

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: H. Peter Anvin <hpa@...>
Cc: Eric W. Biederman <ebiederm@...>, Jeremy Fitzhardinge <jeremy@...>, Christoph Lameter <clameter@...>, Linux Kernel Mailing List <linux-kernel@...>
Date: Monday, June 30, 2008 - 1:57 pm

H. Peter Anvin wrote:


After the code was loaded (the compressed code, it seems that my GRUB
doesn't support uncompressed loading), the above section contained
zeroes.  I snapped it fairly early, around secondary_startup_64, and
then printed it in x86_64_start_kernel.

The object file had the correct data (as displayed by objdump) so I'm
assuming that the bootloading process didn't load the section correctly.

Below was the linker script I used:

--- linux-2.6.tip.orig/include/asm-generic/vmlinux.lds.h
+++ linux-2.6.tip/include/asm-generic/vmlinux.lds.h
@@ -373,9 +373,13 @@

 #ifdef CONFIG_HAVE_ZERO_BASED_PER_CPU
 #define PERCPU(align)                                                  \
-       . = ALIGN(align);                                               \
+       .data.percpu.abs = .;                                           \
        percpu : { } :percpu                                            \
-       __per_cpu_load = .;                                             \
+       .data.percpu.rel : AT(.data.percpu.abs - LOAD_OFFSET) {         \
+               BYTE(0)                                                 \
+               . = ALIGN(align);                                       \
+               __per_cpu_load = .;                                     \
+       }                                                               \
        .data.percpu 0 : AT(__per_cpu_load - LOAD_OFFSET) {             \
                *(.data.percpu.first)                                   \
                *(.data.percpu.shared_aligned)                          \
@@ -383,8 +387,8 @@
                *(.data.percpu.page_aligned)                            \
                ____per_cpu_size = .;                                   \
        }                                                               \
-       . = __per_cpu_load + ____per_cpu_size;                          \
-       data : { } :data
+       . = __per_cpu_load + ____per_cpu_size;
+
 #else
 #define PERCPU(align)                                                  \
        . = ALIGN(align);                                               \

It showed all the correct address in the map and __per_cpu_load was a
relative symbol (which was the objective.)

Btw, our simulator, which only loads uncompressed code, had the data correct,
so it *may* only be a result of the code being compressed.

Thanks,
Mike
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Fri Jun 20, 1:25 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Christoph Lameter, (Fri Jun 20, 1:48 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Fri Jun 20, 2:37 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Eric W. Biederman, (Fri Jun 20, 4:25 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Mon Jun 30, 1:43 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Mike Travis, (Mon Jun 30, 1:57 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Eric W. Biederman, (Mon Jun 30, 4:50 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Mon Jun 30, 5:08 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Tue Jul 1, 1:26 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Tue Jul 1, 5:10 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Eric W. Biederman, (Tue Jul 1, 11:08 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Tue Jul 1, 5:52 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Eric W. Biederman, (Thu Jul 3, 12:34 am)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Tue Jul 8, 7:49 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Fri Jul 25, 4:12 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Fri Jul 25, 4:43 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Eric W. Biederman, (Tue Jul 1, 10:50 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Tue Jul 1, 12:27 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Mon Jun 23, 1:33 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Mon Jun 23, 3:41 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Christoph Lameter, (Fri Jun 20, 4:55 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Christoph Lameter, (Fri Jun 20, 2:51 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Fri Jun 20, 3:04 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Eric W. Biederman, (Fri Jun 20, 3:43 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Christoph Lameter, (Fri Jun 20, 4:37 pm)
Re: [crash, bisected] Re: [PATCH 3/4] x86_64: Fold pda into ..., Jeremy Fitzhardinge, (Fri Jun 20, 2:40 pm)