lkml.org 
[lkml]   [2009]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perfcounters/core] perf_counter, x86: remove X86_FEATURE_ARCH_PERFMON flag for AMD cpus
    Commit-ID:  da1a776be1ac7f78bb30ececbec4c1383163b079
    Gitweb: http://git.kernel.org/tip/da1a776be1ac7f78bb30ececbec4c1383163b079
    Author: Robert Richter <robert.richter@amd.com>
    AuthorDate: Wed, 29 Apr 2009 12:46:58 +0200
    Committer: Ingo Molnar <mingo@elte.hu>
    CommitDate: Wed, 29 Apr 2009 14:51:00 +0200

    perf_counter, x86: remove X86_FEATURE_ARCH_PERFMON flag for AMD cpus

    X86_FEATURE_ARCH_PERFMON is an Intel hardware feature that does not
    work on AMD CPUs. The flag is now only used in Intel specific code
    (especially initialization).

    [ Impact: refactor code ]

    Signed-off-by: Robert Richter <robert.richter@amd.com>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    LKML-Reference: <1241002046-8832-2-git-send-email-robert.richter@amd.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>


    ---
    arch/x86/kernel/cpu/amd.c | 4 ----
    arch/x86/kernel/cpu/perf_counter.c | 6 +++---
    2 files changed, 3 insertions(+), 7 deletions(-)

    diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
    index fd69c51..7e4a459 100644
    --- a/arch/x86/kernel/cpu/amd.c
    +++ b/arch/x86/kernel/cpu/amd.c
    @@ -420,10 +420,6 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
    if (c->x86 >= 6)
    set_cpu_cap(c, X86_FEATURE_FXSAVE_LEAK);

    - /* Enable Performance counter for K7 and later */
    - if (c->x86 > 6 && c->x86 <= 0x11)
    - set_cpu_cap(c, X86_FEATURE_ARCH_PERFMON);
    -
    if (!c->x86_model_id[0]) {
    switch (c->x86) {
    case 0xf:
    diff --git a/arch/x86/kernel/cpu/perf_counter.c b/arch/x86/kernel/cpu/perf_counter.c
    index 0fcbaab..7d0f81d 100644
    --- a/arch/x86/kernel/cpu/perf_counter.c
    +++ b/arch/x86/kernel/cpu/perf_counter.c
    @@ -949,6 +949,9 @@ static struct pmc_x86_ops *pmc_intel_init(void)
    unsigned int unused;
    unsigned int ebx;

    + if (!cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON))
    + return NULL;
    +
    /*
    * Check whether the Architectural PerfMon supports
    * Branch Misses Retired Event or not.
    @@ -987,9 +990,6 @@ static struct pmc_x86_ops *pmc_amd_init(void)

    void __init init_hw_perf_counters(void)
    {
    - if (!cpu_has(&boot_cpu_data, X86_FEATURE_ARCH_PERFMON))
    - return;
    -
    switch (boot_cpu_data.x86_vendor) {
    case X86_VENDOR_INTEL:
    pmc_ops = pmc_intel_init();

    \
     
     \ /
      Last update: 2009-04-29 15:07    [W:0.070 / U:1.160 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site