1. 26 10月, 2010 1 次提交
  2. 20 10月, 2010 1 次提交
    • R
      apic, x86: Use BIOS settings for IBS and MCE threshold interrupt LVT offsets · 27afdf20
      Robert Richter 提交于
      We want the BIOS to setup the EILVT APIC registers. The offsets
      were hardcoded and BIOS settings were overwritten by the OS.
      Now, the subsystems for MCE threshold and IBS determine the LVT
      offset from the registers the BIOS has setup. If the BIOS setup
      is buggy on a family 10h system, a workaround enables IBS. If
      the OS determines an invalid register setup, a "[Firmware Bug]:
      " error message is reported.
      
      We need this change also for upcomming cpu families.
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      LKML-Reference: <1286360874-1471-3-git-send-email-robert.richter@amd.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      27afdf20
  3. 06 5月, 2010 1 次提交
    • R
      oprofile/x86: make AMD IBS hotplug capable · bae663bc
      Robert Richter 提交于
      Current IBS code is not hotplug capable. An offline cpu might not be
      initialized or deinitialized properly. This patch fixes this by
      removing on_each_cpu() functions. The IBS init/deinit code is executed
      in the per-cpu functions model->setup_ctrs() and model->cpu_down()
      which are also called by hotplug notifiers. model->cpu_down() replaces
      model->exit() that became obsolete.
      
      Cc: Andi Kleen <andi@firstfloor.org>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      bae663bc
  4. 04 5月, 2010 5 次提交
  5. 01 3月, 2010 3 次提交
  6. 26 2月, 2010 9 次提交
    • R
      oprofile/x86: fix msr access to reserved counters · cfc9c0b4
      Robert Richter 提交于
      During switching virtual counters there is access to perfctr msrs. If
      the counter is not available this fails due to an invalid
      address. This patch fixes this.
      
      Cc: stable@kernel.org
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      cfc9c0b4
    • R
      oprofile/x86: use kzalloc() instead of kmalloc() · c17c8fbf
      Robert Richter 提交于
      Cc: stable@kernel.org
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      c17c8fbf
    • R
      oprofile/x86: fix perfctr nmi reservation for mulitplexing · 68dc819c
      Robert Richter 提交于
      Multiple virtual counters share one physical counter. The reservation
      of virtual counters fails due to duplicate allocation of the same
      counter. The counters are already reserved. Thus, virtual counter
      reservation may removed at all. This also makes the code easier.
      
      Cc: stable@kernel.org
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      68dc819c
    • R
      oprofile/x86: warn user if a counter is already active · 98a2e73a
      Robert Richter 提交于
      This patch generates a warning if a counter is already active.
      
      Implemented for AMD and P6 models. P4 is not supported.
      
      Cc: Naga Chumbalkar <nagananda.chumbalkar@hp.com>
      Cc: Shashi Belur <shashi-kiran.belur@hp.com>
      Cc: Tony Jones <tonyj@suse.de>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      98a2e73a
    • R
      oprofile/x86: implement randomization for IBS periodic op counter · ba52078e
      Robert Richter 提交于
      IBS selects an op (execution operation) for sampling by counting
      either cycles or dispatched ops. Better statistical samples can be
      produced by adding a software generated random offset to the periodic
      op counter value with each sample.
      
      This patch adds software randomization to the IBS periodic op
      counter. The lower 12 bits of the 20 bit counter are
      randomized. IbsOpCurCnt is initialized with a 12 bit random value.
      
      There is a work around if the hw can not write to IbsOpCurCnt. Then
      the lower 8 bits of the 16 bit IbsOpMaxCnt [15:0] value are randomized
      in the range of -128 to +127 by adding/subtracting an offset to the
      maximum count (IbsOpMaxCnt).
      
      The linear feedback shift register (LFSR) algorithm is used for
      pseudo-random number generation to have low impact to the memory
      system.
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      ba52078e
    • S
      oprofile/x86: implement lsfr pseudo-random number generator for IBS · f125be14
      Suravee Suthikulpanit 提交于
      This patch implements a linear feedback shift register (LFSR) for
      pseudo-random number generation for IBS.
      
      For IBS measurements it would be good to minimize memory traffic in
      the interrupt handler since every access pollutes the data
      caches. Computing a maximal period LFSR just needs shifts and ORs.
      
      The LFSR method is good enough to randomize the ops at low
      overhead. 16 pseudo-random bits are enough for the implementation and
      it doesn't matter that the pattern repeats with a fairly short
      cycle. It only needs to break up (hard) periodic sampling behavior.
      
      The logic was designed by Paul Drongowski.
      Signed-off-by: NSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      f125be14
    • R
      oprofile/x86: implement IBS cpuid feature detection · 64683da6
      Robert Richter 提交于
      This patch adds IBS feature detection using cpuid flags. An IBS
      capability mask is introduced to test for certain IBS features. The
      bit mask is the same as for IBS cpuid feature flags (Fn8000_001B_EAX),
      but bit 0 is used to indicate the existence of IBS.
      
      The patch also changes the handling of the IbsOpCntCtl bit (periodic
      op counter count control). The oprofilefs file for this feature
      (ibs_op/dispatched_ops) will be only exposed if the feature is
      available, also the default for the bit is set to count clock cycles.
      
      In general, the userland can detect the availability of a feature by
      checking for the corresponding file in oprofilefs. If it exists, the
      feature also exists. This may lead to a dynamic file layout depending
      on the cpu type with that the userland has to deal with. Current
      opcontrol is compatible.
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      64683da6
    • R
      oprofile/x86: remove node check in AMD IBS initialization · 89baaaa9
      Robert Richter 提交于
      Standard AMD systems have the same number of nodes as there are
      northbridge devices. However, there may kernel configurations
      (especially for 32 bit) or system setups exist, where the node number
      is different or it can not be detected properly. Thus the check is not
      reliable and may fail though IBS setup was fine. For this reason it is
      better to remove the check.
      
      Cc: stable <stable@kernel.org>
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      89baaaa9
    • R
      oprofile/x86: remove OPROFILE_IBS config option · 013cfc50
      Robert Richter 提交于
      OProfile support for IBS is now for several versions in the
      kernel. The feature is stable now and the code can be activated
      permanently.
      
      As a side effect IBS now works also on nosmp configs.
      Signed-off-by: NRobert Richter <robert.richter@amd.com>
      013cfc50
  7. 04 8月, 2009 2 次提交
  8. 20 7月, 2009 8 次提交
  9. 14 7月, 2009 2 次提交
  10. 18 6月, 2009 1 次提交
  11. 12 6月, 2009 7 次提交