freebsd-skq/sys/i386/i386
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
..
acpi_machdep.c Remove ACPI_NO_OSDFUNC_INLINE option from kernel configuration. Now 2000-10-01 08:17:47 +00:00
apic_vector.s - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
atomic.c Introduce atomic_cmpset_int() and atomic_cmpset_long() from SMPng a 2000-09-06 11:21:14 +00:00
autoconf.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
bios.c More updates to the ACPI code: 2000-09-30 20:12:27 +00:00
bioscall.s AT&T asm syntax requires a leading '*' in front of the operand for 2000-05-22 17:02:53 +00:00
busdma_machdep.c Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
db_disasm.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
db_interface.c Add KTR, a facility that logs kernel events in order to to facilitate 2000-09-07 01:29:44 +00:00
db_trace.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
elf_machdep.c Change incorrect NULLs to 0s 1999-12-21 11:14:12 +00:00
exception.s Remove an unnecessary sti and spl0() in fork_trampoline. Interrupts 2000-10-06 01:47:24 +00:00
genassym.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
globals.s - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
i386-gdbstub.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
i686_mem.c Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC, 2000-09-22 23:40:10 +00:00
identcpu.c Fill in some more missing bits from cpu_features according to the Intel 2000-09-29 04:53:00 +00:00
in_cksum.c Fix checksum calculations. This should fix the network problems 2000-05-07 16:41:15 +00:00
initcpu.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
k6_mem.c Rename macros to all-uppercase. Get rid of a comment that was ironic 2000-06-22 20:53:36 +00:00
legacy.c Fix the no-pci case of attaching isa, eisa and mca devices. 2000-10-01 09:34:55 +00:00
locore.s Be more careful about cleaning up the stack after function calls early 2000-09-13 14:08:50 +00:00
machdep.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
math_emu.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
math_emulate.c $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
mem.c Duh. Fix a fatfingered patch. 2000-06-25 19:06:48 +00:00
mp_clock.c Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC, 2000-09-22 23:40:10 +00:00
mp_machdep.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
mpapic.c Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC, 2000-09-22 23:40:10 +00:00
mpboot.s Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
mptable.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
nexus.c Fix the no-pci case of attaching isa, eisa and mca devices. 2000-10-01 09:34:55 +00:00
perfmon.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00
pmap.c Replace loadandclear() with atomic_readandclear_int(). 2000-10-05 22:22:31 +00:00
procfs_machdep.c Zap unneeded #includes 1999-10-11 14:50:03 +00:00
simplelock.s Commit major SMP cleanups and move the BGL (big giant lock) in the 2000-03-28 07:16:37 +00:00
support.s Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC, 2000-09-22 23:40:10 +00:00
swtch.s - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
symbols.raw $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
synch_machdep.c Fix spelling error ("exits" should be "exists"). 2000-10-04 01:20:49 +00:00
sys_machdep.c Remove the NCPU, NAPIC, NBUS, NINTR config options. Make NAPIC, 2000-09-22 23:40:10 +00:00
trap.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
tsc.c - Change fast interrupts on x86 to push a full interrupt frame and to 2000-10-06 02:20:21 +00:00
userconfig.c Previous commit changing SYSCTL_HANDLER_ARGS violated KNF. 2000-07-04 11:25:35 +00:00
vm86.c - Remove somewhat bogus handling of the Giant mutex in the vm86 code. 2000-10-05 20:27:45 +00:00
vm86bios.s - Remove somewhat bogus handling of the Giant mutex in the vm86 code. 2000-10-05 20:27:45 +00:00
vm_machdep.c Major update to the way synchronization is done in the kernel. Highlights 2000-09-07 01:33:02 +00:00