1. 31 8月, 2009 1 次提交
  2. 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
  3. 09 11月, 2008 1 次提交
  4. 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
  5. 23 10月, 2008 2 次提交
  6. 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
  7. 09 7月, 2008 2 次提交
  8. 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
  9. 25 4月, 2008 1 次提交
  10. 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
  11. 17 4月, 2008 1 次提交
  12. 30 1月, 2008 7 次提交
  13. 13 10月, 2007 2 次提交
  14. 11 10月, 2007 1 次提交
  15. 20 7月, 2007 1 次提交
  16. 11 5月, 2007 1 次提交
  17. 03 5月, 2007 3 次提交
  18. 07 3月, 2007 1 次提交
  19. 17 2月, 2007 1 次提交
  20. 26 9月, 2006 1 次提交
  21. 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
  22. 26 4月, 2006 1 次提交
  23. 24 6月, 2005 2 次提交
    • A
      [PATCH] x86: cpu_khz type fix · a3a255e7
      Andrew Morton 提交于
      x86_64's cpu_khz is unsigned int and there is no reason why x86 needs to use
      unsigned long.
      
      So make cpu_khz unsigned int on x86 as well.
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      a3a255e7
    • V
      [PATCH] Platform SMIs and their interferance with tsc based delay calibration · 8a9e1b0f
      Venkatesh Pallipadi 提交于
      Issue:
      Current tsc based delay_calibration can result in significant errors in
      loops_per_jiffy count when the platform events like SMIs
      (System Management Interrupts that are non-maskable) are present. This could
      lead to potential kernel panic(). This issue is becoming more visible with 2.6
      kernel (as default HZ is 1000) and on platforms with higher SMI handling
      latencies. During the boot time, SMIs are mostly used by BIOS (for things
      like legacy keyboard emulation).
      
      Description:
      The psuedocode for current delay calibration with tsc based delay looks like
      (0) Estimate a value for loops_per_jiffy
      (1) While (loops_per_jiffy estimate is accurate enough)
      (2)   wait for jiffy transition (jiffy1)
      (3)   Note down current tsc (tsc1)
      (4)   loop until tsc becomes tsc1 + loops_per_jiffy
      (5)   check whether jiffy changed since jiffy1 or not and refine
      loops_per_jiffy estimate
      
      Consider the following cases
      Case 1:
      If SMIs happen between (2) and (3) above, we can end up with a
      loops_per_jiffy value that is too low. This results in shorted delays and
      kernel can panic () during boot (Mostly at IOAPIC timer initialization
      timer_irq_works() as we don't have enough timer interrupts in a specified
      interval).
      
      Case 2:
      If SMIs happen between (3) and (4) above, then we can end up with a
      loops_per_jiffy value that is too high. And with current i386 code, too
      high lpj value (greater than 17M) can result in a overflow in
      delay.c:__const_udelay() again resulting in shorter delay and panic().
      
      Solution:
      The patch below makes the calibration routine aware of asynchronous events
      like SMIs. We increase the delay calibration time and also identify any
      significant errors (greater than 12.5%) in the calibration and notify it to
      user.
      
      Patch below changes both i386 and x86-64 architectures to use this
      new and improved calibrate_delay_direct() routine.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8a9e1b0f
  24. 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