lkml.org 
[lkml]   [2009]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 20/23] x86/oprofile: use 64 bit values to save MSR states
    Date
    This patch removes struct op_saved_msr and replaces it by an u64
    variable. This makes code easier and it is possible to use 64 bit MSR
    functions.

    Signed-off-by: Robert Richter <robert.richter@amd.com>
    ---
    arch/x86/oprofile/nmi_int.c | 28 ++++++++--------------------
    arch/x86/oprofile/op_x86_model.h | 9 ++-------
    2 files changed, 10 insertions(+), 27 deletions(-)

    diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
    index 388ee15..3b84b78 100644
    --- a/arch/x86/oprofile/nmi_int.c
    +++ b/arch/x86/oprofile/nmi_int.c
    @@ -78,19 +78,13 @@ static void nmi_cpu_save_registers(struct op_msrs *msrs)
    unsigned int i;

    for (i = 0; i < nr_ctrs; ++i) {
    - if (counters[i].addr) {
    - rdmsr(counters[i].addr,
    - counters[i].saved.low,
    - counters[i].saved.high);
    - }
    + if (counters[i].addr)
    + rdmsrl(counters[i].addr, counters[i].saved);
    }

    for (i = 0; i < nr_ctrls; ++i) {
    - if (controls[i].addr) {
    - rdmsr(controls[i].addr,
    - controls[i].saved.low,
    - controls[i].saved.high);
    - }
    + if (controls[i].addr)
    + rdmsrl(controls[i].addr, controls[i].saved);
    }
    }

    @@ -204,19 +198,13 @@ static void nmi_restore_registers(struct op_msrs *msrs)
    unsigned int i;

    for (i = 0; i < nr_ctrls; ++i) {
    - if (controls[i].addr) {
    - wrmsr(controls[i].addr,
    - controls[i].saved.low,
    - controls[i].saved.high);
    - }
    + if (controls[i].addr)
    + wrmsrl(controls[i].addr, controls[i].saved);
    }

    for (i = 0; i < nr_ctrs; ++i) {
    - if (counters[i].addr) {
    - wrmsr(counters[i].addr,
    - counters[i].saved.low,
    - counters[i].saved.high);
    - }
    + if (counters[i].addr)
    + wrmsrl(counters[i].addr, counters[i].saved);
    }
    }

    diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h
    index 69f1eb4..fda52b4 100644
    --- a/arch/x86/oprofile/op_x86_model.h
    +++ b/arch/x86/oprofile/op_x86_model.h
    @@ -15,14 +15,9 @@
    #include <asm/types.h>
    #include <asm/intel_arch_perfmon.h>

    -struct op_saved_msr {
    - unsigned int high;
    - unsigned int low;
    -};
    -
    struct op_msr {
    - unsigned long addr;
    - struct op_saved_msr saved;
    + unsigned long addr;
    + u64 saved;
    };

    struct op_msrs {
    --
    1.6.3.1



    \
     
     \ /
      Last update: 2009-06-12 15:11    [W:0.066 / U:61.668 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site