freebsd-skq/sys/amd64/include
John Baldwin 688ebe120c - Close races with signals and other AST's being triggered while we are in
the process of exiting the kernel.  The ast() function now loops as long
  as the PS_ASTPENDING or PS_NEEDRESCHED flags are set.  It returns with
  preemption disabled so that any further AST's that arrive via an
  interrupt will be delayed until the low-level MD code returns to user
  mode.
- Use u_int's to store the tick counts for profiling purposes so that we
  do not need sched_lock just to read p_sticks.  This also closes a
  problem where the call to addupc_task() could screw up the arithmetic
  due to non-atomic reads of p_sticks.
- Axe need_proftick(), aston(), astoff(), astpending(), need_resched(),
  clear_resched(), and resched_wanted() in favor of direct bit operations
  on p_sflag.
- Fix up locking with sched_lock some.  In addupc_intr(), use sched_lock
  to ensure pr_addr and pr_ticks are updated atomically with setting
  PS_OWEUPC.  In ast() we clear pr_ticks atomically with clearing
  PS_OWEUPC.  We also do not grab the lock just to test a flag.
- Simplify the handling of Giant in ast() slightly.

Reviewed by:	bde (mostly)
2001-08-10 22:53:32 +00:00
..
pc Add PCI BIOS function codes for IRQ routing fetch and route. 2000-10-19 08:02:46 +00:00
apicreg.h Remove constants defining the bitmasks of the old giant kernel lock. 2001-04-10 22:22:01 +00:00
asm.h Fixed the profiling version ALTENTRY(). Again. The previous version 2000-01-25 09:01:55 +00:00
asmacros.h Always use the ELF naming after the demise of asnames.h. 2001-02-25 07:23:03 +00:00
atomic.h RIP <machine/lock.h>. 2001-02-11 10:44:09 +00:00
bus_amd64.h Fix "alignemnt" typo. 2001-06-16 15:28:28 +00:00
bus_at386.h Fix "alignemnt" typo. 2001-06-16 15:28:28 +00:00
bus_dma.h Fix "alignemnt" typo. 2001-06-16 15:28:28 +00:00
bus_memio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus_pio.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
bus.h Added indirect pio into the bus space stuff for the NEC PC-98. bus.h 2000-03-29 03:15:22 +00:00
clock.h Move DELAY() from <machine/clock.h> to <sys/systm.h> 2000-10-15 09:51:49 +00:00
cpu.h - Close races with signals and other AST's being triggered while we are in 2001-08-10 22:53:32 +00:00
cpufunc.h Provide access to the IA32 hardware debug registers from the ddb 2001-06-28 02:08:13 +00:00
cputypes.h First shot at identifying the Pentum 4 acording to our reading of the 2000-09-29 04:38:35 +00:00
db_machdep.h Fix style bug: order includes 1999-10-04 13:55:35 +00:00
elf.h Use a machine dependent type, Elf_Hashelt, for the elements of the elf 2001-07-31 03:46:39 +00:00
exec.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
float.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
floatingpoint.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
fpu.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
frame.h Interrupt frames don't include the saved cpl anymore since cpl is dead. 2000-10-06 01:57:28 +00:00
ieeefp.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
in_cksum.h This is the first snapshot of the FreeBSD/ia64 kernel. This kernel will 2000-09-29 13:46:07 +00:00
legacyvar.h Get out the roto-rooter and clean up the abuse of nexus ivars by the 2000-09-28 00:37:32 +00:00
md_var.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
mptable.h - Do not handle the per-CPU containers in mbuf code as though the cpuids 2001-07-26 18:47:46 +00:00
mutex.h Properly wrap mtx_intr_enable() macro in "do $bla while (0)" 2001-06-02 08:17:42 +00:00
npx.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
pcb_ext.h - Use sched_lock and critical regions to ensure that LDT updates are thread 2001-05-10 17:03:03 +00:00
pcb.h The #define for pcb_savefpu seems to do more harm than good. 2001-07-12 12:48:08 +00:00
pci_cfgreg.h Add types and prototypes. 2000-10-16 19:49:30 +00:00
pcpu.h Overhaul of the SMP code. Several portions of the SMP kernel support have 2001-04-27 19:28:25 +00:00
pmap.h Increase NKPT from 17 to 30. This fixes the 4GB ram boot panic on both 2000-11-30 01:53:02 +00:00
proc.h Add a new MI pointer to the process' trapframe p_frame instead of using 2001-06-29 11:10:41 +00:00
profile.h Fix MCOUNT_ENTER() so it actually compiles in the profiling case. 2001-07-14 21:40:53 +00:00
psl.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ptrace.h Zap 'ptrace(PT_READ_U, ...)' and 'ptrace(PT_WRITE_U, ...)' since they 2001-08-08 05:25:15 +00:00
reg.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +00:00
reloc.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
resource.h * Implement bus_set/get/delete_resource for pci. 1999-10-14 21:38:33 +00:00
segments.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
setjmp.h Work around a bug by adding struct tags. gcc-2.95 apparently gets the 2000-10-06 11:53:32 +00:00
sigframe.h Fix type of sf_addr. 1999-12-04 10:40:24 +00:00
signal.h Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
smp.h Overhaul of the SMP code. Several portions of the SMP kernel support have 2001-04-27 19:28:25 +00:00
specialreg.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
sysarch.h Add a couple of debug register helper functions to assist in setting 2000-09-21 17:07:27 +00:00
trap.h Activate SSE/SIMD. This is the extra context switching support that 2001-07-12 06:32:51 +00:00
tss.h Declare or #define per-cpu globals in <machine/globals.h> in all cases. 2000-10-27 08:30:59 +00:00
ucontext.h Add a per-signal flag to mark handlers registered with osigaction, so we 1999-10-11 20:33:17 +00:00
varargs.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vmparam.h Make sysv-style shared memory tuneable params fully runtime adjustable 2000-03-30 07:17:05 +00:00