freebsd-src/sys/kern
Kenneth D. Merry 9b80d344ec Zero copy send and receive fixes:
- On receive, vm_map_lookup() needs to trigger the creation of a shadow
  object.  To make that happen, call vm_map_lookup() with PROT_WRITE
  instead of PROT_READ in vm_pgmoveco().

- On send, a shadow object will be created by the vm_map_lookup() in
  vm_fault(), but vm_page_cowfault() will delete the original page from
  the backing object rather than simply letting the legacy COW mechanism
  take over.  In other words, the new page should be added to the shadow
  object rather than replacing the old page in the backing object.  (i.e.
  vm_page_cowfault() should not be called in this case.)  We accomplish
  this by making sure fs.object == fs.first_object before calling
  vm_page_cowfault() in vm_fault().

Submitted by:	gallatin, alc
Tested by:	ken
2003-03-08 06:58:18 +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 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
imgact_elf.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_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 Use the proc lock to protect p_realtimer instead of Giant, and obtain 2003-02-17 10:03:02 +00:00
init_sysent.c Add a timeout parameter to kse_release. 2003-02-20 08:18:15 +00:00
kern_acct.c Remove the PL_SHAREMOD flag from struct plimit, which could have been 2003-02-20 04:18:42 +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 Update netisr handling; Each SWI now registers its queue, and all queue 2003-03-04 23:19:55 +00:00
kern_condvar.c Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
kern_conf.c Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +00:00
kern_context.c Add getcontext, setcontext, and swapcontext as system calls. 2002-11-16 06:35:53 +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 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_exec.c Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +00:00
kern_exit.c Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +00:00
kern_fork.c Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +00:00
kern_idle.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
kern_intr.c Add a WITNESS_WARN() call to verify that we hold no locks after running 2003-03-04 21:01:42 +00:00
kern_jail.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_kse.c Lock sched_lock before modifying td_flags. 2003-03-08 04:09:04 +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 Add a /a modifier to the show ktr ddb command, which prints the whole trace 2003-02-22 23:30:37 +00:00
kern_ktrace.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +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 Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
kern_lockf.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
kern_mac.c Instrument sysarch() MD privileged I/O access interfaces with a MAC 2003-03-06 04:47:47 +00:00
kern_malloc.c o Allow "buckets" in mb_alloc to be differently sized (according to 2003-02-20 04:26:58 +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
kern_mutex.c Remove safety belt: it is now ok to do a mtx_trylock() on a mutex you 2003-03-04 21:32:25 +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 Close the remaining user address mapping races for physical 2003-01-20 17:46:48 +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 Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +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 Remove the PL_SHAREMOD flag from struct plimit, which could have been 2003-02-20 04:18:42 +00:00
kern_sema.c
kern_shutdown.c style. 2003-02-14 12:44:48 +00:00
kern_sig.c Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
kern_subr.c Zero copy send and receive fixes: 2003-03-08 06:58:18 +00:00
kern_switch.c Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +00:00
kern_sx.c
kern_synch.c Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
kern_syscalls.c
kern_sysctl.c Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
kern_tc.c Move timecounters notion of frequency to 64 bits. 2003-01-29 11:29:22 +00:00
kern_thread.c Lock sched_lock before modifying td_flags. 2003-03-08 04:09:04 +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_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.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
link_elf_obj.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +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 The syscall names are string constants, so make them consts. 2002-10-29 15:47:06 +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 Change the process flags P_KSES to be P_THREADED. 2003-02-27 02:05:19 +00:00
sched_ule.c - Create a function sched_interact_score() which decides on the 2003-03-04 02:45:59 +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
subr_blist.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
subr_bus.c Gigacommit to improve device-driver source compatibility between 2003-03-03 12:15:54 +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 Use strlcpy() instead of strncpy() to copy NUL terminated strings 2002-10-17 20:03:38 +00:00
subr_disk.c Don't pick up a name from the dev_t if it is not there. 2003-03-03 11:14:36 +00:00
subr_eventhandler.c Wrap a line longer than 80 characters. 2002-07-19 17:44:44 +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 Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +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 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +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 a bunch of flags from the KSE to the thread. 2003-02-17 09:55:10 +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 Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
subr_turnstile.c Remove safety belt: it is now ok to do a mtx_trylock() on a mutex you 2003-03-04 21:32:25 +00:00
subr_witness.c Oops, fix the double faults people were seeing with the recent changes to 2003-03-06 17:25:06 +00:00
subr_xxx.c Make nokqfilter() return the correct return value. 2003-03-03 16:24:47 +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 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
sys_process.c Add a missing PROC_UNLOCK in ptrace() for the PT_IO case. 2002-10-16 16:28:33 +00:00
sys_socket.c Remove duplicate includes. 2003-02-20 03:26:11 +00:00
syscalls.c Add a timeout parameter to kse_release. 2003-02-20 08:18:15 +00:00
syscalls.master Add a timeout parameter to kse_release. 2003-02-20 08:18:15 +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 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
sysv_shm.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
tty.c Make TTYHOG tunable. 2003-03-05 08:16:29 +00:00
tty_compat.c
tty_conf.c
tty_cons.c Make nokqfilter() return the correct return value. 2003-03-03 16:24:47 +00:00
tty_pty.c Make TTYHOG tunable. 2003-03-05 08:16:29 +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
uipc_accf.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
uipc_cow.c Change iov_base's type from char *' to the standard void *'. All 2002-10-11 14:58:34 +00:00
uipc_domain.c Fix a spelling error. 2003-03-07 22:47:32 +00:00
uipc_jumbo.c Remove duplicate includes. 2003-02-20 03:26:11 +00:00
uipc_mbuf.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
uipc_mbuf2.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
uipc_proto.c
uipc_sem.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
uipc_sockbuf.c Missing M_TRYWAIT from so_upcall third argument. 2003-02-21 22:23:40 +00:00
uipc_socket.c Clean up whitespace, s/register //, refrain from strong urge to ANSIfy. 2003-03-02 15:56:49 +00:00
uipc_socket2.c Missing M_TRYWAIT from so_upcall third argument. 2003-02-21 22:23:40 +00:00
uipc_syscalls.c Remove GIANT_REQUIRED from sf_buf_free(). 2003-03-06 04:48:19 +00:00
uipc_usrreq.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +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 Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
vfs_bio.c - Add a new 'flags' parameter to getblk(). 2003-03-04 00:04:44 +00:00
vfs_cache.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
vfs_cluster.c - Hold the buf lock while manipulating and inspecting its fields. 2003-03-04 21:35:28 +00:00
vfs_default.c Respect any passed in external lockmgr flags such as LK_NOWAIT in the 2003-03-07 20:45:07 +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 Move the initialization of the vattr flags field in setfflags() to 2003-03-05 23:15:23 +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 Export the name of the device used to mount the root file system as 2003-02-22 05:01:12 +00:00
vfs_subr.c Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress. 2003-03-06 03:41:02 +00:00
vfs_syscalls.c Move the initialization of the vattr flags field in setfflags() to 2003-03-05 23:15:23 +00:00
vfs_vnops.c Do not allow kqueues to be passed via unix domain sockets. 2003-02-15 06:04:55 +00:00
vnode_if.src Temporarily introduce a new VOP_SPECSTRATEGY operation while I try 2003-01-04 22:10:36 +00:00