freebsd-nq/sys/kern
John Baldwin 78a1485fd1 Fixes for alpha pmap on SMP machines:
- Create a private list of active pmaps rather than abusing the list of all
  processes when we need to look up pmaps.  The process list needs a sx lock
  and we can't be getting sx locks in the middle of cpu_switch()
  (pmap_activate() can call pmap_get_asn() from cpu_switch()).  Instead, we
  protect the list with a spinlock.  This also means the list is shorter
  since a pmap can be used by more than one process and we could (at least
  in thoery) dink with pmap's more than once, but now we only touch each
  pmap once when we have to update all of them.
- Wrap pmap_activate()'s code to get a new ASN in an explicit critical section
  so that when it is called while doing an exec() we can't get preempted.
- Replace splhigh() in pmap_growkernel() with a critical section to prevent
  preemption while we are adjusting the kernel page tables.
- Fixes abuse of PCPU_GET(), which doesn't return an L-value.
- Also adds some slight cleanups to the ASN handling by adding some macros
  instead of magic numbers in relation to the ASN and ASN generations.

Reviewed by:	dfr
2002-02-06 04:30:26 +00:00
..
bus_if.m Alter the return value and arguments of the GET_RESOURCE_LIST bus method. 2000-11-28 06:49:15 +00:00
device_if.m
genassym.sh brace by itself after function declaration. 2001-12-27 20:16:21 +00:00
imgact_aout.c Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
imgact_elf.c Remove whitespace at end of line. 2001-12-16 17:21:16 +00:00
imgact_gzip.c Make MAXTSIZ, DFLDSIZ, MAXDSIZ, DFLSSIZ, MAXSSIZ, SGROWSIZ loader 2001-10-10 23:06:54 +00:00
imgact_shell.c Return a more meaningful errno when the length of the interpreter 2001-11-28 03:26:58 +00:00
inflate.c
init_main.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
init_sysent.c Regenerate to make osigreturn standard. 2002-02-01 17:41:45 +00:00
kern_acct.c o Move suser() calls in kern/ to using suser_xxx() with an explicit 2001-11-01 20:56:57 +00:00
kern_acl.c o Scatter vn_start_write() and vn_finished_write() through ACL code so 2002-02-04 17:58:15 +00:00
kern_cap.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_clock.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_condvar.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_conf.c Add a new sysinit SI_SUB_DEVFS. Devfs hooks into the kernel at SI_ORDER_FIRST, 2002-01-09 04:58:49 +00:00
kern_descrip.c Remove bogus assertion in dup2 that can lead to panics when kernel 2002-02-01 19:25:36 +00:00
kern_environment.c Fix an inverted test csae. Success of getenv() is determined by a return 2001-10-25 17:22:31 +00:00
kern_event.c Add entry for EVFILT_NETDEV, which was inadverdently omitted back in Sept. 2002-01-24 17:20:55 +00:00
kern_exec.c o Call the functions registered with at_exec() from exec_new_vmspace() 2002-01-13 19:36:35 +00:00
kern_exit.c Fix a race with free'ing vmspaces at process exit when vmspaces are 2002-02-05 21:23:05 +00:00
kern_fork.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
kern_idle.c Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
kern_intr.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_jail.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_kthread.c Use a different mechanism to get the vnlru process to wake up and notice 2001-12-19 01:31:12 +00:00
kern_ktr.c Print parm6 too in the !KTR_EXTEND case. 2002-01-01 21:47:38 +00:00
kern_ktrace.c Fix ktrace enablement/disablement races that can result in a vnode 2001-10-24 01:05:39 +00:00
kern_linker.c - Ensure that linker file id's are unique, rather than blindly 2001-11-18 18:19:35 +00:00
kern_lock.c Fix a BUF_TIMELOCK race against BUF_LOCK and fix a deadlock in vget() 2001-12-20 22:42:27 +00:00
kern_lockf.c make LOCKF_DEBUG kernel option work (sorta) 2001-12-02 12:47:25 +00:00
kern_malloc.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
kern_mib.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_module.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
kern_mtxpool.c cast hashing index to (int)(intptr_t) for calculation. 2001-11-19 00:20:36 +00:00
kern_mutex.c Bump the limits for determining if we've held a spinlock too long as they 2002-01-15 14:20:33 +00:00
kern_ntptime.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
kern_physio.c
kern_poll.c Complete the device polling support by adding a thread in charge 2001-12-19 00:53:24 +00:00
kern_proc.c Fix a bug where the mutex name wasn't always displayed for processes in 2002-01-05 17:18:59 +00:00
kern_prot.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
kern_random.c This patchset fixes a large number of file descriptor race conditions. 2000-11-18 21:01:04 +00:00
kern_resource.c use mutex pool mutexes for uidinfo locking. 2002-01-20 22:48:49 +00:00
kern_sema.c Repeat after me -- "Use of ANSI string concatenation can be bad." 2001-12-10 05:40:12 +00:00
kern_shutdown.c Allow dump device be configured as early as possible using loader(8) tunable. 2002-01-21 01:16:11 +00:00
kern_sig.c o Revert kern_sig.c#1.143, as cr_cansignal() doesn't currently permit 2002-01-10 01:25:35 +00:00
kern_subr.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_switch.c Modify the critical section API as follows: 2001-12-18 00:27:18 +00:00
kern_sx.c Invert the test of sx_xholder for SX_LOCKED. We need to warn if a 2002-01-18 09:21:15 +00:00
kern_synch.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
kern_syscalls.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
kern_sysctl.c Add code to export and print the description associated to sysctl 2001-12-16 02:55:41 +00:00
kern_tc.c Let the number of timecounters follow hz, otherwise people with 2002-02-05 20:44:56 +00:00
kern_time.c o Modify static settime() to accept the proc * for the process requesting 2001-09-26 19:53:57 +00:00
kern_timeout.c Move most of the kernel submap initialization code, including the 2001-08-22 04:07:27 +00:00
kern_xxx.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
ksched.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
link_aout.c Since we used '#ifdef __i386__', don't close with '#endif /* !__alpha__ */' 2001-11-24 10:11:14 +00:00
link_elf_obj.c Fix a number of misspellings of "dependency" and "dependencies" in 2001-11-16 21:08:40 +00:00
link_elf.c Fix a number of misspellings of "dependency" and "dependencies" in 2001-11-16 21:08:40 +00:00
linker_if.m Add the sysctl "kern.function_list", which currently exports all 2001-10-30 15:21:45 +00:00
Make.tags.inc Update pathnames for creation of tags file. 2001-12-05 01:23:21 +00:00
Makefile Don't generate <sys/syscalls-hide.h> it has never had any users anywhere in 2001-10-13 09:17:49 +00:00
makeobjops.pl Switch warnings and strict back on again in a way that's compatible 2001-11-16 02:02:42 +00:00
makesyscalls.sh Oops, fix previous commit to not generate a C comment in syscall.mk. 2002-01-30 15:12:12 +00:00
md4c.c Import kernel part of SMB/CIFS requester. 2001-04-10 07:59:06 +00:00
md5c.c Add ia64 support. 2000-09-29 13:36:47 +00:00
p1003_1b.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
posix4_mib.c
subr_acl_posix1e.c o Scatter vn_start_write() and vn_finished_write() through ACL code so 2002-02-04 17:58:15 +00:00
subr_autoconf.c
subr_blist.c With Alfred's permission, remove vm_mtx in favor of a fine-grained approach 2001-07-04 16:20:28 +00:00
subr_bus.c Fixed an apparent typo ("-" before ":") and an English error (comma 2001-12-28 18:32:13 +00:00
subr_clist.c Make cblock_alloc_cblocks() spell its own name 2001-03-27 10:21:26 +00:00
subr_devstat.c Export the head structure for the device statistics STAILQ in 2001-08-04 18:02:47 +00:00
subr_disk.c Don't call cdevsw_add(). 2001-11-04 11:56:22 +00:00
subr_disklabel.c Fix typo so that the delay code introduced in revision 1.60 actually 2002-01-12 02:04:15 +00:00
subr_diskmbr.c Wrap Dangerously Dedicated printf under if (bootverbose) 2001-12-11 05:35:43 +00:00
subr_diskslice.c Uninlined most of the bloated inline functions in <sys/disklabel.h>. Some 2002-01-17 18:33:18 +00:00
subr_eventhandler.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
subr_hints.c Fix a fatal type mismatch (char *static_env; vs char static_env[]). 2001-09-17 21:27:41 +00:00
subr_kobj.c Convert more malloc+bzero to malloc+M_ZERO. 2000-12-08 21:51:06 +00:00
subr_log.c Use the passed in thread to selrecord() instead of curthread. 2001-09-21 22:46:54 +00:00
subr_mbuf.c On the first day of Christmas bde gave to me: 2001-12-23 22:04:08 +00:00
subr_mchain.c Update to C99, s/__FUNCTION__/__func__/. 2001-12-10 05:51:45 +00:00
subr_module.c Preceed/preceeding are not english words. Use precede and preceding. 2001-02-18 10:43:53 +00:00
subr_param.c Allow the kern.maxusers boot tuneable to be set to 0 (previously only 2002-02-06 01:19:19 +00:00
subr_pcpu.c Add a per-cpu variable, cpumask, the preshifted equivalent of 1 << cpuid. 2002-01-05 09:35:50 +00:00
subr_power.c Some fix for the recent apm module changes. 2001-11-01 16:34:07 +00:00
subr_prf.c - Attempt to help declutter kern. sysctl by moving security out from 2002-01-16 06:55:30 +00:00
subr_prof.c - Change all callers of addupc_task() to check PS_PROFIL explicitly and 2001-12-18 09:06:10 +00:00
subr_rman.c Add a rman_reserve_resource_bound() function that takes an additional 2001-12-21 21:40:55 +00:00
subr_sbuf.c Yet a bug with extensible sbufs being marked as OVERFLOWED. This time 2002-01-24 20:57:56 +00:00
subr_scanf.c
subr_smp.c Fix forward_roundrobin(). It was mistakenly using the cpu number as 2002-01-05 09:38:47 +00:00
subr_taskqueue.c Change the preemption code for software interrupt thread schedules and 2002-01-05 08:47:13 +00:00
subr_trap.c Changed the type of pcb_flags from u_char to u_int and adjusted things. 2002-01-17 17:49:23 +00:00
subr_turnstile.c Bump the limits for determining if we've held a spinlock too long as they 2002-01-15 14:20:33 +00:00
subr_witness.c Fixes for alpha pmap on SMP machines: 2002-02-06 04:30:26 +00:00
subr_xxx.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
sys_generic.c Remove unused variables in select(2) from previous delta. 2002-01-30 19:48:25 +00:00
sys_pipe.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
sys_process.c Move procfs_* from procfs_machdep.c into sys_process.c, and rename them to 2001-10-21 23:57:24 +00:00
sys_socket.c SMP Lock struct file, filedesc and the global file list. 2002-01-13 11:58:06 +00:00
syscalls.c Regenerate to make osigreturn standard. 2002-02-01 17:41:45 +00:00
syscalls.master Made osigreturn(2) standard so that SYS_osigreturn can be used in the 2002-02-01 17:27:14 +00:00
sysv_ipc.c Eliminate semexit_hook using at_exit(9) and rm_at_exit(9). 2001-12-30 18:55:09 +00:00
sysv_msg.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
sysv_sem.c Eliminate semexit_hook using at_exit(9) and rm_at_exit(9). 2001-12-30 18:55:09 +00:00
sysv_shm.c Make AIO a loadable module. 2001-12-29 07:13:47 +00:00
tty_compat.c
tty_conf.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
tty_cons.c Fix boot -p for DDBless kernels 2001-12-11 10:21:26 +00:00
tty_pty.c o Move suser() calls in kern/ to using suser_xxx() with an explicit 2001-11-01 20:56:57 +00:00
tty_subr.c Make cblock_alloc_cblocks() spell its own name 2001-03-27 10:21:26 +00:00
tty_tty.c KSE Milestone 2 2001-09-12 08:38:13 +00:00
tty.c utime/stime.tv_sec are elapsed times, not relative to 1970. We can 2001-11-17 00:26:57 +00:00
uipc_accf.c Revert the last bits of my bogus move of NMBCLUSTERS 2001-06-01 21:47:34 +00:00
uipc_domain.c Update the comment about System initialization to reflect the use of 2001-12-08 04:20:54 +00:00
uipc_mbuf2.c Sync with recent KAME. 2001-06-11 12:39:29 +00:00
uipc_mbuf.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_proto.c Implement a LOCAL_PEERCRED socket option which returns a 2001-08-17 22:01:18 +00:00
uipc_sockbuf.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_socket2.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_socket.c Get rid of the twisted MFREE() macro entirely. 2002-02-05 02:00:56 +00:00
uipc_syscalls.c Fixed bug in calculation of amount of file to send when nbytes !=0 and 2002-01-22 17:32:10 +00:00
uipc_usrreq.c Remove a bogus FILEDESC_UNLOCK. 2002-01-14 19:45:03 +00:00
vfs_acl.c o Scatter vn_start_write() and vn_finished_write() through ACL code so 2002-02-04 17:58:15 +00:00
vfs_aio.c o Remove the unused vestiges of JOBST_JOBQPROC and 2002-01-20 18:59:58 +00:00
vfs_bio.c GC P_BUFEXHAUST leftovers, we've had a new mechanism to avoid buffer 2002-01-31 18:39:44 +00:00
vfs_cache.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
vfs_cluster.c Implement IO_NOWDRAIN and B_NOWDRAIN - prevents the buffer cache from blocking 2001-11-05 18:48:54 +00:00
vfs_conf.c Remove the use of _PATH_DEV in the example. 2001-11-24 01:34:12 +00:00
vfs_default.c Fix incorrect double-termination of vm_object. When a vm_object is 2001-10-23 01:23:41 +00:00
vfs_export.c Fix some signed/unsigned integer confusion, and add bounds checking of 2001-09-10 11:28:07 +00:00
vfs_extattr.c Don't recurse on filedesc lock in chroot_refuse_vdir_fds(). 2002-02-01 18:27:16 +00:00
vfs_init.c Revert consequences of changes to mount.h, part 2. 2001-04-29 02:45:39 +00:00
vfs_lookup.c Include sys/_lock.h and sys/_mutex.h to reduce namespace pollution. 2002-01-13 21:37:49 +00:00
vfs_mount.c Remove the use of _PATH_DEV in the example. 2001-11-24 01:34:12 +00:00
vfs_subr.c In the routines vrele() and vput(), we must lock the vnode and 2002-02-02 01:49:18 +00:00
vfs_syscalls.c Don't recurse on filedesc lock in chroot_refuse_vdir_fds(). 2002-02-01 18:27:16 +00:00
vfs_vnops.c Make st_blksize default to PAGE_SIZE instead of zero. 2002-01-25 16:39:57 +00:00
vnode_if.pl Throw the $FreeBSD$s back in, properly escaping them. 2002-01-04 05:27:47 +00:00
vnode_if.src KSE Milestone 2 2001-09-12 08:38:13 +00:00