1. 11 8月, 2005 1 次提交
    • S
      [IA64] fix perfmon context load · 6bf11e8c
      stephane.eranian@hp.com 提交于
      The PFM_LOAD_CONTEXT may fail silently and cause a session
      to remain reserved even though it should not. This can happen
      when the commands succeeds in reserving the session but fails
      when it actually tries to attach to the load_pid. In that case,
      the command has failed but will return 0. More importantly,
      the session will remain reserved. This patch fixes the problem.
      
      Signed-off-by: <stephane.eranian@hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      6bf11e8c
  2. 12 7月, 2005 1 次提交
  3. 01 6月, 2005 1 次提交
  4. 19 5月, 2005 2 次提交
    • T
      [IA64] initialize spinlock pfm_alt_install_check · fe12e25e
      Tony Luck 提交于
      I applied the penultimate version of the perfmon patch, which didn't have
      the initialization of the new spinlock that was added.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      fe12e25e
    • T
      [IA64] alternate perfmon handler · a1ecf7f6
      Tony Luck 提交于
      Patch from Charles Spirakis
      
      Some linux customers want to optimize their applications on the latest
      hardware but are not yet willing to upgrade to the latest kernel. This
      patch provides a way to plug in an alternate, basic, and GPL'ed PMU
      subsystem to help with their monitoring needs or for specialty work. It
      can also be used in case of serious unexpected bugs in perfmon. Mutual
      exclusion between the two subsystems is guaranteed, hence no conflict
      can arise from both subsystem being present.
      Acked-by: NStephane Eranian <eranian@hpl.hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a1ecf7f6
  5. 04 5月, 2005 2 次提交
    • S
      [IA64] another perfmon fix (take2) · a5a70b75
      stephane eranian 提交于
      - pfm_context_load(): change return value from EINVAL to EBUSY
        when context is already loaded.
      
      - pfm_check_task_state(): pass test if context state is MASKED.
        It is safe to give access on PFM_CTX_MASKED because the PMU
        state (PMD) is stable and saved in software state.
        This helps multiplexing programs such as the example given
        in libpfm-3.1.
      Signed-off-by: Nstephane eranian <eranian@hpl.hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      a5a70b75
    • S
      [IA64] perfmon & PAL_HALT again · 8df5a500
      Stephane Eranian 提交于
      The pmu_active test is based on the values of PSR.up. THIS IS THE PROBLEM as
      it does not take into account the lazy restore logic which is as follow (simplified):
      
      context switch out:
      	save PMDs
      	clear psr.up
      	release ownership
      
      context switch in:
      	if (ctx->last_cpu == smp_processor_id() && ctx->cpu_activation == cpu_activation) {
      		set psr.up
      		return
      	}
      	restore PMD
      	restore PMC
      	ctx->last_cpu   = smp_processor_id();
      	ctx->activation = ++cpu_activation;
      	set psr.up
      
      The key here is that on context switch out, we clear psr.up and on context switch in
      we check if nobody else used the PMU on that processor since last time we came. In
      that case, we assume the PMD/PMC are ours and we simply reactivate.
      
      The Caliper problem is that between the moment we context switch out and the moment we
      come back, nobody effectively used the PMU BUT the processor went idle. Normally this
      would have no incidence but PAL_HALT does alter the PMU registers.  In default_idle(),
      the test on psr.up is not strong enough to cover this case and we go into PAL which
      trashed the PMU resgisters. When we come back we falsely assume that this is our state
      yet it is corrupted. Very nasty indeed.
      
      To avoid the problem it is necessary to forbid going to PAL_HALT as soon as perfmon
      installs some valid state in the PMU registers. This happens with an application
      attaches a context to a thread or CPU. It is not enough to check the psr/dcr bits.
      Hence I propose the attached patch. It adds a callback in process.c to modify the
      condition to enter PAL on idle. Basically, now it is conditional to pal_halt=1 AND
      perfmon saying it is okay.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      8df5a500
  6. 26 4月, 2005 1 次提交
    • S
      [IA64] perfmon: make pfm_sysctl a global, and other cleanup · 4944930a
      Stephane Eranian 提交于
      - make pfm_sysctl a global such that it is possible
        to enable/disable debug printk in sampling formats
        using PFM_DEBUG.
      
      - remove unused pfm_debug_var variable
      
      - fix a bug in pfm_handle_work where an BUG_ON() could
        be triggered. There is a path where pfm_handle_work()
        can be called with interrupts enabled, i.e., when
        TIF_NEED_RESCHED is set. The fix correct the masking
        and unmasking of interrupts in pfm_handle_work() such
        that we restore the interrupt mask as it was upon entry.
      signed-off-by: Nstephane eranian <eranian@hpl.hp.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      4944930a
  7. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4