#
296373 |
|
04-Mar-2016 |
marius |
- Copy stable/10@296371 to releng/10.3 in preparation for 10.3-RC1 builds. - Update newvers.sh to reflect RC1. - Update __FreeBSD_version to reflect 10.3. - Update default pkg(8) configuration to use the quarterly branch.
Approved by: re (implicit) |
#
293473 |
|
09-Jan-2016 |
dchagin |
To facillitate an upcoming Linuxulator merging partially MFC r275121 (by kib). Only merge the syntax changes from r275121, PROC_*LOCK() macros still lock the same proc spinlock.
The process spin lock currently has the following distinct uses:
- Threads lifetime cycle, in particular, counting of the threads in the process, and interlocking with process mutex and thread lock. The main reason of this is that turnstile locks are after thread locks, so you e.g. cannot unlock blockable mutex (think process mutex) while owning thread lock.
- Virtual and profiling itimers, since the timers activation is done from the clock interrupt context. Replace the p_slock by p_itimmtx and PROC_ITIMLOCK().
- Profiling code (profil(2)), for similar reason. Replace the p_slock by p_profmtx and PROC_PROFLOCK().
- Resource usage accounting. Need for the spinlock there is subtle, my understanding is that spinlock blocks context switching for the current thread, which prevents td_runtime and similar fields from changing (updates are done at the mi_switch()). Replace the p_slock by p_statmtx and PROC_STATLOCK().
Discussed with: kib
|
#
278686 |
|
13-Feb-2015 |
ian |
MFC r277025: Fix an off-by-one in ppsratecheck().
|
#
277287 |
|
17-Jan-2015 |
dchagin |
MFC r276906:
Allow clock_getcpuclockid() on the CPU-time clock for zombie process. Posix does not prohibit this.
|
#
270042 |
|
16-Aug-2014 |
bz |
MFC r269669:
Split up sys_ktimer_getoverrun() into a sys_ and a kern_ variant and export the kern_ version needed by an upcoming linuxolator change.
Sponsored by: DARPA,AFRL
|
#
264821 |
|
23-Apr-2014 |
mav |
MFC r264550: Fix VIRTUAL and PROF interval timers for short intervals, broken at r247903.
Due to the way those timers are implemented, we can't handle very short intervals. In addition to that mentioned patch caused math overflows for short intervals. To avoid that round those intervals to 1 tick.
PR: kern/187668
|
#
256281 |
|
10-Oct-2013 |
gjb |
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
#
253530 |
|
21-Jul-2013 |
kib |
Implement compat32 wrappers for the ktimer_* syscalls.
Reported, reviewed and tested by: Petr Salinger <Petr.Salinger@seznam.cz> Sponsored by: The FreeBSD Foundation MFC after: 1 week
|
#
253494 |
|
20-Jul-2013 |
kib |
id_t is 64bit, provide the compat32 wrapper for clock_getcpuclockid2(2).
Reported and tested by: Petr Salinger <Petr.Salinger@seznam.cz> PR: threads/180652 Sponsored by: The FreeBSD Foundation
|
#
253325 |
|
13-Jul-2013 |
kib |
Allow to call clock_gettime() on the clock id for zombie process.
Reported by: Petr Salinger <Petr.Salinger@seznam.cz> PR: threads/180496 Sponsored by: The FreeBSD Foundation
|
#
248186 |
|
12-Mar-2013 |
mav |
Make kern_nanosleep() and pause_sbt() to use per-CPU sleep queues. This removes significant sleep queue lock congestion on multithreaded microbenchmarks, making them scale to multiple CPUs almost linearly.
|
#
247903 |
|
06-Mar-2013 |
mav |
Reduce minimal time intervals of setitimer(2) from 1/HZ to 1/(16*HZ) by using callout_reset_sbt() instead of callout_reset(). We can't remove lower limit completely in this case because of significant processing overhead, caused by unability to use direct callout execution due to using process mutex in callout handler for sending SEGALRM signal. With support of periodic events that would allow unprivileged user to abuse the system.
Reviewed by: davide
|
#
247898 |
|
06-Mar-2013 |
mav |
Fix time math overflows and improve zero intervals handling in poll(), select(), nanosleep() and kevent() functions after calloutng changes.
Reported by: bde
|
#
247797 |
|
04-Mar-2013 |
davide |
MFcalloutng: kern_nanosleep() is now converted to use tsleep_sbt(). With this change nanosleep() and usleep() can handle sub-tick precision for timeouts. Also, try to help coalesce of events passing as argument to tsleep_bt() a precision value calculated as a percentage of the sleep time. This percentage is default 5%, but it can tuned according to users need via the sysctl interface.
Sponsored by: Google Summer of Code 2012, iXsystems inc. Tested by: flo, marius, ian, markj, Fabian Keil
|
#
243869 |
|
04-Dec-2012 |
kib |
Fix a race between kern_setitimer() and realitexpire(), where the callout is started before kern_setitimer() acquires process mutex, but looses a race and kern_setitimer() gets the process mutex before the callout. Then, assuming that new specified struct itimerval has it_interval zero, but it_value non-zero, the callout, after it starts executing again, clears p->p_realtimer.it_value, but kern_setitimer() already rescheduled the callout.
As the result of the race, both p_realtimer is zero, and the callout is rescheduled. Then, in the exit1(), the exit code sees that it_value is zero and does not even try to stop the callout. This allows the struct proc to be reused and eventually the armed callout is re-initialized. The consequence is the corrupted callwheel tailq.
Use process mutex to interlock the callout start, which fixes the race.
Reported and tested by: pho Reviewed by: jhb MFC after: 2 weeks
|
#
239347 |
|
17-Aug-2012 |
davidxu |
Implement syscall clock_getcpuclockid2, so we can get a clock id for process, thread or others we want to support. Use the syscall to implement POSIX API clock_getcpuclock and pthread_getcpuclockid.
PR: 168417
|
#
225617 |
|
16-Sep-2011 |
kmacy |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls.
Reviewed by: rwatson Approved by: re (bz)
|
#
213642 |
|
09-Oct-2010 |
davidxu |
Create a global thread hash table to speed up thread lookup, use rwlock to protect the table. In old code, thread lookup is done with process lock held, to find a thread, kernel has to iterate through process and thread list, this is quite inefficient. With this change, test shows in extreme case performance is dramatically improved.
Earlier patch was reviewed by: jhb, julian
|
#
190888 |
|
10-Apr-2009 |
rwatson |
Remove VOP_LEASE and supporting functions. This hasn't been used since the removal of NQNFS, but was left in in case it was required for NFSv4. Since our new NFSv4 client and server can't use it for their requirements, GC the old mechanism, as well as other unused lease- related code and interfaces.
Due to its impact on kernel programming and binary interfaces, this change should not be MFC'd.
Proposed by: jeff Reviewed by: jeff Discussed with: rmacklem, zach loafman @ isilon
|
#
190301 |
|
23-Mar-2009 |
cperciva |
Correctly sanity-check timer IDs. [SA-09:06]
Limit the size of malloced buffer when dumping environment variables. [EN-09:01]
Approved by: so (cperciva) Approved by: re (kensmith) Security: FreeBSD-SA-09:06.ktimer Errata: FreeBSD-EN-09:01.kenv
|
#
189074 |
|
26-Feb-2009 |
ed |
Remove even more unneeded variable assignments.
kern_time.c: - Unused variable `p'.
kern_thr.c: - Variable `error' is always caught immediately, so no reason to initialize it. There is no way that error != 0 at the end of create_thread().
kern_sig.c: - Unused variable `code'.
kern_synch.c: - `rval' is always assigned in all different cases.
kern_rwlock.c: - `v' is always overwritten with RW_UNLOCKED further on.
kern_malloc.c: - `size' is always initialized with the proper value before being used.
kern_exit.c: - `error' is always caught and returned immediately. abort2() never returns a non-zero value.
kern_exec.c: - `len' is always assigned inside the if-statement right below it.
tty_info.c: - `td' is always overwritten by FOREACH_THREAD_IN_PROC().
Found by: LLVM's scan-build
|
#
184067 |
|
20-Oct-2008 |
davidxu |
In realtimer_delete(), clear timer's value and interval to tell realtimer_expire() to not rearm the timer, otherwise there is a chance that a callout will be left there and be tiggered in future unexpectly.
Bug reported by: tegge@
|
#
175439 |
|
18-Jan-2008 |
davidxu |
Make sure reading td_runtime in critical section since thread may be preempted and td_runtime will be modified.
|
#
175429 |
|
18-Jan-2008 |
davidxu |
Add POSIX clock id CLOCK_THREAD_CPUTIME_ID, this can be used to measure per-thread runtime in user code.
|
#
170472 |
|
09-Jun-2007 |
attilio |
rufetch and calcru sometimes should be called atomically together. This patch fixes places where they should be called atomically changing their locking requirements (both assume per-proc spinlock held) and introducing rufetchcalc which wrappers both calls to be performed in atomic way.
Reviewed by: jeff Approved by: jeff (mentor)
|
#
170307 |
|
05-Jun-2007 |
jeff |
Commit 14/14 of sched_lock decomposition. - Use thread_lock() rather than sched_lock for per-thread scheduling sychronization. - Use the per-process spinlock rather than the sched_lock for per-process scheduling synchronization.
Tested by: kris, current@ Tested on: i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc. Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
|
#
168951 |
|
22-Apr-2007 |
rwatson |
Remove MAC Framework access control check entry points made redundant with the introduction of priv(9) and MAC Framework entry points for privilege checking/granting. These entry points exactly aligned with privileges and provided no additional security context:
- mac_check_sysarch_ioperm() - mac_check_kld_unload() - mac_check_settime() - mac_check_system_nfsd()
Add mpo_priv_check() implementations to Biba and LOMAC policies, which, for each privilege, determine if they can be granted to processes considered unprivileged by those two policies. These mostly, but not entirely, align with the set of privileges granted in jails.
Obtained from: TrustedBSD Project
|
#
167232 |
|
05-Mar-2007 |
rwatson |
Further system call comment cleanup:
- Remove also "MP SAFE" after prior "MPSAFE" pass. (suggested by bde) - Remove extra blank lines in some cases. - Add extra blank lines in some cases. - Remove no-op comments consisting solely of the function name, the word "syscall", or the system call name. - Add punctuation. - Re-wrap some comments.
|
#
167211 |
|
04-Mar-2007 |
rwatson |
Remove 'MPSAFE' annotations from the comments above most system calls: all system calls now enter without Giant held, and then in some cases, acquire Giant explicitly.
Remove a number of other MPSAFE annotations in the credential code and tweak one or two other adjacent comments.
|
#
164713 |
|
28-Nov-2006 |
davidxu |
- Remove third parameter of itimer_find, the parameter is always zero. - Call callout_drain on deleting POSIX timer. - Use kern_timer_delete in exiting hook.
|
#
164184 |
|
11-Nov-2006 |
trhodes |
Merge posix4/* into normal kernel hierarchy.
Reviewed by: glanced at by jhb Approved by: silence on -arch@ and -standards@
|
#
164033 |
|
06-Nov-2006 |
rwatson |
Sweep kernel replacing suser(9) calls with priv(9) calls, assigning specific privilege names to a broad range of privileges. These may require some future tweaking.
Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net>
|
#
163606 |
|
22-Oct-2006 |
rwatson |
Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h begun with a repo-copy of mac.h to mac_framework.h. sys/mac.h now contains the userspace and user<->kernel API and definitions, with all in-kernel interfaces moved to mac_framework.h, which is now included across most of the kernel instead.
This change is the first step in a larger cleanup and sweep of MAC Framework interfaces in the kernel, and will not be MFC'd.
Obtained from: TrustedBSD Project Sponsored by: SPARTA
|
#
162960 |
|
02-Oct-2006 |
phk |
Move tz_minuteswest and tz_dsttime to subr_clock.c
|
#
162954 |
|
02-Oct-2006 |
phk |
First part of a little cleanup in the calendar/timezone/RTC handling.
Move relevant variables to <sys/clock.h> and fix #includes as necessary.
Use libkern's much more time- & spamce-efficient BCD routines.
|
#
161302 |
|
15-Aug-2006 |
netchild |
- Change process_exec function handlers prototype to include struct image_params arg. - Change struct image_params to include struct sysentvec pointer and initialize it. - Change all consumers of process_exit/process_exec eventhandlers to new prototypes (includes splitting up into distinct exec/exit functions). - Add eventhandler to userret.
Sponsored by: Google SoC 2006 Submitted by: rdivacky Parts suggested by: jhb (on hackers@)
|
#
160910 |
|
02-Aug-2006 |
davidxu |
INT_MAX is defined in file sys/limits.h, include the file now.
|
#
156134 |
|
01-Mar-2006 |
davidxu |
Let kernel POSIX timer code and mqueue code to use integer as a resource handle, the timer_t and mqd_t types will be a pointer which userland will define it.
|
#
153267 |
|
09-Dec-2005 |
davidxu |
Fix compiling warning on 64 bits system.
|
#
153259 |
|
09-Dec-2005 |
davidxu |
Register itimers_event_hook as a kernel event handler, so I don't have to duplicate code to call it in exec() and exit1().
|
#
152983 |
|
01-Dec-2005 |
davidxu |
1. Set timer configuration values for sysconf(). 2. Set overrun limit to INT_MAX, report ERANGE error if overrun will be greater than INT_MAX.
|
#
152844 |
|
27-Nov-2005 |
rwatson |
Add several aliases for existing clockid_t names to indicate that the application wishes to request high precision time stamps be returned:
Alias Existing
CLOCK_REALTIME_PRECISE CLOCK_REALTIME CLOCK_MONOTONIC_PRECISE CLOCK_MONOTONIC CLOCK_UPTIME_PRECISE CLOCK_UPTIME
Add experimental low-precision clockid_t names corresponding to these clocks, but implemented using cached timestamps in kernel rather than a full time counter query. This offers a minimum update rate of 1/HZ, but in practice will often be more frequent due to the frequency of time stamping in the kernel:
New clockid_t name Approximates existing clockid_t
CLOCK_REALTIME_FAST CLOCK_REALTIME CLOCK_MONOTONIC_FAST CLOCK_MONOTONIC CLOCK_UPTIME_FAST CLOCK_UPTIME
Add one additional new clockid_t, CLOCK_SECOND, which returns the current second without performing a full time counter query or cache lookup overhead to make sure the cached timestamp is stable. This is intended to support very low granularity consumers, such as time(3).
The names, visibility, and implementation of the above are subject to change, and will not be MFC'd any time soon. The goal is to expose lower quality time measurement to applications willing to sacrifice accuracy in performance critical paths, such as when taking time stamps for the purpose of rescheduling select() and poll() timeouts. Future changes might include retrofitting the time counter infrastructure to allow the "fast" time query mechanisms to use a different time counter, rather than a cached time counter (i.e., TSC).
NOTE: With different underlying time mechanisms exposed, using different time query mechanisms in the same application may result in relative non-monoticity or the appearance of clock stalling for a single clockid_t, as a cached time stamp queried after a precision time stamp lookup may be "before" the time returned by the earlier live time counter query.
|
#
152585 |
|
18-Nov-2005 |
andre |
Add CLOCK_UPTIME to clock_gettime(2) reporting the current uptime measured in SI seconds.
Sponsored by: TCP/IP Optimization Fundraise 2005
|
#
152029 |
|
04-Nov-2005 |
davidxu |
Fix name compatible problem with POSIX standard. the sigval_ptr and sigval_int really should be sival_ptr and sival_int. Also sigev_notify_function accepts a union sigval value but not a pointer.
|
#
151993 |
|
03-Nov-2005 |
davidxu |
Cleanup some signal interfaces. Now the tdsignal function accepts both proc pointer and thread pointer, if thread pointer is NULL, tdsignal automatically finds a thread, otherwise it sends signal to given thread. Add utility function psignal_event to send a realtime sigevent to a process according to the delivery requirement specified in struct sigevent.
|
#
151869 |
|
30-Oct-2005 |
davidxu |
Let itimer store itimerspec instead of itimerval, so I don't have to convert to or from timeval frequently.
Introduce function itimer_accept() to ack a timer signal in signal acceptance code, this allows us to return more fresh overrun counter than at signal generating time. while POSIX says: "the value returned by timer_getoverrun() shall apply to the most recent expiration signal delivery or acceptance for the timer,.." I prefer returning it at acceptance time.
Introduce SIGEV_THREAD_ID notification mode, it is used by thread libary to request kernel to deliver signal to a specified thread, and in turn, the thread library may use the mechanism to implement SIGEV_THREAD which is required by POSIX.
Timer signal is managed by timer code, so it can not fail even if signal queue is full filled by sigqueue syscall.
|
#
151595 |
|
23-Oct-2005 |
davidxu |
Don't touch last overrun if signal was already on queue.
|
#
151585 |
|
23-Oct-2005 |
davidxu |
Make p_itimers as a pointer, so file sys/proc.h does not need to include sys/timers.h.
|
#
151576 |
|
23-Oct-2005 |
davidxu |
Implement POSIX timers. Current only CLOCK_REALTIME and CLOCK_MONOTONIC clock are supported. I have plan to merge XSI timer ITIMER_REAL and other two CPU timers into the new code, current three slots are available for the XSI timers. The SIGEV_THREAD notification type is not supported yet because our sigevent struct lacks of two member fields: sigev_notify_function sigev_notify_attributes I have found the sigevent is used in AIO, so I won't add the two members unless the AIO code is adjusted.
|
#
151357 |
|
15-Oct-2005 |
ps |
Implement 32bit wrappers for clock_gettime, clock_settime, and clock_getres.
|
#
144445 |
|
31-Mar-2005 |
jhb |
Implement kern_adjtime(), kern_readv(), kern_sched_rr_get_interval(), kern_settimeofday(), and kern_writev() to allow for further stackgap reduction in the compat ABIs.
|
#
141483 |
|
07-Feb-2005 |
jhb |
If the pointer to the new itimerval is NULL in kern_setitimer(), just read the old value via kern_getitimer().
|
#
141470 |
|
07-Feb-2005 |
jhb |
Various and sundry style fixes.
|
#
140832 |
|
25-Jan-2005 |
sobomax |
Split out kernel side of {get,set}itimer(2) into two parts: the first that pops data from the userland and pushes results back and the second which does actual processing. Use the latter to eliminate stackgap in the linux wrappers of those syscalls.
MFC after: 2 weeks
|
#
140483 |
|
19-Jan-2005 |
ps |
move kern_nanosleep to sys/syscallsubr.h
Requested by: jhb
|
#
140481 |
|
19-Jan-2005 |
ps |
- rename nanosleep1 to kern_nanosleep - Add a 32bit syscall entry for nanosleep
Reviewed by: peter Obtained from: Yahoo!
|
#
139804 |
|
06-Jan-2005 |
imp |
/* -> /*- for copyright notices, minor format tweaks as necessary
|
#
136152 |
|
05-Oct-2004 |
jhb |
Rework how we store process times in the kernel such that we always store the raw values including for child process statistics and only compute the system and user timevals on demand.
- Fix the various kern_wait() syscall wrappers to only pass in a rusage pointer if they are going to use the result. - Add a kern_getrusage() function for the ABI syscalls to use so that they don't have to play stackgap games to call getrusage(). - Fix the svr4_sys_times() syscall to just call calcru() to calculate the times it needs rather than calling getrusage() twice with associated stackgap, etc. - Add a new rusage_ext structure to store raw time stats such as tick counts for user, system, and interrupt time as well as a bintime of the total runtime. A new p_rux field in struct proc replaces the same inline fields from struct proc (i.e. p_[isu]ticks, p_[isu]u, and p_runtime). A new p_crux field in struct proc contains the "raw" child time usage statistics. ruadd() has been changed to handle adding the associated rusage_ext structures as well as the values in rusage. Effectively, the values in rusage_ext replace the ru_utime and ru_stime values in struct rusage. These two fields in struct rusage are no longer used in the kernel. - calcru() has been split into a static worker function calcru1() that calculates appropriate timevals for user and system time as well as updating the rux_[isu]u fields of a passed in rusage_ext structure. calcru() uses a copy of the process' p_rux structure to compute the timevals after updating the runtime appropriately if any of the threads in that process are currently executing. It also now only locks sched_lock internally while doing the rux_runtime fixup. calcru() now only requires the caller to hold the proc lock and calcru1() only requires the proc lock internally. calcru() also no longer allows callers to ask for an interrupt timeval since none of them actually did. - calcru() now correctly handles threads executing on other CPUs. - A new calccru() function computes the child system and user timevals by calling calcru1() on p_crux. Note that this means that any code that wants child times must now call this function rather than reading from p_cru directly. This function also requires the proc lock. - This finishes the locking for rusage and friends so some of the Giant locks in exit1() and kern_wait() are now gone. - The locking in ttyinfo() has been tweaked so that a shared lock of the proctree lock is used to protect the process group rather than the process group lock. By holding this lock until the end of the function we now ensure that the process/thread that we pick to dump info about will no longer vanish while we are trying to output its info to the console.
Submitted by: bde (mostly) MFC after: 1 month
|
#
130884 |
|
21-Jun-2004 |
kbyanc |
Update previous commit to: * Obtain/release schedlock around calls to calcru. * Sort switch cases which do not cascade per style(9). * Sort local variables per style(9). * Remove "superfluous" whitespace. * Cleanup handling of NULL uap->tp in clock_getres(). It would probably be better to return EFAULT like clock_gettime() does by passing the pointer to copyout(), but I presume it was written to not fail on purpose in the original code. I'll defer to -standards on this one.
Reported by: bde
|
#
130654 |
|
17-Jun-2004 |
kbyanc |
Implement CLOCK_VIRTUAL and CLOCK_PROF for clock_gettime(2) and clock_getres(2).
Reviewed by: phk PR: 23304
|
#
127911 |
|
05-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
#
121523 |
|
26-Oct-2003 |
alfred |
constify the second args to timevaladd() and timevalsub().
|
#
116182 |
|
11-Jun-2003 |
obrien |
Use __FBSDID().
|
#
116123 |
|
09-Jun-2003 |
jhb |
Wait for the real interval timer callout handler to finish executing if it is currently executing when we try to remove it in exit1(). Without this, it was possible for the callout to bogusly rearm itself and eventually refire after the process had been free'd resulting in a panic.
PR: kern/51964 Reported by: Jilles Tjoelker <jilles@stack.nl> Reviewed by: tegge, bde
|
#
114980 |
|
13-May-2003 |
jhb |
In setitimer(2), if the it_value of the new itimer value is clear, then don't add the current time to it, but leave it as clear so that when the timer is disabled, the it_value is always clear.
Reviewed by: bde Approved by: re (rwatson)
|
#
111558 |
|
26-Feb-2003 |
sam |
o fix ppsratecheck to interpret a maxpps of zero as "ignore everything" o add a comment explaining the significance of using 0 or -1 (actually any negative value) for maxpps
|
#
111315 |
|
23-Feb-2003 |
phk |
OK, I was too sleepy there...
Pointy hat over here!
|
#
111300 |
|
23-Feb-2003 |
phk |
Implement CLOCK_MONOTONIC.
|
#
111161 |
|
20-Feb-2003 |
cognet |
Remove duplicate includes.
Submitted by: Cyril Nguyen-Huu <cyril@ci0.org>
|
#
111034 |
|
17-Feb-2003 |
tjr |
Use the proc lock to protect p_realtimer instead of Giant, and obtain sched_lock around accesses to p_stats->p_timer[] to avoid a potential race with hardclock. getitimer(), setitimer() and the realitexpire() callout are now Giant-free.
|
#
110299 |
|
03-Feb-2003 |
phk |
Split the global timezone structure into two integer fields to prevent the compiler from optimizing assignments into byte-copy operations which might make access to the individual fields non-atomic.
Use the individual fields throughout, and don't bother locking them with Giant: it is no longer needed.
Inspired by: tjr
|
#
110288 |
|
03-Feb-2003 |
tjr |
No need to lock Giant around call to nanosleep1() in nanosleep().
|
#
110286 |
|
03-Feb-2003 |
tjr |
Avoid holding Giant across copyout() in gettimeofday() and getitimer().
|
#
109528 |
|
19-Jan-2003 |
tjr |
Remove unnecessary locking of Giant around nanotime() in clock_gettime().
|
#
109521 |
|
19-Jan-2003 |
alfred |
useracc() is mpsafe so we only need to hold Giant over the call to nanosleep1()
Pointed out by: tjr
|
#
108511 |
|
31-Dec-2002 |
sam |
o reduce the overhead of calling ppsratecheck by using ticks instead of calling getmicrouptime (but maintain the struct timeval-based calling convention for compatibility) o eliminate the use of timersub in ratecheck
Note that flood ping tests indicate ppsratecheck is inaccurate (but on the conservative side) with this revised implementation. If more accuracy is needed we'll have to introduce an alternate interface or increase the overhead.
Reviewed by: silby, dillon, bde
|
#
108142 |
|
20-Dec-2002 |
sam |
add generic rate limiting support from netbsd; ratelimit is purely time based, ppsratecheck is for controlling packets/second
Obtained from: netbsd
|
#
107849 |
|
14-Dec-2002 |
alfred |
SCARGS removal take II.
|
#
107839 |
|
13-Dec-2002 |
alfred |
Backout removal SCARGS, the code freeze is only "selectively" over.
|
#
107838 |
|
13-Dec-2002 |
alfred |
Remove SCARGS.
Reviewed by: md5
|
#
106369 |
|
03-Nov-2002 |
rwatson |
Introduce mac_check_system_settime(), a MAC check allowing policies to augment the system policy for changing the system time.
Obtained from: TrustedBSD Project Sponsored by: DARPA, Network Associates Laboratories
|
#
103964 |
|
25-Sep-2002 |
bde |
Round up instead of towards 0 in clock_getres() so that a resolution of 0 is never returned.
PR: 41781 MFC after: 3 days
|
#
102074 |
|
18-Aug-2002 |
phk |
A side effect of some debugging: prototypify and deregister.
|
#
99012 |
|
29-Jun-2002 |
alfred |
more caddr_t removal.
|
#
95529 |
|
26-Apr-2002 |
phk |
Hide the private parts of timecounter from a couple of places that don't really need to know the gory details.
|
#
94754 |
|
15-Apr-2002 |
phk |
Improve the implementation of adjtime(2).
Apply the change as a continuous slew rather than as a series of discrete steps and make it possible to adjust arbitraryly huge amounts of time in either direction.
In practice this is done by hooking into the same once-per-second loop as the NTP PLL and setting a suitable frequency offset deducting the amount slewed from the remainder. If the remaining delta is larger than 1 second we slew at 5000PPM (5msec/sec), for a delta less than a second we slew at 500PPM (500usec/sec) and for the last one second period we will slew at whatever rate (less than 500PPM) it takes to eliminate the delta entirely.
The old implementation stepped the clock a number of microseconds every HZ to acheive the same effect, using the same rates of change.
Eliminate the global variables tickadj, tickdelta and timedelta and their various use and initializations.
This removes the most significant obstacle to running timecounter and NTP housekeeping from a timeout rather than hardclock.
|
#
94343 |
|
10-Apr-2002 |
jhb |
- Change settime() to take a thread as its first argument instead of a proc so it can use td_ucred. - Push Giant down into the end of settime() where we actually set the time on the timecounter and time of day clock. - Remove Giant from clock_settime(). - Push Giant down in settimeofday() to just protect the 'tz' global variable.
|
#
93593 |
|
01-Apr-2002 |
jhb |
Change the suser() API to take advantage of td_ucred as well as do a general cleanup of the API. The entire API now consists of two functions similar to the pre-KSE API. The suser() function takes a thread pointer as its only argument. The td_ucred member of this thread must be valid so the only valid thread pointers are curthread and a few kernel threads such as thread0. The suser_cred() function takes a pointer to a struct ucred as its first argument and an integer flag as its second argument. The flag is currently only used for the PRISON_ROOT flag.
Discussed on: smp@
|
#
92723 |
|
19-Mar-2002 |
alfred |
Remove __P.
|
#
90836 |
|
18-Feb-2002 |
phk |
Take the common case of gettimeofday(&tv, NULL) out from under Giant.
|
#
83969 |
|
26-Sep-2001 |
rwatson |
o Modify static settime() to accept the proc * for the process requesting a time change, and callers so that they provide td->td_proc. o Modify settime() to use securevel_gt() for securelevel checking.
Obtained from: TrustedBSD Project
|
#
83366 |
|
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
#
82746 |
|
01-Sep-2001 |
dillon |
Giant Pushdown
clock_gettime() clock_settime() nanosleep() settimeofday() adjtime() getitimer() setitimer() __sysctl() ogetkerninfo() sigaction() osigaction() sigpending() osigpending() osigvec() osigblock() osigsetmask() sigsuspend() osigsuspend() osigstack() sigaltstack() kill() okillpg() trapsignal() nosys()
|
#
76166 |
|
01-May-2001 |
markm |
Undo part of the tangle of having sys/lock.h and sys/mutex.h included in other "system" header files.
Also help the deprecation of lockmgr.h by making it a sub-include of sys/lock.h and removing sys/lockmgr.h form kernel .c files.
Sort sys/*.h includes where possible in affected files.
OK'ed by: bde (with reservations)
|
#
73916 |
|
07-Mar-2001 |
jhb |
Lock the process while sending it SIGARLM and updating p_realtimer.
|
#
69286 |
|
27-Nov-2000 |
jake |
Use callout_reset instead of timeout(9). Most callouts are statically allocated, 2 have been added to struct proc for setitimer and sleep.
Reviewed by: jhb, jlemon
|
#
59368 |
|
18-Apr-2000 |
phk |
Remove unneeded <sys/buf.h> includes.
Due to some interesting cpp tricks in lockmgr, the LINT kernel shrinks by 924 bytes.
|
#
58377 |
|
20-Mar-2000 |
phk |
Isolate the Timecounter internals in their own two files.
Make the public interface more systematically named.
Remove the alternate method, it doesn't do any good, only ruins performance.
Add counters to profile the usage of the 8 access functions.
Apply the beer-ware to my code.
The weird +/- counts are caused by two repocopies behind the scenes: kern/kern_clock.c -> kern/kern_tc.c sys/time.h -> sys/timetc.h (thanks peter!)
|
#
52644 |
|
30-Oct-1999 |
phk |
Change useracc() and kernacc() to use VM_PROT_{READ|WRITE|EXECUTE} for the "rw" argument, rather than hijacking B_{READ|WRITE}.
Fix two bugs (physio & cam) resulting by the confusion caused by this.
Submitted by: Tor.Egge@fast.no Reviewed by: alc, ken (partly)
|
#
50477 |
|
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
48274 |
|
27-Jun-1999 |
peter |
Minor tweaks to make sure (new) prerequisites for <sys/buf.h> (mostly splbio()/splx()) are #included in time.
|
#
46112 |
|
27-Apr-1999 |
phk |
Suser() simplification:
1: s/suser/suser_xxx/
2: Add new function: suser(struct proc *), prototyped in <sys/proc.h>.
3: s/suser_xxx(\([a-zA-Z0-9_]*\)->p_ucred, \&\1->p_acflag)/suser(\1)/
The remaining suser_xxx() calls will be scrutinized and dealt with later.
There may be some unneeded #include <sys/cred.h>, but they are left as an exercise for Bruce.
More changes to the suser() API will come along with the "jail" code.
|
#
45438 |
|
07-Apr-1999 |
nsayer |
More secure clock management. Allow positive steps only once per second for as much as one second, but no more. Allows a miscreant to double-time march the clock, but no worse.
XXX Unlike putting negative deltas in a while(1), performing small positive steps inside of a while(1) will return EPERM for the unpermitted ones. Repeated negative deltas are clamped without error (but the kernel does log a notice).
|
#
45437 |
|
07-Apr-1999 |
mjacob |
Fix last delta so file would compile again- I think I got it right. Add a clarifying (to me at least) comment. Some formatting fixes.
|
#
45433 |
|
07-Apr-1999 |
nsayer |
If securelevel>1, allow the clock to be adjusted negatively only up to 1 second prior to the highest the clock has run so far. This allows time adjusters like xntpd to do their work, but the worst a miscreant can do is "freeze" the clock, not go back in time.
We still need to decide on an algorithm to clamp positive adjustments. As it stands, it is possible to achieve arbitrary negative adjustments by "wrapping" time around.
PR: 10361
|
#
44272 |
|
25-Feb-1999 |
bde |
Added a used #include (don't depend on "vnode_if.h" including <sys/buf.h>).
|
#
43301 |
|
27-Jan-1999 |
dillon |
Fix warnings in preparation for adding -Wall -Wcast-qual to the kernel compile
|
#
40648 |
|
25-Oct-1998 |
phk |
Nitpicking and dusting performed on a train. Removes trivial warnings about unused variables, labels and other lint.
|
#
36810 |
|
09-Jun-1998 |
phk |
Add a tc_ prefix to struct timecounter members.
Urged by: bde
|
#
36128 |
|
17-May-1998 |
bde |
Fixed interval calculation in realitimexpire() again. Obtained from: rev.1.9. Broken in: rev.1.50.
Fixed a spelling error. Obtained from: Lite2.
|
#
36127 |
|
17-May-1998 |
bde |
Fixed stale references to hzto() in comments.
|
#
36119 |
|
17-May-1998 |
phk |
s/nanoruntime/nanouptime/g s/microruntime/microuptime/g
Reviewed by: bde
|
#
36035 |
|
14-May-1998 |
peter |
Nuke signanosleep(). (I've left nanosleep1() seperate to nanosleep() as I don't want to mess with the multiple returns)
|
#
36032 |
|
14-May-1998 |
peter |
Commit an old change that has been sitting around for a long while. signanosleep() did not deal with signal masks properly. This change was based on a discussion with bde some time ago (at least 6 months or more).
signanosleep() should probably go away since it was never really used for more than a few weeks and doesn't appear in released code. It should probably be killed before somebody uses it and it becomes a gratuitous nonstandard feature.
|
#
35058 |
|
06-Apr-1998 |
phk |
Make a kernel version of the timer* functions called timerval* to be more consistent.
OK'ed by: bde
|
#
35045 |
|
05-Apr-1998 |
phk |
More fixes for the iterative case of nanosleep1 from bruce. I hate the 2-arg time{spec|val}{add|sub} functions!
|
#
35044 |
|
05-Apr-1998 |
phk |
Make the dummy timecounter run at 1 MHz rather than 100kHz (noticed by bde) fix the itimer(REAL) handling.
|
#
35043 |
|
05-Apr-1998 |
peter |
If there is no error code, don't copyout the remaining time. (As documented in the man page and the standards). (and besides, nanosleep1 isn't setting it in this case at present anyway, so we'd be copying junk).
|
#
35042 |
|
05-Apr-1998 |
phk |
Fix nanosleep1 based on Bruces suggestion.
|
#
35040 |
|
05-Apr-1998 |
peter |
tsleep() returns EWOULDBLOCK if the timeout expired. Don't return this to usermode, otherwise sleep(3) fails, cron doesn't work, etc etc etc.
|
#
35033 |
|
04-Apr-1998 |
phk |
Handle double fraction overflow in nano & microtime functions (spotted by Bruce) Use tvtohz() a place where it fits.
|
#
35029 |
|
04-Apr-1998 |
phk |
Time changes mark 2:
* Figure out UTC relative to boottime. Four new functions provide time relative to boottime.
* move "runtime" into struct proc. This helps fix the calcru() problem in SMP.
* kill mono_time.
* add timespec{add|sub|cmp} macros to time.h. (XXX: These may change!)
* nanosleep, select & poll takes long sleeps one day at a time
Reviewed by: bde Tested by: ache and others
|
#
34961 |
|
30-Mar-1998 |
phk |
Eradicate the variable "time" from the kernel, using various measures. "time" wasn't a atomic variable, so splfoo() protection were needed around any access to it, unless you just wanted the seconds part.
Most uses of time.tv_sec now uses the new variable time_second instead.
gettime() changed to getmicrotime(0.
Remove a couple of unneeded splfoo() protections, the new getmicrotime() is atomic, (until Bruce sets a breakpoint in it).
A couple of places needed random data, so use read_random() instead of mucking about with time which isn't random.
Add a new nfs_curusec() function.
Mark a couple of bogosities involving the now disappeard time variable.
Update ffs_update() to avoid the weird "== &time" checks, by fixing the one remaining call that passwd &time as args.
Change profiling in ncr.c to use ticks instead of time. Resolution is the same.
Add new function "tvtohz()" to avoid the bogus "splfoo(), add time, call hzto() which subtracts time" sequences.
Reviewed by: bde
|
#
34901 |
|
26-Mar-1998 |
phk |
Add two new functions, get{micro|nano}time.
They are atomic, but return in essence what is in the "time" variable. gettime() is now a macro front for getmicrotime().
Various patches to use the two new functions instead of the various hacks used in their absence.
Some puntuation and grammer patches from Bruce.
A couple of XXX comments.
|
#
33818 |
|
25-Feb-1998 |
bde |
Fixed the calculation of `delta' in settime(). We once set all times consistently wrong (up to 1 tick too late), but recent changes fixed the setting of the main clock, making other times inconsistent. The inconsistencies tended to show up as a negative resource usage for the process that set the time.
Fixed the check for setting the clock backwards. A stale timestamp (`time') was checked, so it was possible to set the clock backwards by up to almost 1 tick. Until recently, this bug was compensated for by setting the clock consistently wrong.
Merged the comment about setting the clock backwards from Lite2.
Removed latency micro-optimizations/speed pessimizations in settime(). microtime() and set_timecounter() are relatively expensive, and they must be called together with clock updates blocked to get a consistent `delta', so significant latency optimizations are not possible.
Removed some stale comments.
|
#
33690 |
|
20-Feb-1998 |
phk |
Replace TOD clock code with more systematic approach.
Highlights: * Simple model for underlying hardware. * Hardware basis for timekeeping can be changed on the fly. * Only one hardware clock responsible for TOD keeping. * Provides a real nanotime() function. * Time granularity: .232E-18 seconds. * Frequency granularity: .238E-12 s/s * Frequency adjustment is continuous in time. * Less overhead for frequency adjustment. * Improves xntpd performance.
Reviewed by: bde, bde, bde
|
#
31016 |
|
07-Nov-1997 |
phk |
Remove a bunch of variables which were unused both in GENERIC and LINT.
Found by: -Wunused
|
#
30994 |
|
06-Nov-1997 |
phk |
Move the "retval" (3rd) parameter from all syscall functions and put it in struct proc instead.
This fixes a boatload of compiler warning, and removes a lot of cruft from the sources.
I have not removed the /*ARGSUSED*/, they will require some looking at.
libkvm, ps and other userland struct proc frobbing programs will need recompiled.
|
#
30739 |
|
26-Oct-1997 |
phk |
Simplify the lease_check stuff.
|
#
30606 |
|
20-Oct-1997 |
ache |
Fix returned sleep period for large values Submitted by: bde
|
#
30440 |
|
15-Oct-1997 |
peter |
Sigh. Signal handlers are executed on leaving the system call, not at moment of delivery. Restoring the signal mask after the tsleep() is next to useless since the signal is still queued.. This was interacting with usleep(3) on receipt of a SIGALRM causing it to near busy loop.
Now, we set the new signal mask "permanently" for signanosleep().
Problem noted by: bde
|
#
29680 |
|
21-Sep-1997 |
gibbs |
init_main.c subr_autoconf.c: Add support for "interrupt driven configuration hooks". A component of the kernel can register a hook, most likely during auto-configuration, and receive a callback once interrupt services are available. This callback will occur before the root and dump devices are configured, so the configuration task can affect the selection of those two devices or complete any tasks that need to be performed prior to launching init. System boot is posponed so long as a hook is registered. The hook owner is responsible for removing the hook once their task is complete or the system boot can continue.
kern_acct.c kern_clock.c kern_exit.c kern_synch.c kern_time.c: Change the interface and implementation for the kernel callout service. The new implemntaion is based on the work of Adam M. Costello and George Varghese, published in a technical report entitled "Redesigning the BSD Callout and Timer Facilities". The interface used in FreeBSD is a little different than the one outlined in the paper. The new function prototypes are:
struct callout_handle timeout(void (*func)(void *), void *arg, int ticks);
void untimeout(void (*func)(void *), void *arg, struct callout_handle handle);
If a client wishes to remove a timeout, it must store the callout_handle returned by timeout and pass it to untimeout.
The new implementation gives 0(1) insert and removal of callouts making this interface scale well even for applications that keep 100s of callouts outstanding.
See the updated timeout.9 man page for more details.
|
#
29041 |
|
02-Sep-1997 |
bde |
Removed unused #includes.
|
#
28773 |
|
26-Aug-1997 |
bde |
Don't return EINVAL for negative timespecs in the nanosleep functions. Negative timespecs are perfectly valid. Just return 0 immediately for them. Also, return 0 immediately for zero timespecs.
Fixed some style bugs.
|
#
28213 |
|
14-Aug-1997 |
ache |
setitimer: if it_value == 0 clear it_interval now non-zero it_interval values have no sense if it_value == 0 but checked by itimerfix which may cause EINVAL return
|
#
28171 |
|
13-Aug-1997 |
ache |
Bypass itimerfix 100000000 limit in nanosleep1 using loop through timeouts
|
#
27855 |
|
03-Aug-1997 |
bde |
Fixed syscall arg checking in clock_settime(). Stack garbage was checked to be >= 0. This bug was introduced in rev.1.26.
Reported by: John Hay <jhay@mikom.csir.co.za>
|
#
26897 |
|
24-Jun-1997 |
jhay |
Add tickadj to struct clockinfo, like NetBSD and OpenBSD. NOTE: libc, time, kgmon and rpc.rstatd will have to be recompiled.
|
#
26336 |
|
01-Jun-1997 |
peter |
oops, fix a braino that I noticed during the commit.. Don't verify the remaining time pointer if it's NULL, since we don't write back in that case! (*blush*!)
|
#
26335 |
|
01-Jun-1997 |
peter |
- implement signanosleep(2) by moving common code from nanosleep() into a shared function. - use p->p_sleepend to try and get more accurate "time remaining" results when the time has been adjusted. - verify writeability of return address so that we can fail before sleeping if the address for the result is bogus.
|
#
25656 |
|
10-May-1997 |
peter |
Fixes from Bruce: Serious: - An important timevalfix() in settime[ofday]() was lost.
Not so serious: - There was a race initializing `delta' in the check for setting the time backwards. - The `#ifdef notyet' check for setting the time more than a day forwards was back to front. [[I deleted the code, it's useless because of iteration - Peter]] - The timespec was not checked for validity in clock_settime(). - The timespec was not fully checked for validity in nanotime(). The check in itimerfix() is too late, since the conversion from a timespec to a timeval may overflow. - A garbage timeval was checked in settimeofday() for the (uap->tv == NULL && uap->tzp != NULL) case. I added the broken check this some time ago.
Cosmetic: - The "inadvertantly (sic) sleeping forever" test always failed. hzto() always returns >= 1. - The style wasn't very KNFish. (I only changed new code.)
Submitted by: bde
|
#
25646 |
|
10-May-1997 |
brian |
Pay attention to what Bruce actually says rather than what I think he's going to say. (Now undoing the last timerval change)
Really suggested by: bde
|
#
25643 |
|
10-May-1997 |
brian |
Don't require that it_interval be valid if it_value is set to zero - as per documentation.
Suggested by: ache & bde
|
#
25583 |
|
08-May-1997 |
peter |
Implementation of posix-style clock_* and nanosleep syscalls as implemented in NetBSD. The core of settimeofday() is moved to a seperate static function settime() which both clock_settime() and settimeofday() call.
Note that I picked up the securelevel > 1 check from NetBSD that prevents the clock being set backwards in high securelevel mode (this was a hole that allowed resetting of inode access timestamps to arbitary values)
Obtained from: mostly from NetBSD, but the settime() function is from our gettimeofday(), some tweaks by me.
|
#
24102 |
|
22-Mar-1997 |
bde |
Removed `volatile' from declaration of `time', and removed the resulting null casts. `time' is nonvolatile for accesses within a region locked by splclock()/splx(). Accesses outside such a region are invalid, and splx() must have the side effect of potentially changing all global variables (since there are hundreds of sort of volatile variables like `time'), so declaring `time' as volatile didn't have any real benefits.
|
#
22975 |
|
22-Feb-1997 |
peter |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
22521 |
|
10-Feb-1997 |
dyson |
This is the kernel Lite/2 commit. There are some requisite userland changes, so don't expect to be able to run the kernel as-is (very well) without the appropriate Lite/2 userland changes.
The system boots and can mount UFS filesystems.
Untested: ext2fs, msdosfs, NFS Known problems: Incorrect Berkeley ID strings in some files. Mount_std mounts will not work until the getfsent library routine is changed.
Reviewed by: various people Submitted by: Jeffery Hsu <hsu@freebsd.org>
|
#
21673 |
|
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
18582 |
|
30-Sep-1996 |
julian |
if we jump the time, we need to check all the process real interval timers.
|
#
17123 |
|
12-Jul-1996 |
bde |
Use a big delta in adjtime() for big negative adjustments as well as for big positive adjustments. The existence of big adjustments may be a bug (it's not documented...) but there was no good reason for the asymmetric behaviour.
Reviewed by: wollman
|
#
16223 |
|
08-Jun-1996 |
bde |
Updated some comments in settimeofday().
|
#
15117 |
|
07-Apr-1996 |
bde |
Removed never-used #includes of <machine/cpu.h>. Many were apparently copied from bad examples.
|
#
13016 |
|
26-Dec-1995 |
bde |
Finished staticizing of timevalfix().
|
#
12819 |
|
14-Dec-1995 |
phk |
A Major staticize sweep. Generates a couple of warnings that I'll deal with later. A number of unused vars removed. A number of unused procs removed or #ifdefed.
|
#
12381 |
|
19-Nov-1995 |
bde |
Fixed settimeofday(): - don't allow invalid timevals. - normalize timevals as they are built - don't call timevaladd() with a possibly invalid timeval and normalize the result.
Fixed a warning.
|
#
12221 |
|
12-Nov-1995 |
bde |
Included <sys/sysproto.h> to get central declarations for syscall args structs and prototypes for syscalls.
Ifdefed duplicated decentralized declarations of args structs. It's convenient to have this visible but they are hard to maintain. Some are already different from the central declarations. 4.4lite2 puts them in comments in the function headers but I wanted to avoid the large changes for that.
|
#
9369 |
|
29-Jun-1995 |
dg |
Killed "TIMEZONE" and "DST" options. They have been forced to 0 by config for more than a year now. Moved the declaration of 'tz' into kern_time.c.
|
#
9327 |
|
26-Jun-1995 |
bde |
The pessimistic rounding in hzto() was too pessimistic for realitimexpire().
|
#
8876 |
|
30-May-1995 |
rgrimes |
Remove trailing whitespace.
|
#
7090 |
|
16-Mar-1995 |
bde |
Add and move declarations to fix all of the warnings from `gcc -Wimplicit' (except in netccitt, netiso and netns) and most of the warnings from `gcc -Wnested-externs'. Fix all the bugs found. There were no serious ones.
|
#
6365 |
|
14-Feb-1995 |
phk |
YFfix.
|
#
3308 |
|
02-Oct-1994 |
phk |
All of this is cosmetic. prototypes, #includes, printfs and so on. Makes GCC a lot more silent.
|
#
3098 |
|
25-Sep-1994 |
phk |
While in the real world, I had a bad case of being swapped out for a lot of cycles. While waiting there I added a lot of the extra ()'s I have, (I have never used LISP to any extent). So I compiled the kernel with -Wall and shut up a lot of "suggest you add ()'s", removed a bunch of unused var's and added a couple of declarations here and there. Having a lap-top is highly recommended. My kernel still runs, yell at me if you kernel breaks.
|
#
1817 |
|
02-Aug-1994 |
dg |
Added $Id$
|
#
1549 |
|
25-May-1994 |
rgrimes |
The big 4.4BSD Lite to FreeBSD 2.0.0 (Development) patch.
Reviewed by: Rodney W. Grimes Submitted by: John Dyson and David Greenman
|
#
1542 |
|
24-May-1994 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r1541, which included commits to RCS files with non-trunk default branches.
|
#
1541 |
|
24-May-1994 |
rgrimes |
BSD 4.4 Lite Kernel Sources
|