Merge commit 'tip/perfcounters-for-linus' into oprofile/master
authorRobert Richter <robert.richter@amd.com>
Fri, 12 Jun 2009 15:58:48 +0000 (17:58 +0200)
committerRobert Richter <robert.richter@amd.com>
Fri, 12 Jun 2009 15:58:48 +0000 (17:58 +0200)
Conflicts:
arch/x86/oprofile/op_model_ppro.c

Signed-off-by: Robert Richter <robert.richter@amd.com>
1  2 
arch/x86/oprofile/nmi_int.c
arch/x86/oprofile/op_model_ppro.c
arch/x86/oprofile/op_x86_model.h

Simple merge
@@@ -122,12 -147,13 +129,13 @@@ static int ppro_check_ctrs(struct pt_re
                if (!reset_value[i])
                        continue;
                rdmsrl(msrs->counters[i].addr, val);
 -              if (CTR_OVERFLOWED(val)) {
 -                      oprofile_add_sample(regs, i);
 -                      wrmsrl(msrs->counters[i].addr, -reset_value[i]);
 -              }
 +              if (val & (1ULL << (counter_width - 1)))
 +                      continue;
 +              oprofile_add_sample(regs, i);
 +              wrmsrl(msrs->counters[i].addr, -reset_value[i]);
        }
  
+ out:
        /* Only P6 based Pentium M need to re-unmask the apic vector but it
         * doesn't hurt other P6 variant */
        apic_write(APIC_LVTPC, apic_read(APIC_LVTPC) & ~APIC_LVT_MASKED);
  #ifndef OP_X86_MODEL_H
  #define OP_X86_MODEL_H
  
 -struct op_saved_msr {
 -      unsigned int high;
 -      unsigned int low;
 -};
 +#include <asm/types.h>
- #include <asm/intel_arch_perfmon.h>
++#include <asm/perf_counter.h>
  
  struct op_msr {
 -      unsigned long addr;
 -      struct op_saved_msr saved;
 +      unsigned long   addr;
 +      u64             saved;
  };
  
  struct op_msrs {