freebsd-src/sys/kern
John Baldwin 6c56727456 - Change fast interrupts on x86 to push a full interrupt frame and to
return through doreti to handle ast's.  This is necessary for the
  clock interrupts to work properly.
- Change the clock interrupts on the x86 to be fast instead of threaded.
  This is needed because both hardclock() and statclock() need to run in
  the context of the current process, not in a separate thread context.
- Kill the prevproc hack as it is no longer needed.
- We really need Giant when we call psignal(), but we don't want to block
  during the clock interrupt.  Instead, use two p_flag's in the proc struct
  to mark the current process as having a pending SIGVTALRM or a SIGPROF
  and let them be delivered during ast() when hardclock() has finished
  running.
- Remove CLKF_BASEPRI, which was #ifdef'd out on the x86 anyways.  It was
  broken on the x86 if it was turned on since cpl is gone.  It's only use
  was to bogusly run softclock() directly during hardclock() rather than
  scheduling an SWI.
- Remove the COM_LOCK simplelock and replace it with a clock_lock spin
  mutex.  Since the spin mutex already handles disabling/restoring
  interrupts appropriately, this also lets us axe all the *_intr() fu.
- Back out the hacks in the APIC_IO x86 cpu_initclocks() code to use
  temporary fast interrupts for the APIC trial.
- Add two new process flags P_ALRMPEND and P_PROFPEND to mark the pending
  signals in hardclock() that are to be delivered in ast().

