An error occurred fetching the project authors.
  1. 16 Jun, 2003 1 commit
  2. 14 Jun, 2003 2 commits
    • Andrew Morton's avatar
      [PATCH] More time clean up stuff · a05d0bae
      Andrew Morton authored
      From: george anzinger <george@mvista.com>
      
      This patch addresses issues of roundoff error in the time keeping and NTP
      code as follows:
      
      The conversion of "actual jiffies" to TICK_USEC and then to TICK_NSEC
      introduced large errors if jiffies was not a power of 10 (e.g.  1024 for
      the ia64).  Most of this is avoided by converting directly to TICK_NSEC.
      
      The calculation of MAX_SEC_IN_JIFFIES (the largest timespec or timeval the
      kernel will attempt) had overflow problems in the 64-bit machines.  We
      introduce a different equation for those machines.
      
      The NTP frequency update code was allowing a micro second of error to
      accumulate before applying the correction.  We change FINEUSEC to FINENSEC
      to do the correction as soon as a full nanosecond has accumulated.
      
      The initial calculation of time_freq for NTP had severe roundoff errors for
      HZ not a power of 10 (i.e.  1024).  A new equation fixes this.
      
      clock_nanosleep is changed to round up to the next jiffie to cover starting
      between jiffies.
      a05d0bae
    • Andrew Morton's avatar
      [PATCH] Some clean up of the time code. · b9cebc5d
      Andrew Morton authored
      From: george anzinger <george@mvista.com>
      
      This patch does the following:
      
      Pushs down the change from timeval to timespec in the settime routines.
      
      Fixes two places where time was set without updating the monotonic clock
      offset.  (Changes sys_stime() to call do_settimeofday() and changes
      clock_warp to do the update directly.) These were bugs!
      
      Changes the uptime code to use the posix_clock_monotonic notion of uptime
      instead of the jiffies.  This time will track NTP changes and so should be
      better than your standard wristwatch (if your using ntp).
      
      Changes posix_clock_monotonic to start at 0 on boot (was set to start at
      initial jiffies).
      
      Fixes a bug (never experienced) in timer_create() in posix-timers.c where
      we "could" have released timer_id 0 if "id resources" were low.
      
      Adds a test in do_settimeofday() to error out (EINVAL) attempts to use
      unnormalized times.  This is passed back up to both settimeofday and
      posix_setclock().
      
      Warning: Requires changes in .../arch/???/kernel/time.c to change
      do_settimeofday() to return an error if time is not normalized and to use a
      timespec instead of timeval for its input.
      b9cebc5d
  3. 10 Jun, 2003 2 commits
  4. 20 Apr, 2003 3 commits
    • Andrew Morton's avatar
      [PATCH] detect_lost_tick locking fixes · d9a4b6c5
      Andrew Morton authored
      From: john stultz <johnstul@us.ibm.com>
      
      This patch fixes a race in the timer_interrupt code caused by
      detect_lost_tick().  Since we're doing lost-tick compensation outside
      timer->mark_offset, time can pass between time-source reads which can cause
      gettimeofday inconsistencies.
      
      Additionally detect_lost_tick() was broken for the PIT case, since the whole
      point of detect_lost_tick() is to interpolate between two time sources to
      find inconsistencies.  Additionally this could cause xtime_lock seq_lock
      reader starvation which has been causing machine hangs for SMP boxes that use
      the PIT as a time source.
      
      This patch fixes the described race by removing detect_lost_tick() and
      instead implementing the lost tick detection code inside mark_offset().
      
      Some of the divs and mods being added here might concern folks, but by not
      calling timer->get_offset() in detect_lost_tick() we eliminate much of the
      same math.  I did some simple cycle counting and the new code comes out on
      average equivalent or faster.
      d9a4b6c5
    • Andrew Morton's avatar
      [PATCH] Fix POSIX timers to give CLOCK_MONOTONIC full · 2f98681f
      Andrew Morton authored
      The POSIX CLOCK_MONOTONIC currently has only 1/HZ resolution.  Further, it is
      tied to jiffies (i.e.  is a restatment of jiffies) rather than "xtime" or the
      gettimeofday() clock.
      
      This patch changes CLOCK_MONOTONIC to be a restatment of gettimeofday() plus
      an offset to remove any clock setting activity from CLOCK_MONOTONIC.  An
      offset is kept that represents the difference between CLOCK_MONOTONIC and
      gettimeofday().  This offset is updated when ever the gettimeofday() clock is
      set to back the clock setting change out of CLOCK_MONOTONIC (which by the
      standard, can not be set).
      
      With this change CLOCK_REALTIME (a direct restatement of gettimeofday()),
      CLOCK_MONOTONIC and gettimeofday() will all tick at the same time and with
      the same rate.  And all will be affected by NTP adjustments (save those which
      actually set the time).
      2f98681f
    • Linus Torvalds's avatar
      Interrupt handlers should return whether the interrupt · 3132fdcb
      Linus Torvalds authored
      was for them or not, so that the irq subsystem can properly
      handle screaming shared interrupts.
      
      So change the irq handlers to return a "irqretval_t", which
      is either IRQ_HANDLED or IRQ_NONE.
      3132fdcb
  5. 17 Apr, 2003 1 commit
  6. 03 Apr, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] monotonic clock source for hangcheck timer · 92525be5
      Andrew Morton authored
      From: john stultz <johnstul@us.ibm.com>
      
      This patch, written with the advice of Joel Becker, addresses a problem with
      the hangcheck-timer.
      
      The basic problem is that the hangcheck-timer code (Required for Oracle)
      needs a accurate hard clock which can be used to detect OS stalls (due to
      udelay() or pci bus hangs) that would cause system time to skew (its sort of
      a sanity check that insures the system's notion of time is accurate).
      However, currently they are using get_cycles() to fetch the cpu's TSC
      register, thus this does not work on systems w/o a synced TSC.
      
      As suggested by Andi Kleen (see thread here:
      http://www.uwsg.iu.edu/hypermail/linux/kernel/0302.0/1234.html ) I've worked
      with Joel and others to implement the monotonic_clock() interface.  Some of
      the major considerations made when writing this patch were
      
      o Needs to be able to return accurate time in the absence of multiple timer
        interrupts
      
      o Needs to be abstracted out from the hardware
      
      o Avoids impacting gettimeofday() performance
      
      This interface returns a unsigned long long representing the number of
      nanoseconds that has passed since time_init().
      92525be5
  7. 25 Feb, 2003 1 commit
  8. 18 Feb, 2003 1 commit
    • George Anzinger's avatar
      [PATCH] POSIX clocks & timers · db8b50ba
      George Anzinger authored
      This is version 23 or so of the POSIX timer code.
      
      Internal changelog:
      
       - Changed the signals code to match the new order of things.  Also the
         new xtime_lock code needed to be picked up.  It made some things a lot
         simpler.
      
       - Fixed a spin lock hand off problem in locking timers (thanks
         to Randy).
      
       - Fixed nanosleep to test for out of bound nanoseconds
         (thanks to Julie).
      
       - Fixed a couple of id deallocation bugs that left old ids
         laying around (hey I get this one).
      
       - This version has a new timer id manager.  Andrew Morton
         suggested elimination of recursion (done) and I added code
         to allow it to release unused nodes.  The prior version only
         released the leaf nodes.  (The id manager uses radix tree
         type nodes.)  Also added is a reuse count so ids will not
         repeat for at least 256 alloc/ free cycles.
      
       - The changes for the new sys_call restart now allow one
         restart function to handle both nanosleep and clock_nanosleep.
         Saves a bit of code, nice.
      
       - All the requested changes and Lindent too :).
      
       - I also broke clock_nanosleep() apart much the same way
         nanosleep() was with the 2.5.50-bk5 changes.
      
      TIMER STORMS
      
      The POSIX clocks and timers code prevents "timer storms" by
      not putting repeating timers back in the timer list until
      the signal is delivered for the prior expiry.  Timer events
      missed by this delay are accounted for in the timer overrun
      count.  The net result is MUCH lower system overhead while
      presenting the same info to the user as would be the case if
      an interrupt and timer processing were required for each
      increment in the overrun count.
      db8b50ba
  9. 05 Feb, 2003 1 commit
    • Stephen Hemminger's avatar
      [PATCH] seqlock for xtime · bb59cfa4
      Stephen Hemminger authored
      Add "seqlock" infrastructure for doing low-overhead optimistic reader
      locks (writer increments a sequence number, reader verifies that no
      writers came in during the critical region, and lots of careful memory
      barriers to take care of business).
      
      Make xtime/get_jiffies_64() use this new locking.
      bb59cfa4
  10. 04 Feb, 2003 1 commit
    • Andrew Morton's avatar
      [PATCH] ia32 Lost tick compensation · 63223091
      Andrew Morton authored
      Patch from john stultz <johnstul@us.ibm.com>
      
      Adds some lost-tick compensation code, which handles the case where time
      accounting goes wrong due to interrupts being disabled for longer than two
      ticks.
      
      This patch solves the problem by checking when an interrupt occurs if
      timer->get_offset() is a value greater then 2 ticks.  If so, it increments
      jiffies appropriately.
      
      I was concerned that we'd be better off finding and fixing the misbehaving
      drivers, but it turns out that the main culprits are system management cards
      over which the kernel has no control.
      
      However John has added some debug code which will drop a backtrace on the
      first five occurrences which will allow us to find-and-fix bad drivers if
      overruns _are_ due to Linux software.  (I disabled this - it was irritating
      me.  Dave Hansen has a patch which allows it to be turned on via a kernel
      boot parameter, like the x86_64 equiv).
      63223091
  11. 13 Jan, 2003 1 commit
    • John Stultz's avatar
      [PATCH] linux-2.5.57_timer-none_A0.patch · cab1826e
      John Stultz authored
      This creates an empty timer_opt structure (timer_none) which is then
      used as a default initializer to the timer pointer.  This lets us avoid
      having to check before dereferencing the timer in future code.
      cab1826e
  12. 30 Dec, 2002 1 commit
    • Andrew Morton's avatar
      [PATCH] BIN_TO_BCD consolidation · db8f4c7e
      Andrew Morton authored
      Cleanup patch from Hollis Blanchard <hollis@austin.ibm.com>
      
      We have a large number of private implementations of BIN_TO_BCD and
      BCD_TO_BIN, which are all the same.  And a lot of them are inflexible because
      they modify their arg:
      
      	#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
      
      - Create (in <linux/bcd.h> a generic BIN2BCD/BCD2BIN which does not modify
        its arg
      
      - Create generic BIN_TO_BCD/BCD_TO_BIN which uses the above
      
      - Update lots of callers to use the new generic version.
      db8f4c7e
  13. 05 Nov, 2002 1 commit
  14. 15 Oct, 2002 1 commit
    • John Levon's avatar
      [PATCH] oprofile - timer hook · 120790b8
      John Levon authored
      This implements a simple hook into the profiling timer for x86 so that
      non-perfctr machines can still use oprofile.  This has proven useful for
      laptops and the like.
      
      It also reduces header dependencies a bit by centralising readprofile
      code
      120790b8
  15. 12 Oct, 2002 1 commit
    • Adrian Bunk's avatar
      [PATCH] Fix cpufreq compile · f8d0366a
      Adrian Bunk authored
      The timer-handling split patch moved cpufreq stuff from time.c to
      timers/timer_tsc.c but not the corresponding #include <linux/cpufreq.h>
      causing the build to fail.
      
      The fix is simple.
      f8d0366a
  16. 10 Oct, 2002 3 commits
  17. 29 Sep, 2002 2 commits
    • Dominik Brodowski's avatar
      [PATCH] cpufreq bugfixes · 20ab1b04
      Dominik Brodowski authored
      - incorrect pointer calculation spotted by Gerald Britton
      - speedstep.c cleanup (Gerald Britton)
      20ab1b04
    • Dominik Brodowski's avatar
      [PATCH] (2/5) CPUfreq i386 core · 6ea7844f
      Dominik Brodowski authored
      CPUFreq i386 core for 2.5.39:
      arch/i386/kernel/i386_ksyms.c	export cpu_khz
      arch/i386/kernel/time.c		update various i386 values on frequency
      				changes
      include/asm-i386/msr.h		add Transmeta MSR defines
      6ea7844f
  18. 23 Sep, 2002 1 commit
    • Patrick Mochel's avatar
      Driver model: improve support for system devices. · 8b755139
      Patrick Mochel authored
        
      - Create struct sys_device to describe system-level devices (CPUs, PICs, etc.). This 
        structure includes a 'name' and 'id' field for drivers to fill in with a simple
        canonical name (like 'pic' or 'floppy') and the id of the device relative to its 
        discovery in the system (it's enumerated value).
      
        The core then constructs the bus_id for the device from these, giving them meaningful
        names when exporting them to userspace:
      
      # tree -d /sys/root/sys/
      /sys/root/sys/
      |-- pic0
      `-- rtc0
      
      - Replace 
      	int register_sys_device(struct device * dev);
      	with 
      	int sys_device_register(struct sys_device * sysdev);
      
      - Fixup the users of the API.
      
      - Add a system_bus_type for devices to associate themselves with. This provides a 
        bus/system/ directory in driverfs that looks like:
      
      # tree -d /sys/bus/system/
      /sys/bus/system/
      |-- devices
      |   |-- pic0 -> ../../../root/sys/pic0
      |   `-- rtc0 -> ../../../root/sys/rtc0
      `-- drivers
          `-- pic
      8b755139
  19. 09 Sep, 2002 1 commit
    • Rolf Fokkens's avatar
      [PATCH] USER_HZ & NTP problems · 3843e047
      Rolf Fokkens authored
      I've been playing with different HZ values in the 2.4 kernel for a while
      now, and apparantly Linus also has decided to introduce a USER_HZ
      constant (I used CLOCKS_PER_SEC) while raising the HZ value on x86 to
      1000.
      
      On x86 timekeeping has shown to be relative fragile when raising HZ (OK,
      I tried HZ=2048 which is quite high) because of the way the interrupt
      timer is configured to fire HZ times each second.  This is done by
      configuring a divisor in the timer chip (LATCH) which divides a certain
      clock (1193180) and makes the chip fire interrupts at the resulting
      frequency.
      
      Now comes the catch: NTP requires a clock accuracy of 500 ppm.  For some
      HZ values the clock is not accurate enough to meet this requirement,
      hence NTP won't work well.
      
      An example HZ value is 1020 which exceeds the 500 ppm requirement.  In
      this case the best approximation is 1019.8 Hz.  the xtime.tv_usec value
      is raised with a value of 980 each tick which means that after one
      second the tv_usec value has increased with 999404 (should be 1000000)
      which is an accuracy of 596 ppm.
      
      Some more examples:
      	  HZ Accuracy (ppm)
      	---- --------------
      	 100             17
      	1000            151
      	1024            632
      	2000            687
      	2008            343
      	2011             18
      	2048           1249
      
      What I've been doing is replace tv_usec by tv_nsec, meaning xtime is now
      a timespec instead of a timeval.  This allows the accuracy to be
      improved by a factor of 1000 for any (well ...  any?) HZ value. 
      
      Of course all kinds of calculations had te be improved as well.  The
      ACTHZ constantant is introduced to approximate the actual HZ value, it's
      used to do some approximations of other related values. 
      3843e047
  20. 13 Aug, 2002 1 commit
  21. 18 Jun, 2002 1 commit
  22. 25 May, 2002 1 commit
  23. 23 May, 2002 1 commit
    • Kai Germaschewski's avatar
      Compiler warning fixes · 0cb2712f
      Kai Germaschewski authored
      __initcalls are supposed to return a value.
      Statically initialize the struct instead of doing strcpy() at runtime.
      0cb2712f
  24. 21 May, 2002 1 commit
    • Pavel Machek's avatar
      [PATCH] suspend-to-{RAM,disk} · 542f96a5
      Pavel Machek authored
      Here's suspend-to-{RAM,disk} combined patch for
      2.5.17. Suspend-to-disk is pretty stable and was tested in
      2.4-ac. Suspend-to-RAM is little more experimental, but works for me,
      and is certainly better than disk-eating version currently in kernel.
      
      Major parts are: process stopper, S3 specific code, S4 specific
      code.
      542f96a5
  25. 11 Mar, 2002 1 commit
    • James Bottomley's avatar
      More Separation · 1eb6e582
      James Bottomley authored
      - add do_timer_overflow() function for coping with tick overflow
      - make find_smp_config() gated by its own define
      - bug fixes and corrections
      1eb6e582
  26. 10 Mar, 2002 1 commit
  27. 07 Mar, 2002 1 commit
  28. 26 Feb, 2002 1 commit
    • Vojtech Pavlik's avatar
      [PATCH] Input patch - joystick drivers update · c20c3375
      Vojtech Pavlik authored
      As a step in the process of updating all the linux input drivers to the
      most recent version available, this patch updates all the joystick
      drivers that are in the kernel tree.
      
      Changes are mainly the input hotplug/proc support in every of the
      joystick drivers, and fixing trivial bugs here and there. I can supply a
      more detailed description upon request.
      c20c3375
  29. 05 Feb, 2002 5 commits
    • Linus Torvalds's avatar
      v2.5.2.3 -> v2.5.2.4 · 9d6ba121
      Linus Torvalds authored
      - Patrick Mochel: initcall levels
      - Patrick Mochel: devicefs updates, add PCI devices into the hierarchy
      - Denis Oliver Kropp: neomagic fb driver
      - David Miller: sparc64 and network updates
      - Kai Mäkisara: scsi tape update
      - Al Viro: more inode trimming, VFS cleanup
      - Greg KH: USB update - proper urb allocations
      - Eric Raymond: kdev_t updates for fb devices
      9d6ba121
    • Linus Torvalds's avatar
      v2.4.14.2 -> v2.4.14.3 · d40d1af9
      Linus Torvalds authored
        - Alan Cox: more driver merging
        - Al Viro: make ext2 group allocation more readable
      d40d1af9
    • Linus Torvalds's avatar
      v2.4.9.11 -> v2.4.9.12 · dfc52b82
      Linus Torvalds authored
        - Alan Cox: much more merging
        - Pete Zaitcev: ymfpci race fixes
        - Andrea Arkangeli: VM race fix and OOM tweak.
        - Arjan Van de Ven: merge RH kernel fixes
        - Andi Kleen: use more readable 'likely()/unlikely()' instead of __builtin_expect()
        - Keith Owens: fix 64-bit ELF types
        - Gerd Knorr: mark more broken PCI bridges, update btaudio driver
        - Paul Mackerras: powermac driver update
        - me: clean up PTRACE_DETACH to use common infrastructure
      dfc52b82
    • Linus Torvalds's avatar
      v2.4.9.9 -> v2.4.9.10 · c37fa164
      Linus Torvalds authored
        - Alan Cox: continued merging
        - Mingming Cao: make msgrcv/shmat check the queue/segment ID's properly
        - Greg KH: USB serial init failure fix, Xircom serial converter driver
        - Neil Brown: nsfd/raid/md/lockd cleanups
        - Ingo Molnar: multipath RAID personality, raid xor update
        - Hugh Dickins/Marcelo Tosatti: swapin read-ahead race fix
        - Vojtech Pavlik: fix up some of the infrastructure for x86-64
        - Robert Love: AMD 761 AGP GART support
        - Jens Axboe: fix SCSI-generic queue handling race
        - me: be sane about page reference bits
      c37fa164
    • Linus Torvalds's avatar
      Import changeset · 7a2deb32
      Linus Torvalds authored
      7a2deb32