lkml.org 
[lkml]   [2009]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/29] x86/perfcounters: remove get_status() from struct x86_pmu
    Date
    This function is Intel only and not necessary for AMD cpus.

    Signed-off-by: Robert Richter <robert.richter@amd.com>
    ---
    arch/x86/kernel/cpu/perf_counter.c | 39 ++++-------------------------------
    1 files changed, 5 insertions(+), 34 deletions(-)

    diff --git a/arch/x86/kernel/cpu/perf_counter.c b/arch/x86/kernel/cpu/perf_counter.c
    index 9d90de0..d0bb029 100644
    --- a/arch/x86/kernel/cpu/perf_counter.c
    +++ b/arch/x86/kernel/cpu/perf_counter.c
    @@ -51,7 +51,6 @@ struct x86_pmu {
    int (*handle_irq)(struct pt_regs *, int);
    u64 (*save_disable_all)(void);
    void (*restore_all)(u64);
    - u64 (*get_status)(u64);
    void (*ack_status)(u64);
    void (*enable)(int, u64);
    void (*disable)(int, u64);
    @@ -405,41 +404,15 @@ void hw_perf_restore(u64 ctrl)
    */
    EXPORT_SYMBOL_GPL(hw_perf_restore);

    -static u64 intel_pmu_get_status(u64 mask)
    +static inline u64 intel_pmu_get_status(u64 mask)
    {
    u64 status;

    - rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, status);
    -
    - return status;
    -}
    -
    -static u64 amd_pmu_get_status(u64 mask)
    -{
    - u64 status = 0;
    - int idx;
    -
    - for (idx = 0; idx < nr_counters_generic; idx++) {
    - s64 val;
    -
    - if (!(mask & (1 << idx)))
    - continue;
    -
    - rdmsrl(MSR_K7_PERFCTR0 + idx, val);
    - val <<= (64 - counter_value_bits);
    - if (val >= 0)
    - status |= (1 << idx);
    - }
    -
    - return status;
    -}
    -
    -static u64 hw_perf_get_status(u64 mask)
    -{
    if (unlikely(!perf_counters_initialized))
    return 0;
    + rdmsrl(MSR_CORE_PERF_GLOBAL_STATUS, status);

    - return x86_pmu->get_status(mask);
    + return status;
    }

    static void intel_pmu_ack_status(u64 ack)
    @@ -795,7 +768,7 @@ static int intel_pmu_handle_irq(struct pt_regs *regs, int nmi)

    cpuc->throttle_ctrl = hw_perf_save_disable();

    - status = hw_perf_get_status(cpuc->throttle_ctrl);
    + status = intel_pmu_get_status(cpuc->throttle_ctrl);
    if (!status)
    goto out;

    @@ -820,7 +793,7 @@ again:
    /*
    * Repeat if there is more work to be done:
    */
    - status = hw_perf_get_status(cpuc->throttle_ctrl);
    + status = intel_pmu_get_status(cpuc->throttle_ctrl);
    if (status)
    goto again;
    out:
    @@ -931,7 +904,6 @@ static struct x86_pmu intel_pmu = {
    .handle_irq = intel_pmu_handle_irq,
    .save_disable_all = intel_pmu_save_disable_all,
    .restore_all = intel_pmu_restore_all,
    - .get_status = intel_pmu_get_status,
    .ack_status = intel_pmu_ack_status,
    .enable = intel_pmu_enable_counter,
    .disable = intel_pmu_disable_counter,
    @@ -946,7 +918,6 @@ static struct x86_pmu amd_pmu = {
    .handle_irq = amd_pmu_handle_irq,
    .save_disable_all = amd_pmu_save_disable_all,
    .restore_all = amd_pmu_restore_all,
    - .get_status = amd_pmu_get_status,
    .ack_status = amd_pmu_ack_status,
    .enable = amd_pmu_enable_counter,
    .disable = amd_pmu_disable_counter,
    --
    1.6.1.3



    \
     
     \ /
      Last update: 2009-04-29 12:55    [W:0.027 / U:0.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site