1. 07 Jul, 2009 3 commits
    • Thomas Gleixner's avatar
      timekeeping: Move ktime_get() functions to timekeeping.c · a40f262c
      Thomas Gleixner authored
      The ktime_get() functions for GENERIC_TIME=n are still located in
      hrtimer.c. Move them to time/timekeeping.c where they belong.
      
      LKML-Reference: <new-submission>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      a40f262c
    • Martin Schwidefsky's avatar
      timekeeping: optimized ktime_get[_ts] for GENERIC_TIME=y · 951ed4d3
      Martin Schwidefsky authored
      The generic ktime_get function defined in kernel/hrtimer.c is suboptimial
      for GENERIC_TIME=y:
      
       0)               |  ktime_get() {
       0)               |    ktime_get_ts() {
       0)               |      getnstimeofday() {
       0)               |        read_tod_clock() {
       0)   0.601 us    |        }
       0)   1.938 us    |      }
       0)               |      set_normalized_timespec() {
       0)   0.602 us    |      }
       0)   4.375 us    |    }
       0)   5.523 us    |  }
      
      Overall there are two read_seqbegin/read_seqretry loops and a lot of
      unnecessary struct timespec calculations. ktime_get returns a nano second
      value which is the sum of xtime, wall_to_monotonic and the nano second
      delta from the clock source.
      
      ktime_get can be optimized for GENERIC_TIME=y. The new version only calls
      clocksource_read:
      
       0)               |  ktime_get() {
       0)               |    read_tod_clock() {
       0)   0.610 us    |    }
       0)   1.977 us    |  }
      
      It uses a single read_seqbegin/readseqretry loop and just adds everthing
      to a nano second value.
      
      ktime_get_ts is optimized in a similar fashion.
      
      [ tglx: added WARN_ON(timekeeping_suspended) as in getnstimeofday() ]
      Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
      Acked-by: default avatarjohn stultz <johnstul@us.ibm.com>
      LKML-Reference: <20090707112728.3005244d@skybase>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      951ed4d3
    • Linus Torvalds's avatar
      Merge branch 'x86-fixes-for-linus' of... · faf80d62
      Linus Torvalds authored
      Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
        x86: fix usage of bios intcall()
        x86: Remove unused function lapic_watchdog_ok()
        x86: Remove unused variable disable_x2apic
        x86, kvm: Fix section mismatches in kvm.c
        x86: Add missing annotation to arch/x86/lib/copy_user_64.S::copy_to_user
        x86: Fix fixmap page order for FIX_TEXT_POKE0,1
        amd-iommu: set evt_buf_size correctly
        amd-iommu: handle alias entries correctly in init code
        x86: Fix printk call in print_local_apic()
        x86: Declare check_efer() before it gets used
        x86: Mark device_nb as static and fix NULL noise
        x86: Remove double declaration of MSR_P6_EVNTSEL0 and MSR_P6_EVNTSEL1
        xen: Use kcalloc() in xen_init_IRQ()
        x86: Fix fixmap ordering
        x86: Fix symbol annotation for arch/x86/lib/clear_page_64.S::clear_page_c
      faf80d62
  2. 06 Jul, 2009 37 commits