lkml.org 
[lkml]   [2008]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] x86_64: make amd quad core 8 socket system not be clustered_box v2

    quad core 8 socket system will have apic id lifting.the apic id range could
    be [4, 0x23]. and apic_is_clustered_box will think that need to three clusters
    and that is large than 2. So it is treated as clustered_box.

    and will get

    Marking TSC unstable due to TSCs unsynchronized

    even the CPUs have X86_FEATURE_CONSTANT_TSC set.

    this patch will check if the cpu is from AMD.

    Signed-off-by: Yinghai Lu <yinghai.lu@sun.com>

    diff --git a/arch/x86/kernel/apic_64.c b/arch/x86/kernel/apic_64.c
    index d8d03e0..7d8ffda 100644
    --- a/arch/x86/kernel/apic_64.c
    +++ b/arch/x86/kernel/apic_64.c
    @@ -1180,9 +1180,19 @@ __cpuinit int apic_is_clustered_box(void)
    {
    int i, clusters, zeros;
    unsigned id;
    - u16 *bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr;
    + u16 *bios_cpu_apicid;
    DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS);

    + /*
    + * there is not this kind of box with AMD CPU yet.
    + * Some AMD box with quadcore cpu and 8 sockets apicid
    + * will be [4, 0x23] or [8, 0x27] could be thought to
    + * have three apic_clusters. So go out early.
    + */
    + if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD)
    + return 0;
    +
    + bios_cpu_apicid = x86_bios_cpu_apicid_early_ptr;
    bitmap_zero(clustermap, NUM_APIC_CLUSTERS);

    for (i = 0; i < NR_CPUS; i++) {

    \
     
     \ /
      Last update: 2008-02-24 06:55    [W:0.020 / U:207.596 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site