1. 23 7月, 2013 1 次提交
  2. 20 3月, 2012 1 次提交
    • M
      x86: kvmclock: abstract save/restore sched_clock_state · b74f05d6
      Marcelo Tosatti 提交于
      Upon resume from hibernation, CPU 0's hvclock area contains the old
      values for system_time and tsc_timestamp. It is necessary for the
      hypervisor to update these values with uptodate ones before the CPU uses
      them.
      
      Abstract TSC's save/restore sched_clock_state functions and use
      restore_state to write to KVM_SYSTEM_TIME MSR, forcing an update.
      
      Also move restore_sched_clock_state before __restore_processor_state,
      since the later calls CONFIG_LOCK_STAT's lockstat_clock (also for TSC).
      Thanks to Igor Mammedov for tracking it down.
      
      Fixes suspend-to-disk with kvmclock.
      Reviewed-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      b74f05d6
  3. 06 12月, 2011 1 次提交
  4. 15 7月, 2011 1 次提交
  5. 24 5月, 2011 1 次提交
  6. 18 3月, 2011 1 次提交
  7. 20 8月, 2010 1 次提交
    • S
      x86, tsc, sched: Recompute cyc2ns_offset's during resume from sleep states · cd7240c0
      Suresh Siddha 提交于
      TSC's get reset after suspend/resume (even on cpu's with invariant TSC
      which runs at a constant rate across ACPI P-, C- and T-states). And in
      some systems BIOS seem to reinit TSC to arbitrary large value (still
      sync'd across cpu's) during resume.
      
      This leads to a scenario of scheduler rq->clock (sched_clock_cpu()) less
      than rq->age_stamp (introduced in 2.6.32). This leads to a big value
      returned by scale_rt_power() and the resulting big group power set by the
      update_group_power() is causing improper load balancing between busy and
      idle cpu's after suspend/resume.
      
      This resulted in multi-threaded workloads (like kernel-compilation) go
      slower after suspend/resume cycle on core i5 laptops.
      
      Fix this by recomputing cyc2ns_offset's during resume, so that
      sched_clock() continues from the point where it was left off during
      suspend.
      Reported-by: NFlorian Pritz <flo@xssn.at>
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: <stable@kernel.org> # [v2.6.32+]
      Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      LKML-Reference: <1282262618.2675.24.camel@sbsiddha-MOBL3.sc.intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      cd7240c0
  8. 31 8月, 2009 1 次提交
  9. 10 11月, 2008 1 次提交
    • I
      x86: clean up vget_cycles() · 4fcc50ab
      Ingo Molnar 提交于
      Impact: remove unused variable
      
      I forgot to remove the now unused "cycles_t cycles" parameter from
      vget_cycles() - which triggers build warnings as tsc.h is included
      in a number of files.
      
      Remove it.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      4fcc50ab
  10. 09 11月, 2008 1 次提交
  11. 08 11月, 2008 1 次提交
    • I
      sched: improve sched_clock() performance · 0d12cdd5
      Ingo Molnar 提交于
      in scheduler-intense workloads native_read_tsc() overhead accounts for
      20% of the system overhead:
      
       659567 system_call                              41222.9375
       686796 schedule                                 435.7843
       718382 __switch_to                              665.1685
       823875 switch_mm                                4526.7857
       1883122 native_read_tsc                          55385.9412
       9761990 total                                      2.8468
      
      this is large part due to the rdtsc_barrier() that is done before
      and after reading the TSC.
      
      But sched_clock() is not a precise clock in the GTOD sense, using such
      barriers is completely pointless. So remove the barriers and only use
      them in vget_cycles().
      
      This improves lat_ctx performance by about 5%.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0d12cdd5
  12. 23 10月, 2008 2 次提交
  13. 23 7月, 2008 1 次提交
    • V
      x86: consolidate header guards · 77ef50a5
      Vegard Nossum 提交于
      This patch is the result of an automatic script that consolidates the
      format of all the headers in include/asm-x86/.
      
      The format:
      
      1. No leading underscore. Names with leading underscores are reserved.
      2. Pathname components are separated by two underscores. So we can
         distinguish between mm_types.h and mm/types.h.
      3. Everything except letters and numbers are turned into single
         underscores.
      Signed-off-by: NVegard Nossum <vegard.nossum@gmail.com>
      77ef50a5
  14. 09 7月, 2008 2 次提交
  15. 29 4月, 2008 1 次提交
    • H
      x86: vget_cycles() __always_inline · 97520825
      Hugh Dickins 提交于
      Mark vget_cycles() as __always_inline, so gcc is never tempted to make
      the vsyscall vread_tsc() dive into kernel text, with resulting SIGSEGV.
      
      This was a self-inflicted wound: I've not seen that happen with unhacked
      sources; but for debug reasons I'd changed my x86/Makefile to compile
      no-unit-at-a-time, and that in conjunction with OPTIMIZE_INLINING=y
      ended up with vget_cycles() in kernel text.  Perhaps it can happen
      in other ways: safer to use __always_inline.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      97520825
  16. 25 4月, 2008 1 次提交
  17. 20 4月, 2008 1 次提交
    • E
      x86: implement prctl PR_GET_TSC and PR_SET_TSC · 529e25f6
      Erik Bosman 提交于
      This patch implements the PR_GET_TSC and PR_SET_TSC prctl()
      commands on the x86 platform (both 32 and 64 bit.) These
      commands control the ability to read the timestamp counter
      from userspace (the RDTSC instruction.)
      
      While the RDTSC instuction is a useful profiling tool,
      it is also the source of some non-determinism in ring-3.
      For deterministic replay applications it is useful to be
      able to trap and emulate (and record the outcome of) this
      instruction.
      
      This patch uses code earlier used to disable the timestamp
      counter for the SECCOMP framework. A side-effect of this
      patch is that the SECCOMP environment will now also disable
      the timestamp counter on x86_64 due to the addition of the
      TIF_NOTSC define on this platform.
      
      The code which enables/disables the RDTSC instruction during
      context switches is in the __switch_to_xtra function, which
      already handles other unusual conditions, so normal
      performance should not have to suffer from this change.
      Signed-off-by: NErik Bosman <ejbosman@cs.vu.nl>
      Acked-by: NArjan van de Ven  <arjan@linux.intel.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      529e25f6
  18. 17 4月, 2008 1 次提交
  19. 30 1月, 2008 7 次提交
  20. 13 10月, 2007 2 次提交
  21. 11 10月, 2007 1 次提交
  22. 20 7月, 2007 1 次提交
  23. 11 5月, 2007 1 次提交
  24. 03 5月, 2007 3 次提交
  25. 07 3月, 2007 1 次提交
  26. 17 2月, 2007 1 次提交
  27. 26 9月, 2006 1 次提交
  28. 27 6月, 2006 1 次提交
    • J
      [PATCH] Time: i386 Conversion - part 2: Rework TSC Support · 539eb11e
      john stultz 提交于
      As part of the i386 conversion to the generic timekeeping infrastructure, this
      introduces a new tsc.c file.  The code in this file replaces the TSC
      initialization, management and access code currently in timer_tsc.c (which
      will be removed) that we want to preserve.
      
      The code also introduces the following functionality:
      
      o tsc_khz: like cpu_khz but stores the TSC frequency on systems that do not
        change TSC frequency w/ CPU frequency
      
      o check/mark_tsc_unstable: accessor/modifier flag for TSC timekeeping
        usability
      
      o minor cleanups to calibration math.
      
      This patch also includes a one line __cpuinitdata fix from Zwane Mwaikambo.
      Signed-off-by: NJohn Stultz <johnstul@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      539eb11e
  29. 26 4月, 2006 1 次提交