freebsd-skq/sys/kern
davidxu 7e0ecb5345 Introduce two flags to control upcall behaviour:
o KMF_NOUPCALL
	Ask kse_release to not return to userland upcall entry, but instead
	direct returns to userland by using current thread's stack and return
	address on stack. This flags is intended to be used by UTS in critical
	region to wait another UTS thread to leave critical region, by using
	kse_release with this flag to avoid spinnng and burning CPU. Also this
	flags can be used by UTS to poll completed context when there is nothing
	to do in userland and needn't restart from its entry like normal upcall.

o KMF_NOCOMPLETED
	Ask kernel to not bring completed thread contexts back to userland when
	doing upcall, this flags is intend to be used with above flag when an
	upcall thread is in critical region and can not process completed contexts
	at that time.

Tested by: deischen
2003-04-21 07:27:59 +00:00
..
bus_if.m Give print_child a default method. 2003-03-25 04:32:52 +00:00
clock_if.m Add a generic implementation of inittodr() and resettodr(), as well as 2002-04-04 23:39:10 +00:00
device_if.m
genassym.sh
imgact_aout.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
imgact_elf32.c Improve the way that an elf image activator for an alternate word size is 2003-01-04 22:07:48 +00:00
imgact_elf64.c Improve the way that an elf image activator for an alternate word size is 2003-01-04 22:07:48 +00:00
imgact_elf.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
imgact_gzip.c Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
imgact_shell.c Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
inflate.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
init_main.c Made vmspace0 non-static. Its useful to be able to identify a vmspace as 2003-04-13 21:29:11 +00:00
init_sysent.c Regen. 2003-04-09 02:57:29 +00:00
kern_acct.c Hold the proc lock across a wider range of fields that it protects. 2003-04-17 22:20:30 +00:00
kern_acl.c Bow to the whining masses and change a union back into void *. Retain 2003-01-13 00:33:17 +00:00
kern_alq.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_clock.c - Adjust sched hooks for fork and exec to take processes as arguments instead 2003-04-11 03:39:07 +00:00
kern_condvar.c Test the P_WEXIT flag while already hold the proc lock instead of right 2003-04-17 22:21:05 +00:00
kern_conf.c Since dynamic allocation of device major numbers so far have not 2003-04-13 15:27:49 +00:00
kern_context.c Protect td_sigmask with the proc lock. 2003-04-17 22:21:57 +00:00
kern_descrip.c Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
kern_environment.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_event.c Fix race between a process registering a NOTE_EXIT EVFILT_PROC event and 2003-04-12 01:57:04 +00:00
kern_exec.c - Borrow the KSE single threading code for exec and exit. We use the check 2003-04-01 01:26:20 +00:00
kern_exit.c Adjust a few comments. 2003-04-17 22:22:47 +00:00
kern_fork.c - Push Giant down into the fork1() function a small bit. 2003-04-17 22:24:59 +00:00
kern_idle.c Add some locking in for a few proc and thread fields. 2003-04-17 22:25:35 +00:00
kern_intr.c Add some locking in for a few proc and thread fields. 2003-04-17 22:25:35 +00:00
kern_jail.c - The prison mutex cannot possibly protect pointers to the prison it 2003-04-17 22:26:53 +00:00
kern_kse.c Introduce two flags to control upcall behaviour: 2003-04-21 07:27:59 +00:00
kern_kthread.c fork1() already sets PS_INMEM, so don't set it again. This lets us push 2003-04-17 22:28:28 +00:00
kern_ktr.c Trim leading "../" sequences from filenames. 2003-03-11 19:56:16 +00:00
kern_ktrace.c Add a new userland-visible ktrace flag KTR_DROP and an internal ktrace flag 2003-03-13 18:31:15 +00:00
kern_linker.c FreeBSD 5.0 has stopped shipping /modules 2.5 years ago. Catch 2003-03-03 22:53:35 +00:00
kern_lock.c Use the KTR_LOCK mask for logging events via KTR in lockmgr() rather 2003-03-11 20:00:37 +00:00
kern_lockf.c Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
kern_mac.c Update NAI copyright to 2003, missed in earlier commits and merges. 2003-04-18 19:57:37 +00:00
kern_malloc.c Permit debug.malloc.failure_rate to be specified using a tunable so 2003-03-26 20:44:29 +00:00
kern_mib.c - Provide backwards compatibility for kern.fallback_elf_brand. 2003-01-05 03:48:14 +00:00
kern_module.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_mtxpool.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
kern_mutex.c Use TD_IS_RUNNING() instead of thread_running() in the adaptive mutex 2003-04-17 22:28:58 +00:00
kern_ntptime.c Explicitly have the timecounter init happen after the cpu_initclocks is 2003-01-06 01:01:08 +00:00
kern_physio.c Don't reinitialize fields that are already initialized by getpbuf(). 2003-04-05 23:02:58 +00:00
kern_poll.c Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
kern_proc.c - Add a static function pgadjustjobc() to adjust the job control count for 2003-04-18 20:17:05 +00:00
kern_prot.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_resource.c Add a couple of sched_lock asserts. 2003-04-18 20:17:47 +00:00
kern_sema.c Change callers of mtx_init() to pass in an appropriate lock type name. In 2002-04-04 21:03:38 +00:00
kern_shutdown.c Lock the sched_lock while setting TDF_INPANIC. 2003-04-17 22:29:23 +00:00
kern_sig.c Unbreak sigaltstack syscall. sigonstack is now a function and 2003-04-19 05:04:06 +00:00
kern_subr.c Remove extraneous check. We are not going to return from copyin/out on 2003-03-25 20:13:24 +00:00
kern_switch.c Commit a partial lazy thread switch mechanism for i386. it isn't as lazy 2003-04-02 23:53:30 +00:00
kern_sx.c Set the lock type equal to the lock name for now as all of the current 2002-04-04 20:49:35 +00:00
kern_synch.c Commit a partial lazy thread switch mechanism for i386. it isn't as lazy 2003-04-02 23:53:30 +00:00
kern_syscalls.c
kern_sysctl.c Use a shorter and less redundant name for the sysctl tree lock. 2003-03-11 20:01:51 +00:00
kern_tc.c Including <sys/stdint.h> is (almost?) universally only to be able to use 2003-03-18 08:45:25 +00:00
kern_thr.c Protect td_sigmask with the proc lock. 2003-04-17 22:21:57 +00:00
kern_thread.c Introduce two flags to control upcall behaviour: 2003-04-21 07:27:59 +00:00
kern_time.c o fix ppsratecheck to interpret a maxpps of zero as "ignore everything" 2003-02-26 17:16:38 +00:00
kern_timeout.c Under DIAGNOSTIC, only report expensive timeouts if they are more expensive 2003-02-01 10:06:40 +00:00
kern_umtx.c - Make casuptr return the old value of the location we're trying to update, 2003-04-02 08:02:27 +00:00
kern_uuid.c SMP locking for ifnet list. 2002-12-22 05:35:03 +00:00
kern_xxx.c more caddr_t removal. 2002-06-29 02:00:02 +00:00
ksched.c Move a bunch of flags from the KSE to the thread. 2003-02-17 09:55:10 +00:00
link_elf_obj.c Search for "elf32 kernel" (and elf64) and "elf32 module" (and elf64) 2003-04-06 05:20:00 +00:00
link_elf.c Search for "elf32 kernel" (and elf64) and "elf32 module" (and elf64) 2003-04-06 05:20:00 +00:00
linker_if.m
Make.tags.inc Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
Makefile Finish driving a stake through the heart of netns and the associated 2003-03-05 19:24:24 +00:00
makesyscalls.sh - Include umtx.h in files generated by makesyscalls.sh 2003-04-01 01:12:24 +00:00
md4c.c
md5c.c We have memset() and memcpy() in the kernel now, so we don't need to 2002-10-20 22:33:42 +00:00
p1003_1b.c Use copyout to access user memory. 2003-01-07 20:10:04 +00:00
posix4_mib.c Rework the sysconf(3) interaction with aio: 2002-11-17 04:15:34 +00:00
sched_4bsd.c - Catch up with sched api changes. 2003-04-11 03:39:48 +00:00
sched_ule.c - Set the ke_cpu field in sched_add() for interrupt and realtime threads 2003-04-18 05:24:10 +00:00
subr_acl_posix1e.c Bow to the whining masses and change a union back into void *. Retain 2003-01-13 00:33:17 +00:00
subr_autoconf.c Remove __P. 2002-03-19 21:25:46 +00:00
subr_blist.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
subr_bus.c Fix /dev/devctl's implementation of poll. We should only be setting 2003-04-21 05:58:51 +00:00
subr_clist.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
subr_clock.c Split the global timezone structure into two integer fields to 2003-02-03 19:49:35 +00:00
subr_devstat.c Unbreak vinum, iostat and systat on sparc64 by changing the devstat 2003-04-17 15:06:28 +00:00
subr_disk.c Don't include <sys/disklabel.h> 2003-04-16 20:57:35 +00:00
subr_eventhandler.c Rework the eventhandler locking for hopefully the last time. The scheme 2003-03-11 20:17:00 +00:00
subr_hints.c Cosmetic tweaks. Try and keep the style more consistent, catch some stray 2002-05-01 02:51:50 +00:00
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 Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
subr_mbuf.c Move MAC label storage for mbufs into m_tags from the m_pkthdr structure, 2003-04-14 20:39:06 +00:00
subr_mchain.c The "m = m->m_next" that was removed in the revision 1.12 was necessary 2003-02-19 10:12:42 +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 Don't assume that p_session hasn't changed out from under us after unlocking 2003-04-17 22:30:43 +00:00
subr_prof.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
subr_rman.c Implement rman_get_device 2003-02-12 07:00:59 +00:00
subr_rtc.c Split the global timezone structure into two integer fields to 2003-02-03 19:49:35 +00:00
subr_sbuf.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
subr_scanf.c Fix mis-indentation. 2002-10-02 09:09:25 +00:00
subr_smp.c Move the _oncpu entry from the KSE to the thread. 2003-04-10 17:35:44 +00:00
subr_taskqueue.c Introduce a new taskqueue that runs completely free of Giant, and in 2003-02-26 03:15:42 +00:00
subr_trap.c Tweak locking in the PS_XCPU handler to hold the sched_lock while reading 2003-04-17 22:33:04 +00:00
subr_turnstile.c Use TD_IS_RUNNING() instead of thread_running() in the adaptive mutex 2003-04-17 22:28:58 +00:00
subr_witness.c Move the _oncpu entry from the KSE to the thread. 2003-04-10 17:35:44 +00:00
subr_xxx.c - Add vm_paddr_t, a physical address type. This is required for systems 2003-03-25 00:07:06 +00:00
sys_generic.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
sys_pipe.c Need to hold the same SMP lock for (knote) list traversal as for 2003-04-02 15:24:50 +00:00
sys_process.c The sched_lock is not needed while clearing two of the P_STOPPED bits in 2003-04-17 22:31:54 +00:00
sys_socket.c Remove duplicate includes. 2003-02-20 03:26:11 +00:00
syscalls.c Regen. 2003-04-09 02:57:29 +00:00
syscalls.master o In struct prison, add an allprison linked list of prisons (protected 2003-04-09 02:55:18 +00:00
sysv_ipc.c It is possible for an active aio to prevent shared memory from being 2003-01-13 23:04:32 +00:00
sysv_msg.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
sysv_sem.c Replace the at_fork, at_exec, and at_exit functions with the slightly more 2003-03-24 21:15:35 +00:00
sysv_shm.c Lock some manipulations of the vm object's flags. 2003-04-13 19:36:18 +00:00
tty_compat.c Fixed some style bugs in the removal of __P(()). The main ones were 2002-03-24 05:09:11 +00:00
tty_conf.c
tty_cons.c Don't call make_dev() before we are ready for it. 2003-03-09 20:42:49 +00:00
tty_pty.c - Move p->p_sigmask to td->td_sigmask. Signal masks will be per thread with 2003-03-31 22:49:17 +00:00
tty_subr.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
tty_tty.c Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
tty.c - Use a local struct proc variable to improve readability. 2003-04-17 22:36:40 +00:00
uipc_accf.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
uipc_cow.c The data in an sf_buf should not be modified by the mbuf system. Mark 2003-04-11 07:02:36 +00:00
uipc_domain.c Fix a spelling error. 2003-03-07 22:47:32 +00:00
uipc_jumbo.c Lock the jumbo_vm_object when performing vm_page_alloc(). 2003-04-19 19:13:25 +00:00
uipc_mbuf2.c Move MAC label storage for mbufs into m_tags from the m_pkthdr structure, 2003-04-14 20:39:06 +00:00
uipc_mbuf.c Add another MBUF_STRESS_TEST feature, m_defragrandomfailures. 2003-04-15 02:14:43 +00:00
uipc_proto.c
uipc_sem.c Replace the at_fork, at_exec, and at_exit functions with the slightly more 2003-03-24 21:15:35 +00:00
uipc_sockbuf.c Missing M_TRYWAIT from so_upcall third argument. 2003-02-21 22:23:40 +00:00
uipc_socket2.c Missing M_TRYWAIT from so_upcall third argument. 2003-02-21 22:23:40 +00:00
uipc_socket.c Use while (*controlp != NULL) instead of do ... while (*control != NULL) 2003-04-14 14:44:36 +00:00
uipc_syscalls.c Recent changes to uipc_cow.c have eliminated the need for some sf_buf- 2003-03-31 06:25:42 +00:00
uipc_usrreq.c s/discriptors/descriptors/ 2003-03-23 19:41:34 +00:00
vfs_acl.c Bow to the whining masses and change a union back into void *. Retain 2003-01-13 00:33:17 +00:00
vfs_aio.c - kthread's don't have p_textvp set to anything, so replace code that 2003-04-17 22:37:48 +00:00
vfs_bio.c Lock the vm_object in vfs_busy_pages(). 2003-04-20 00:17:05 +00:00
vfs_cache.c Backout the getcwd changes, a more comprehensive effort will be needed. 2003-03-20 10:40:45 +00:00
vfs_cluster.c - Lock the vm_object when performing vm_object_pip_add(). 2003-04-20 07:29:50 +00:00
vfs_default.c - Remove a race between fsync like functions and flushbufqueues() by 2003-03-13 07:19:23 +00:00
vfs_export.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
vfs_extattr.c o In struct prison, add an allprison linked list of prisons (protected 2003-04-09 02:55:18 +00:00
vfs_init.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
vfs_lookup.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
vfs_mount.c Adjust the number of vnodes scanned by vlrureclaim() according to the 2003-03-26 22:15:58 +00:00
vfs_subr.c Update locking around vm_object_page_remove() to use the new macros. 2003-04-18 16:39:03 +00:00
vfs_syscalls.c o In struct prison, add an allprison linked list of prisons (protected 2003-04-09 02:55:18 +00:00
vfs_vnops.c fp->f_offset doesn't need any protection when it isn't accessed. 2003-03-26 19:21:12 +00:00
vnode_if.src Temporarily introduce a new VOP_SPECSTRATEGY operation while I try 2003-01-04 22:10:36 +00:00