Re: [PATCH] x86: order functions in cpu/common.c and cpu/common_64.c

From: Yinghai Lu
Date: Thu Sep 04 2008 - 16:38:10 EST


On Thu, Sep 4, 2008 at 1:32 PM, Yinghai Lu <yhlu.kernel@xxxxxxxxx> wrote:
> On Thu, Sep 4, 2008 at 1:07 PM, Yinghai Lu <yhlu.kernel@xxxxxxxxx> wrote:
>> On Thu, Sep 4, 2008 at 1:04 PM, Ingo Molnar <mingo@xxxxxxx> wrote:
>>>
>>> * Ingo Molnar <mingo@xxxxxxx> wrote:
>>>
>>>> > i've pushed out the broken tree into tip/tmp.master.broken (havent
>>>> > updated tip/master with the breakage). I've removed the broken
>>>> > printk in kernel/resource.c that Andrew found, see commit
>>>> > 06e44f6af324 - so that's not the cause.
>>>>
>>>> i've double checked that 06e44f6af324 is applied. I'll bisect this.
>>>
>>> bisection came up with:
>>>
>>> # good: [8bfd9710] Merge branch 'x86/xsave'
>>> # bad: [06e44f6a] IO resources: fix/remove printk
>>> # good: [282a5f84] Merge branch 'irq/sparseirq'
>>> # bad: [a0854a46] x86: make 32bit support show_msr like 64 bit
>>> # good: [5031088d] x86: delay early cpu initialization until cpuid is
>>> # good: [9d31d35b] x86: order functions in cpu/common.c and cpu/commo
>>> # bad: [10a434fc] x86: remove cpu_vendor_dev
>>>
>>> | 10a434fcb23a57c385177a0086955fae01003f64 is first bad commit
>>> | commit 10a434fcb23a57c385177a0086955fae01003f64
>>> | Author: Yinghai Lu <yhlu.kernel@xxxxxxxxx>
>>> | Date: Thu Sep 4 21:09:45 2008 +0200
>>> |
>>> | x86: remove cpu_vendor_dev
>>>
>>> and the thing is, 10a434fc is way too big:
>>>
>>> | 15 files changed, 106 insertions(+), 106 deletions(-)
>>>
>>> and it's not obvious at first (neither at second) sight what the problem
>>> is. You really need to start doing much smaller patches for such
>>> critical/hard-to-debug code areas.
>>>
>> could be alignment again...
>
> ffffffff80d86c20 d __cpu_dev_amd_cpu_dev
> ffffffff80d86c20 A __x86_cpu_dev_start
> ffffffff80d86c28 d __dyn_array_ptr_irq_2_pin_head
> ffffffff80d86c28 D __dyn_array_start
> ffffffff80d86c30 d __dyn_array_ptr_irq_cfgx
> ffffffff80d86c38 d __dyn_array_ptr_sparse_irqs
> ffffffff80d86c40 D __dyn_array_end
> ffffffff80d86c40 d __initcall_selinux_init
> ffffffff80d86c40 D __per_cpu_dyn_array_end
> ffffffff80d86c40 D __per_cpu_dyn_array_start
> ffffffff80d86c40 D __security_initcall_start
> ffffffff80d86c48 R __parainstructions
> ffffffff80d86c48 D __security_initcall_end
> ffffffff80d86c48 A __x86_cpu_dev_end
>
> don't know how could the linker squash others tables into cpu_dev
> pointer array..

it seems there is some merging problem.. please check

index 192f6d8..30973db 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -172,11 +172,11 @@ SECTIONS
.x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
*(.x86_cpu_dev.init)
}
+ __x86_cpu_dev_end = .;

DYN_ARRAY_INIT(8)

SECURITY_INIT
- __x86_cpu_dev_end = .;

. = ALIGN(8);
.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/