freebsd-src/sys/kern
Julian Elischer 48bfcddd94 Round out the facilty for a 'bound' thread to loan out its KSE
in specific situations. The owner thread must be blocked, and the
borrower can not proceed back to user space with the borrowed KSE.
The borrower will return the KSE on the next context switch where
teh owner wants it back. This removes a lot of possible
race conditions and deadlocks. It is consceivable that the
borrower should inherit the priority of the owner too.
that's another discussion and would be simple to do.

Also, as part of this, the "preallocatd spare thread" is attached to the
thread doing a syscall rather than the KSE. This removes the need to lock
the scheduler when we want to access it, as it's now "at hand".

DDB now shows a lot mor info for threaded proceses though it may need
some optimisation to squeeze it all back into 80 chars again.
(possible JKH project)

Upcalls are now "bound" threads, but "KSE Lending" now means that
other completing syscalls can be completed using that KSE before the upcall
finally makes it back to the UTS. (getting threads OUT OF THE KERNEL is
one of the highest priorities in the KSE system.) The upcall when it happens
will present all the completed syscalls to the KSE for selection.
2002-10-09 02:33:36 +00:00
..
bus_if.m Add two interfaces to allow for busses to report the pnpinfo for 2002-10-07 05:06:38 +00:00
clock_if.m
device_if.m
genassym.sh
imgact_aout.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_elf.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_elf32.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_elf64.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_elfN.c Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable 2002-07-20 02:56:12 +00:00
imgact_gzip.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
imgact_shell.c
inflate.c
init_main.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
init_sysent.c Let kse_wakeup() take a KSE mailbox pointer argument. 2002-10-02 16:48:16 +00:00
kern_acct.c Make sure that the accounting credential is saved along with the vp 2002-10-05 20:05:23 +00:00
kern_acl.c Introduce support for Mandatory Access Control and extensible 2002-08-01 01:04:16 +00:00
kern_alq.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_clock.c Give up on calling tc_ticktock() from a timeout, we have timeout 2002-09-04 10:15:19 +00:00
kern_condvar.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_conf.c Don't allow dev_stdclone(9) to accept minors larger than the system is 2002-10-05 17:10:28 +00:00
kern_descrip.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
kern_environment.c
kern_event.c hashinit() calls MALLOC(), so release the filedesc lock in knote_attach() 2002-10-03 06:03:26 +00:00
kern_exec.c Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
kern_exit.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_fork.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_idle.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_intr.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_jail.c The jail syscall calls chroot, which is not mpsafe, so put back a 2002-07-01 20:46:01 +00:00
kern_kse.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_kthread.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_ktr.c - Export the alq daemon thread pointer. 2002-09-26 07:38:56 +00:00
kern_ktrace.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
kern_linker.c In order to better support flexible and extensible access control, 2002-08-15 20:55:08 +00:00
kern_lock.c Include <sys/lockmgr.h> for the definitions of the locking interfaces that 2002-08-27 09:59:47 +00:00
kern_lockf.c Remove a conditional #include <sys/kernel.h>, it is already 2002-09-14 14:44:41 +00:00
kern_mac.c Integrate mac_check_socket_send() and mac_check_socket_receive() 2002-10-06 14:39:15 +00:00
kern_malloc.c - Split UMA_ZFLAG_OFFPAGE into UMA_ZFLAG_OFFPAGE and UMA_ZFLAG_HASH. 2002-09-18 08:26:30 +00:00
kern_mib.c Rename struct specinfo to the more appropriate struct cdev. 2002-09-27 18:27:10 +00:00
kern_module.c - Remove Giant acquisition from modevent(), modfnext(), modstat() and 2002-06-26 00:31:44 +00:00
kern_mtxpool.c
kern_mutex.c Rename the mutex thread and process states to use a more generic 'LOCK' 2002-10-02 20:31:47 +00:00
kern_ntptime.c
kern_physio.c More caddr_t removal, make fo_ioctl take a void * instead of a caddr_t. 2002-06-29 01:50:25 +00:00
kern_poll.c Increase size of ifnet.if_flags from 16 bits (short) to 32 bits (int). To avoid 2002-08-18 07:05:00 +00:00
kern_proc.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_prot.c Include file cleanup; mac.h and malloc.h at one point had ordering 2002-08-01 17:47:56 +00:00
kern_resource.c Change p_cpulimit to be in seconds instead of microseconds. Since 2002-09-30 21:08:38 +00:00
kern_sema.c
kern_shutdown.c Add ability to dump stacktraces on kernel panics when DDB is compiled into 2002-09-19 18:49:46 +00:00
kern_sig.c Fix mis-indentation. 2002-10-02 09:09:25 +00:00
kern_subr.c o Convert a vm_page_sleep_busy() into a vm_page_sleep_if_busy() 2002-08-04 06:27:37 +00:00
kern_switch.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_sx.c
kern_synch.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_syscalls.c
kern_sysctl.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
kern_tc.c Do not employ timecounter hardware if our hz does not support their 2002-09-04 19:32:18 +00:00
kern_thread.c Round out the facilty for a 'bound' thread to loan out its KSE 2002-10-09 02:33:36 +00:00
kern_time.c Round up instead of towards 0 in clock_getres() so that a resolution of 2002-09-25 12:00:38 +00:00
kern_timeout.c Fix a format buglet. 2002-09-05 11:42:03 +00:00
kern_uuid.c Include <sys/systm.h> for the declarations of many things instead of 2002-08-22 12:47:22 +00:00
kern_xxx.c more caddr_t removal. 2002-06-29 02:00:02 +00:00
ksched.c Completely redo thread states. 2002-09-11 08:13:56 +00:00
link_elf.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
link_elf_obj.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh Add the rest of the kernel support for the sem_ API in kern/uipc_sem.c. 2002-09-19 00:43:32 +00:00
md4c.c
md5c.c Bring sys/kern/md5c.c in sync with the userland version. 2002-06-24 14:15:25 +00:00
p1003_1b.c
posix4_mib.c Add the rest of the kernel support for the sem_ API in kern/uipc_sem.c. 2002-09-19 00:43:32 +00:00
subr_acl_posix1e.c Introduce support for Mandatory Access Control and extensible 2002-08-01 01:04:16 +00:00
subr_autoconf.c
subr_blist.c
subr_bus.c Introducing /dev/devctl. This device reports events in the 2002-10-07 23:17:44 +00:00
subr_clist.c
subr_clock.c Use the CPU_* OID constants instead of OID_AUTO for the clock-related 2002-08-07 19:43:54 +00:00
subr_devstat.c
subr_disk.c NB: This commit does *NOT* make GEOM the default in FreeBSD 2002-10-05 16:35:33 +00:00
subr_disklabel.c (This commit touches about 15 disk device drivers in a very consistent 2002-09-20 19:36:05 +00:00
subr_diskmbr.c Split MBR and PC98 on-disk sliceformats out from disklabel.h, step 1: 2002-10-01 07:24:55 +00:00
subr_diskslice.c Split MBR and PC98 on-disk sliceformats out from disklabel.h, step 1: 2002-10-01 07:24:55 +00:00
subr_eventhandler.c Wrap a line longer than 80 characters. 2002-07-19 17:44:44 +00:00
subr_hints.c
subr_kobj.c Convert hit and miss counters to unsigned values. Surely negative values 2002-06-10 22:40:26 +00:00
subr_log.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
subr_mbuf.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
subr_mchain.c Move m_fixhdr() from "mbchain" to "mbuf" where it belongs. 2002-09-18 13:41:37 +00:00
subr_module.c
subr_param.c Change hw.physmem and hw.usermem to unsigned long like they used to be 2002-08-30 04:04:37 +00:00
subr_pcpu.c
subr_power.c Use ISO 9X variadic macro format; arguments are not optional, just 2002-07-15 17:17:56 +00:00
subr_prf.c Change a return to a break so the local buffers get properly freeed. 2002-09-28 21:34:31 +00:00
subr_prof.c Don't #error if we are lint. 2002-10-01 13:15:11 +00:00
subr_rman.c Add debug.rman_debug sysctl MIB and loader tunable instead of broken 2002-09-05 11:45:02 +00:00
subr_rtc.c Use the CPU_* OID constants instead of OID_AUTO for the clock-related 2002-08-07 19:43:54 +00:00
subr_sbuf.c Add the new function "sbuf_done()" which returns non-zero if the sbuf is 2002-10-04 09:58:17 +00:00
subr_scanf.c Fix mis-indentation. 2002-10-02 09:09:25 +00:00
subr_smp.c Completely redo thread states. 2002-09-11 08:13:56 +00:00
subr_taskqueue.c If we fail to write to a vnode during a ktrace write, then we drop all 2002-08-01 13:35:38 +00:00
subr_trap.c Access td->td_kse inside sched_lock. 2002-10-02 18:25:09 +00:00
subr_turnstile.c Rename the mutex thread and process states to use a more generic 'LOCK' 2002-10-02 20:31:47 +00:00
subr_witness.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
subr_xxx.c
sys_generic.c Be consistent about "static" functions: if the function is marked 2002-09-28 17:15:38 +00:00
sys_pipe.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
sys_process.c Completely redo thread states. 2002-09-11 08:13:56 +00:00
sys_socket.c Integrate mac_check_socket_send() and mac_check_socket_receive() 2002-10-06 14:39:15 +00:00
syscalls.c Regen. 2002-10-01 02:37:35 +00:00
syscalls.master Let kse_wakeup() take a KSE mailbox pointer argument. 2002-10-02 16:48:16 +00:00
sysv_ipc.c
sysv_msg.c Make SYSVMSG mpsafe. Right now there is a global lock over the 2002-08-13 08:00:36 +00:00
sysv_sem.c Make SYSVSEM mpsafe. Each semaphore set gets its own lock, however 2002-08-13 08:47:17 +00:00
sysv_shm.c return foo -> return (foo) 2002-08-15 02:10:12 +00:00
tty.c In an SMP environment post-Giant it is no longer safe to blindly 2002-10-03 02:13:00 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Remove new console devices with cnremove before initializing them in 2002-08-06 18:56:41 +00:00
tty_pty.c
tty_subr.c
tty_tty.c Pass active_cred and file_cred into the MAC framework explicitly 2002-08-19 19:04:53 +00:00
uipc_accf.c
uipc_cow.c o Synchronize updates to struct vm_page::cow with the page queues lock. 2002-09-02 04:04:12 +00:00
uipc_domain.c
uipc_jumbo.c o Lock page queue accesses by vm_page_free(). 2002-07-21 19:06:46 +00:00
uipc_mbuf.c While well intentionned the check to see it there is a packet 2002-09-19 08:28:41 +00:00
uipc_mbuf2.c
uipc_proto.c
uipc_sem.c disable debug output by default. 2002-10-07 04:13:21 +00:00
uipc_sockbuf.c Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
uipc_socket.c Modify label allocation semantics for sockets: pass in soalloc's malloc 2002-10-05 21:23:47 +00:00
uipc_socket2.c Use m_length() instead of home-rolled versions. 2002-09-18 19:44:14 +00:00
uipc_syscalls.c Integrate mac_check_socket_send() and mac_check_socket_receive() 2002-10-06 14:39:15 +00:00
uipc_usrreq.c Introduce support for Mandatory Access Control and extensible 2002-08-01 01:18:42 +00:00
vfs_acl.c Introduce support for Mandatory Access Control and extensible 2002-08-01 01:04:16 +00:00
vfs_aio.c Some kernel threads try to do significant work, and the default KSTACK_PAGES 2002-10-02 07:44:29 +00:00
vfs_bio.c Remove unused includes. 2002-09-28 17:46:30 +00:00
vfs_cache.c Split up __getcwd so that kernel callers of the internal version 2002-09-02 22:40:30 +00:00
vfs_cluster.c - Use incore() where no other interlock locking is necessary. 2002-09-25 02:12:32 +00:00
vfs_default.c - Use the standard vp interlock macros. 2002-09-25 01:42:24 +00:00
vfs_export.c Partial backout of 1.318, remove error handling added because it may be 2002-06-30 05:23:58 +00:00
vfs_extattr.c Add back a fdrop() call at the end of kern_open() that got lost in 2002-10-07 20:49:22 +00:00
vfs_init.c We don't need to check the return value of malloc() against 2002-06-22 21:44:11 +00:00
vfs_lookup.c - Replace v_flag with v_iflag and v_vflag 2002-08-04 10:29:36 +00:00
vfs_mount.c - Don't protect mountedhere with the vn interlock. 2002-09-25 01:44:21 +00:00
vfs_subr.c Fix problem introduced in rev.1.406, which can cause already unlocked 2002-10-05 12:56:10 +00:00
vfs_syscalls.c Add back a fdrop() call at the end of kern_open() that got lost in 2002-10-07 20:49:22 +00:00
vfs_vnops.c Under DIAGNOSTIC, complain if ENOIOCTL leaks out through VOP_IOCTL(). 2002-09-26 21:21:13 +00:00
vnode_if.src - We don't need any automated lock checking for vop_islocked. 2002-09-26 00:31:16 +00:00