Submitted by:	jakeb (making statclock safe in a fast interrupt)
Submitted by:	cp (concept of delaying signals until ast())
2000-10-06 02:20:21 +00:00
..
bus_if.m * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
device_if.m * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
genassym.sh Use "nm | awk ..." instead of genassym(1) to generate symbol value headers. 2000-06-02 09:27:48 +00:00
imgact_aout.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
imgact_elf.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
imgact_gzip.c useracc() the prequel: 1999-10-29 18:09:36 +00:00
imgact_shell.c Fix #! script exec under linux emulation. If a script is exec'd from a 2000-04-26 20:58:40 +00:00
inflate.c Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
init_main.c Release Giant before starting up init. 2000-09-15 19:25:29 +00:00
init_sysent.c Regen: fix prototypes for {o|}{g|s}etrlimit. 2000-08-28 07:56:38 +00:00
kern_acct.c Move the truncation code out of vn_open and into the open system call 2000-07-04 03:34:11 +00:00
kern_acl.c o Change locking rules for VOP_GETACL() to indicate that vnode locks 2000-09-21 18:43:32 +00:00
kern_cap.c o Add missing function return types from capability syscall call stubs, 2000-07-25 03:37:36 +00:00
kern_clock.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
kern_conf.c Rename lminor() to dev2unit(). This function gives a linear unit number 2000-09-19 10:28:44 +00:00
kern_descrip.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
kern_environment.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
kern_event.c o Centralize inter-process access control, introducing: 2000-08-30 04:49:09 +00:00
kern_exec.c Make size of dynamic loader argument variable to support 2000-09-26 05:09:21 +00:00
kern_exit.c Added used include of <sys/mutex.h> (don't depend on pollution in 2000-09-17 12:20:49 +00:00
kern_fork.c Enforce process limit policy in one place to keep proccnt from diverging 2000-09-14 23:07:39 +00:00
kern_idle.c - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
kern_intr.c - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
kern_jail.c o Modify jail to limit creation of sockets to UNIX domain sockets, 2000-06-04 04:28:31 +00:00
kern_kthread.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_ktr.c Add KTR, a facility that logs kernel events in order to to facilitate 2000-09-07 01:29:44 +00:00
kern_ktrace.c Add KTR, a facility that logs kernel events in order to to facilitate 2000-09-07 01:29:44 +00:00
kern_linker.c Add a workaround for statically linked kernels. 2000-10-04 17:40:24 +00:00
kern_lock.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
kern_lockf.c Commit the remaining part of PR14914: 1999-11-16 16:28:58 +00:00
kern_malloc.c Don't #include <sys/proc.h>, since machine/mutex.h does it now. 2000-09-23 00:01:37 +00:00
kern_mib.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
kern_module.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
kern_mutex.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
kern_ntptime.c Updates to the ntp pll from John Hay. 2000-09-10 09:13:34 +00:00
kern_physio.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
kern_proc.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_prot.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
kern_resource.c Add new line character to debugging printf's. 2000-09-18 17:03:03 +00:00
kern_shutdown.c Added used include of <sys/mutex.h> (don't depend on pollution in 2000-09-17 12:20:49 +00:00
kern_sig.c Unpessimized CURSIG(). The fast path through CURSIG() was broken in 2000-09-17 15:12:04 +00:00
kern_subr.c GC vax-only code 2000-09-14 16:51:47 +00:00
kern_switch.c Idle processes are always runnable, so let them state at SRUN. 2000-09-15 19:49:48 +00:00
kern_synch.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
kern_syscalls.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
kern_sysctl.c Fix some style nits. 2000-07-28 22:40:04 +00:00
kern_tc.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_threads.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
kern_time.c Remove unneeded <sys/buf.h> includes. 2000-04-18 15:15:39 +00:00
kern_timeout.c Restructure TCP timeout handling: 1999-08-30 21:17:07 +00:00
kern_xxx.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ksched.c Remove unneeded #include <sys/kernel.h> 2000-04-29 15:36:14 +00:00
link_aout.c Change the conditionaal so that we only build this on i386 instead of 2000-09-29 13:32:24 +00:00
link_elf.c Don't support dynamic linking on ia64 for now - the tools can't cope. 2000-09-29 13:34:04 +00:00
link_elf_obj.c Don't support dynamic linking on ia64 for now - the tools can't cope. 2000-09-29 13:34:04 +00:00
linker_if.m First round implementation of a fine grain enhanced module to module 2000-04-29 13:19:31 +00:00
Make.tags.inc Update tags directive to reflect the new location of soft updates 2000-07-04 00:18:43 +00:00
makedevops.pl Fix some bugs in user-end output and add a reference to the original 1999-11-22 14:40:04 +00:00
Makefile ${MACHINE} -> ${MACHINE_ARCH} 1999-11-14 13:54:44 +00:00
makeobjops.pl * Factor out the object system from new-bus so that it can be used by 2000-04-08 14:17:18 +00:00
makesyscalls.sh Change the 'exit()' system call to 'sys_exit()'. This avoids overlapping 2000-07-29 00:16:28 +00:00
md5c.c Add ia64 support. 2000-09-29 13:36:47 +00:00
p1003_1b.c Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
posix4_mib.c Add $FreeBSD$. 2000-04-22 15:13:06 +00:00
subr_acl_posix1e.c o Change locking rules for VOP_GETACL() to indicate that vnode locks 2000-09-21 18:43:32 +00:00
subr_autoconf.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
subr_blist.c Eliminate the undocumented, experimental, non-delivering and highly 2000-03-16 08:51:55 +00:00
subr_bus.c Initialize 'hints_loaded' to 0. 2000-09-17 23:57:52 +00:00
subr_clist.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
subr_devstat.c Support for unsigned integer and long sysctl variables. Update the 2000-07-05 07:46:41 +00:00
subr_disk.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
subr_disklabel.c Turn dkcksum() into an __inline function. 2000-09-16 13:43:00 +00:00
subr_diskmbr.c Separate the struct bio related stuff out of <sys/buf.h> into 2000-05-05 09:59:14 +00:00
subr_diskslice.c Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
subr_eventhandler.c Make the EVENTHANDLER mechanism MP-safe. Events can now be invoked 2000-09-22 03:17:35 +00:00
subr_kobj.c Add kobj_class_compile_static() to allow classes to be initialised 2000-08-28 21:11:12 +00:00
subr_log.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00
subr_module.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
subr_param.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
subr_prf.c Treat %X the same as %x (not entirely correct, but close enough). 2000-10-02 07:13:10 +00:00
subr_prof.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
subr_rman.c Replace all the ifdef debugging spaghetti with a single ifdef and 2000-05-03 00:20:36 +00:00
subr_scanf.c Change the prototype of the strto* routines to make the second 1999-11-24 01:03:08 +00:00
subr_smp.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
subr_taskqueue.c - Heavyweight interrupt threads on the alpha for device I/O interrupts. 2000-10-05 23:09:57 +00:00
subr_trap.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
subr_turnstile.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
subr_witness.c Remove the mtx_t, witness_t, and witness_blessed_t types. Instead, just 2000-09-14 20:15:16 +00:00
subr_xxx.c Remove five now unused fields from struct cdevsw. They should never 1999-09-25 18:24:47 +00:00
sys_generic.c Fix a warning that has been annoying me for some time: 2000-07-28 22:17:42 +00:00
sys_pipe.c Pipes are not writeable while a direct write is in progress. However, 2000-09-14 20:10:19 +00:00
sys_process.c o Centralize inter-process access control, introducing: 2000-08-30 04:49:09 +00:00
sys_socket.c Instead of just blindly setting -rw-rw-rw-: 2000-07-02 23:56:45 +00:00
syscalls.c Regen: fix prototypes for {o|}{g|s}etrlimit. 2000-08-28 07:56:38 +00:00
syscalls.master Fix prototypes for {o|}{g|s}etrlimit. A recent change in the 2000-08-28 07:50:44 +00:00
sysv_ipc.c Remove the undocumented, flawed, broken-as-designed semconfig() syscall. 2000-05-01 11:13:41 +00:00
sysv_msg.c Fully initialize msqids[]. This could lead to ENOSPC and other strange 2000-09-19 22:59:22 +00:00
sysv_sem.c Move the MSG* and SEM* options to opt_sysvipc.h 2000-05-01 13:33:56 +00:00
sysv_shm.c This is a cleanup patch to Peter's new OBJT_PHYS VM object type 2000-05-29 22:40:54 +00:00
tty.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
tty_compat.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
tty_conf.c Don't refer to TABLDISC in the comments here. 2000-01-30 10:14:13 +00:00
tty_cons.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
tty_pty.c Rename lminor() to dev2unit(). This function gives a linear unit number 2000-09-19 10:28:44 +00:00
tty_snoop.c Unstaticize this driver. You can have as many snoop devices as you can 2000-04-02 00:35:37 +00:00
tty_subr.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
tty_tty.c Add snapshots to the fast filesystem. Most of the changes support 2000-07-11 22:07:57 +00:00
uipc_accf.c Accept filter maintainance 2000-09-06 18:49:13 +00:00
uipc_domain.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
uipc_mbuf.c Big mbuf subsystem diff #1: incorporate mutexes and fix things up somewhat 2000-09-30 06:30:39 +00:00
uipc_mbuf2.c Replace the mbuf external reference counting code with something 2000-08-19 08:32:59 +00:00
uipc_proto.c Trim unused options (or #ifdef for undoc options). 1999-10-11 15:19:12 +00:00
uipc_sockbuf.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
uipc_socket.c Check so_error in filt_so{read|write} in order to detect UDP errors. 2000-09-28 04:41:22 +00:00
uipc_socket2.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
uipc_syscalls.c Add three new VOPs: VOP_CREATEVOBJECT, VOP_DESTROYVOBJECT and VOP_GETVOBJECT. 2000-09-12 09:49:08 +00:00
uipc_usrreq.c Remove uidinfo hash table lookup and maintenance out of chgproccnt() and 2000-09-05 22:11:13 +00:00
vfs_acl.c o Change locking rules for VOP_GETACL() to indicate that vnode locks 2000-09-21 18:43:32 +00:00
vfs_aio.c aio_qphysio: Eliminate one instance of an out-of-range check that is 2000-09-26 06:35:22 +00:00
vfs_bio.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vfs_cache.c Add new flag PDIRUNLOCK to the component.cn_flags which should be set by 2000-09-17 07:26:42 +00:00
vfs_cluster.c Virtualizes & untangles the bioops operations vector. 2000-06-16 08:48:51 +00:00
vfs_conf.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vfs_default.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vfs_export.c Style fixes based on comments by bde 2000-10-05 18:22:46 +00:00
vfs_extattr.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vfs_init.c Do not panic on an uninitialized VOP_xxx() call. This was meant as a 2000-09-06 17:51:54 +00:00
vfs_lookup.c Add new flag PDIRUNLOCK to the component.cn_flags which should be set by 2000-09-17 07:26:42 +00:00
vfs_mount.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vfs_subr.c Style fixes based on comments by bde 2000-10-05 18:22:46 +00:00
vfs_syscalls.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vfs_vnops.c Convert lockmgr locks from using simple locks to using mutexes. 2000-10-04 01:29:17 +00:00
vnode_if.pl remove crufty exec stuff, perl is in the base system 2000-06-27 19:09:55 +00:00
vnode_if.src o Change locking rules for VOP_GETACL() to indicate that vnode locks 2000-09-21 18:43:32 +00:00