An error occurred fetching the project authors.
- 16 Jun, 2003 1 commit
-
-
Patrick Mochel authored
Stupid naming tricks; my bad.
-
- 14 Jun, 2003 2 commits
-
-
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.
-
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.
-
- 10 Jun, 2003 2 commits
-
-
Patrick Mochel authored
-
Patrick Mochel authored
-
- 20 Apr, 2003 3 commits
-
-
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.
-
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).
-
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.
-
- 17 Apr, 2003 1 commit
-
-
Alan Cox authored
-
- 03 Apr, 2003 1 commit
-
-
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().
-
- 25 Feb, 2003 1 commit
-
-
Andrew Morton authored
From Tim Schmielau <tim@physik3.uni-rostock.de> Force jiffies to start out at five-minutes-before-wrap. To find jiffy-wrapping bugs.
-
- 18 Feb, 2003 1 commit
-
-
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.
-
- 05 Feb, 2003 1 commit
-
-
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.
-
- 04 Feb, 2003 1 commit
-
-
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).
-
- 13 Jan, 2003 1 commit
-
-
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.
-
- 30 Dec, 2002 1 commit
-
-
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.
-
- 05 Nov, 2002 1 commit
-
-
Alan Cox authored
This is used by the following Cyrix patch to handle buggy or spec tight PIT stuff
-
- 15 Oct, 2002 1 commit
-
-
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
-
- 12 Oct, 2002 1 commit
-
-
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.
-
- 10 Oct, 2002 3 commits
-
-
Linus Torvalds authored
into the proper subdirectory (kernel) where it is used. Drop unused variables.
-
John Stultz authored
This is the final part 3 of 3 of my timer-change patch. Part 3 integrates the moved code (from part 2) into the new infrastructure (from part 1).
-
John Stultz authored
This is part 2 of 3 of my timer-change patch. Part 2 is just a bulk move of code out of time.c and into timer_pit.c and timer_tsc.c. No code is changed, only moved. Please note, this code will not compile without the final third part of this patch collection. This was done for readability alone.
-
- 29 Sep, 2002 2 commits
-
-
Dominik Brodowski authored
- incorrect pointer calculation spotted by Gerald Britton - speedstep.c cleanup (Gerald Britton)
-
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
-
- 23 Sep, 2002 1 commit
-
-
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
-
- 09 Sep, 2002 1 commit
-
-
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.
-
- 13 Aug, 2002 1 commit
-
-
Rusty Russell authored
The old form of designated initializers are obsolete: we need to replace them with the ISO C forms before 2.6. Gcc has always supported both forms anyway.
-
- 18 Jun, 2002 1 commit
-
-
Andi Kleen authored
x86-64 needs an own special declaration of jiffies_64. prepare for this by moving the jiffies_64 declaration from kernel/timer.c down into each architecture.
-
- 25 May, 2002 1 commit
-
-
James Bottomley authored
-
- 23 May, 2002 1 commit
-
-
Kai Germaschewski authored
__initcalls are supposed to return a value. Statically initialize the struct instead of doing strcpy() at runtime.
-
- 21 May, 2002 1 commit
-
-
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.
-
- 11 Mar, 2002 1 commit
-
-
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
-
- 10 Mar, 2002 1 commit
-
-
James Bottomley authored
-
- 07 Mar, 2002 1 commit
-
-
Linus Torvalds authored
-
- 26 Feb, 2002 1 commit
-
-
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.
-
- 05 Feb, 2002 5 commits
-
-
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
-
Linus Torvalds authored
- Alan Cox: more driver merging - Al Viro: make ext2 group allocation more readable
-
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
-
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
-
Linus Torvalds authored
-