Age | Commit message (Collapse) | Author |
|
like .25 seconds or 5 seconds. the accuracy of microuptime is not really
needed then, so switch it to getmicrouptime.
ok henning@ art@
|
|
|
|
deraadt@ ok
|
|
getitimer when the clock on the machine has been reset.
miod@ ok
|
|
Tested by various using not (yet) committed amd64 timecounter code.
ok deraadt@
|
|
__HAVE_TIMECOUNTER case.
ok otto@
|
|
timecounters case. adjfreq() does not work with timecounters, but
more is coming. with help from miod; tested by dlg@; ok miod@
|
|
(ie sgi). Diff and request to commit from otto@
|
|
Loosely based on dragonfly code. ok deraadt@
|
|
|
|
|
|
and attempt to compensate for incorrect clocks by adjusting ticks
slowly. ok deraadt
|
|
'go for it' deraadt@
|
|
from alexander bluhm; ok deraadt
|
|
the midst of exiting. This solves a race condition that causes freed memory
to be left referenced in the master kernel timeout worklist, leading to a
uvm_fault. The same race condition was already fixed earlier in r1.53 of
kern_clock.c for the process virtual and profile timeout structs.
deraadt@ ok, testing by krw@
|
|
wrong direction for large offsets as nick@ saw. With tom@ and toby@;
ok tdeval@ krw@
|
|
only for curproc, that's why no SCHED_LOCK or similar is necessary).
miod@ "appears to be harmless"
markus@ ok
|
|
|
|
everyone for the prompt review and ok of this work ;-) Yeah, that includes me
too, or maybe especially me. I am sorry.
Change the sched_lock to a mutex. This fixes, among other things, the infamous
"telnet localhost &" problem. The real bug in that case was that the sched_lock
which is by design a non-recursive lock, was recursively acquired, and not
enough releases made us hold the lock in the idle loop, blocking scheduling
on the other processors. Some of the other processors would hold the biglock though,
which made it impossible for cpu 0 to enter the kernel... A nice deadlock.
Let me just say debugging this for days just to realize that it was all fixed
in an old diff noone ever ok'd was somewhat of an anti-climax.
This diff also changes splsched to be correct for all our architectures.
|
|
code is all conditionalized on __HAVE_TIMECOUNTER, and not
enabled on any platforms.
adjtime(2) support exists, courtesy of nordin@, sysctl(2) support
and a concept of quality for each time source attached exists.
High quality time sources exists for PIIX4 ACPI timer as well as
some AMD power management chips. This will have to be redone
once we actually add ACPI support (at that time we need to use
the ACPI interfaces to get at these clocks).
ok art@ ken@ miod@ jmc@ and many more
|
|
|
|
encapsulating all such access into wall-defined functions
that makes sure locking is done as needed.
It also cleans up some uses of wall time vs. uptime some
places, but there is sure to be more of these needed as
well, particularily in MD code. Also, many current calls
to microtime() should probably be changed to getmicrotime(),
or to the {,get}microuptime() versions.
ok art@ deraadt@ aaron@ matthieu@ beck@ sturm@ millert@ others
"Oh, that is not your problem!" from miod@
|
|
things such that code that only need a second-resolution uptime or wall
time, and used to get that from time.tv_secs or mono_time.tv_secs now get
this from separate time_t globals time_second and time_uptime.
ok art@ niklas@ nordin@
|
|
|
|
Introduce the cpu_info structure, p_cpu field in struct proc and global
scheduling context and various changed code to deal with this. At the
moment no architecture uses this stuff yet, but it will allow us slow and
controlled migration to the new APIs.
All new code is ifdef:ed out.
ok deraadt@ niklas@
|
|
from netbsd via Pedro Martelletto <pbastos@rdc.puc-rio.br>
|
|
from Patrick Latifi <patrick.l@hermes.usherb.ca>
ok jason@ tedu@
|
|
|
|
argument. old cred only calls user suser_ucred. this will allow future
work to more flexibly implement the idea of a root process. looks like
something i saw in freebsd, but a little different.
use of suser_ucred vs suser in file system code should be looked at again,
for the moment semantics remain unchanged.
review and input from art@ testing and further review miod@
|
|
|
|
rescinded 22 July 1999. Proofed by myself and Theo.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
There is no need to use 'time' when we can use 'mono_time'.
(oh and now it's faster too)
|
|
|
|
|
|
refer mono_time only once in ratecheck(9).
|
|
|
|
|
|
From FreeBSD: eventually, we should replace hzto() with something
like tvtohz() as well.
|
|
The function and the argument never change.
|
|
|
|
ok art@
|
|
thus allowing an attacker to bypass the next check below. The cutoff is 1 year
before rollover occurs, so even if the attacker uses adjtime(2) to move the
time past the cutoff, it will take a very long time to get to the wrap point.
The actual check is tv_sec > INT_MAX - 365*24*60*60 because on 64 bit platforms
tv_sec is 64 bits but time_t is 32 bits. This will need to be changed some
time in the future when the size of time_t changes.
Add a printf when a user tries to turn the clock backwards and securelevel > 1
|
|
|