freebsd-skq/sys/kern
Mark Johnston aa14e9b7c9 Reimplement support for userland core dump compression using a new interface
in kern_gzio.c. The old gzio interface was somewhat inflexible and has not
worked properly since r272535: currently, the gzio functions are called with
a range lock held on the output vnode, but kern_gzio.c does not pass the
IO_RANGELOCKED flag to vn_rdwr() calls, resulting in deadlock when vn_rdwr()
attempts to reacquire the range lock. Moreover, the new gzio interface can
be used to implement kernel core compression.

This change also modifies the kernel configuration options needed to enable
userland core dump compression support: gzio is now an option rather than a
device, and the COMPRESS_USER_CORES option is removed. Core dump compression
is enabled using the kern.compress_user_cores sysctl/tunable.

Differential Revision:	https://reviews.freebsd.org/D1832
Reviewed by:	rpaulo
Discussed with:	kib
2015-03-09 03:50:53 +00:00
..
bus_if.m Add a bus method to fetch the VM domain for the given device/bus. 2014-10-09 05:33:25 +00:00
capabilities.conf Add futimens and utimensat system calls. 2015-01-23 21:07:08 +00:00
clock_if.m
cpufreq_if.m
device_if.m Change the default method for device_quiesce() to return 0 instead of 2015-01-08 21:46:28 +00:00
genassym.sh
imgact_aout.c
imgact_binmisc.c
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Reimplement support for userland core dump compression using a new interface 2015-03-09 03:50:53 +00:00
imgact_gzip.c
imgact_shell.c
inflate.c
init_main.c Allow the kern.osrelease and kern.osreldate sysctl values to be set in a 2015-02-27 16:28:55 +00:00
init_sysent.c Run make sysent. 2015-01-23 21:08:24 +00:00
kern_acct.c
kern_alq.c
kern_clock.c Initialize ticks so that it wraps 10 minutes after boot to increase the 2015-02-05 01:43:21 +00:00
kern_clocksource.c Add ddb command 'show clocksource' to display state of the per-cpu 2015-02-04 14:49:47 +00:00
kern_condvar.c Revert for r277213: 2015-01-22 11:12:42 +00:00
kern_conf.c Stop enforcing additional reference on all cdevs, which was introduced 2015-01-19 17:36:52 +00:00
kern_cons.c Rework r276532 a bit. Always avoid recursing into the console drivers 2015-01-03 17:21:19 +00:00
kern_context.c
kern_cpu.c
kern_cpuset.c Reject attempts to read the cpuset mask of a negative domain ID. 2015-01-08 19:11:14 +00:00
kern_ctf.c Don't specify a resid parameter if we're just going to ignore it. Instead, 2015-02-20 20:49:00 +00:00
kern_descrip.c filedesc: obtain a stable copy of credentials in fget_unlocked 2015-02-18 13:37:28 +00:00
kern_dtrace.c
kern_dump.c Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
kern_environment.c Test if 'env' is NULL before doing memset() and strlen(), 2014-10-23 18:23:50 +00:00
kern_et.c
kern_event.c prevent doing filter ops locking for staticly compiled filter ops... 2014-11-16 01:18:41 +00:00
kern_exec.c Add procctl(2) PROC_TRACE_CTL command to enable or disable debugger 2015-01-18 15:13:11 +00:00
kern_exit.c The umtx_lock mutex is used by top-half of the kernel, but is 2015-02-28 04:19:02 +00:00
kern_fail.c
kern_ffclock.c The SYSCTL data pointers can come from userspace and must not be 2014-10-28 12:00:39 +00:00
kern_fork.c Add procctl(2) PROC_TRACE_CTL command to enable or disable debugger 2015-01-18 15:13:11 +00:00
kern_gzio.c Reimplement support for userland core dump compression using a new interface 2015-03-09 03:50:53 +00:00
kern_hhook.c
kern_idle.c
kern_intr.c This is the much-discussed major upgrade to the random(4) device, known to you all as /dev/random. 2014-10-30 21:21:53 +00:00
kern_jail.c Format the line properly (wrap before column 80). 2015-02-28 17:44:31 +00:00
kern_khelp.c
kern_kthread.c The umtx_lock mutex is used by top-half of the kernel, but is 2015-02-28 04:19:02 +00:00
kern_ktr.c
kern_ktrace.c
kern_linker.c Const poison in a few places to ensure we don't modify things 2014-12-03 22:14:13 +00:00
kern_lock.c Revert for r277213: 2015-01-22 11:12:42 +00:00
kern_lockf.c Improve style and fix a possible use-after-free case introduced in r268384 2015-01-10 06:48:35 +00:00
kern_lockstat.c
kern_loginclass.c Simplify sys_getloginclass. 2014-10-28 04:59:33 +00:00
kern_malloc.c
kern_mbuf.c
kern_mib.c Allow the kern.osrelease and kern.osreldate sysctl values to be set in a 2015-02-27 16:28:55 +00:00
kern_module.c
kern_mtxpool.c
kern_mutex.c Add _NEW flag to mtx(9), sx(9), rmlock(9) and rwlock(9). 2014-12-13 21:00:10 +00:00
kern_ntptime.c
kern_osd.c
kern_physio.c
kern_pmc.c
kern_poll.c
kern_priv.c
kern_proc.c Fix gcc build. 2014-12-14 08:43:13 +00:00
kern_procctl.c Reparenting done by debugger attach can leave reaper without direct 2015-02-15 08:44:30 +00:00
kern_prot.c Add procctl(2) PROC_TRACE_CTL command to enable or disable debugger 2015-01-18 15:13:11 +00:00
kern_racct.c The process spin lock currently has the following distinct uses: 2014-11-26 14:10:00 +00:00
kern_rangelock.c
kern_rctl.c
kern_resource.c The process spin lock currently has the following distinct uses: 2014-11-26 14:10:00 +00:00
kern_rmlock.c Add _NEW flag to mtx(9), sx(9), rmlock(9) and rwlock(9). 2014-12-13 21:00:10 +00:00
kern_rwlock.c Add _NEW flag to mtx(9), sx(9), rmlock(9) and rwlock(9). 2014-12-13 21:00:10 +00:00
kern_sdt.c
kern_sema.c
kern_sharedpage.c
kern_shutdown.c Factor out duplicated code from dumpsys() on each architecture into generic 2015-01-07 01:01:39 +00:00
kern_sig.c Reimplement support for userland core dump compression using a new interface 2015-03-09 03:50:53 +00:00
kern_switch.c Revert for r277213: 2015-01-22 11:12:42 +00:00
kern_sx.c Add _NEW flag to mtx(9), sx(9), rmlock(9) and rwlock(9). 2014-12-13 21:00:10 +00:00
kern_synch.c Revert for r277213: 2015-01-22 11:12:42 +00:00
kern_syscalls.c Fix up module unload for syscall_module_handler consumers. 2014-11-01 22:36:40 +00:00
kern_sysctl.c sysctl: don't modify oid_running for static nodes 2014-12-28 19:24:01 +00:00
kern_tc.c Add mutex support to the pps_ioctl() API in the kernel. 2015-03-07 18:23:32 +00:00
kern_thr.c The umtx_lock mutex is used by top-half of the kernel, but is 2015-02-28 04:19:02 +00:00
kern_thread.c The umtx_lock mutex is used by top-half of the kernel, but is 2015-02-28 04:19:02 +00:00
kern_time.c Fix an off by one in ppsratecheck(). If you asked for N=1 you'd get one, 2015-01-11 20:48:29 +00:00
kern_timeout.c This fixes a bug I in-advertantly inserted when I updated the callout 2015-02-12 13:31:08 +00:00
kern_umtx.c The umtx_lock mutex is used by top-half of the kernel, but is 2015-02-28 04:19:02 +00:00
kern_uuid.c
kern_xxx.c
ksched.c
link_elf_obj.c Fully support constructors for the purpose of code coverage analysis. 2014-10-20 17:04:03 +00:00
link_elf.c Make 32-bit PowerPC kernels, like 64-bit PowerPC kernels, position-independent 2015-03-07 20:14:46 +00:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh
md4c.c
md5c.c
p1003_1b.c
posix4_mib.c
sched_4bsd.c
sched_ule.c Put back Andy's void for gcc happiness. 2015-02-27 23:14:08 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c
subr_acl_posix1e.c
subr_autoconf.c
subr_blist.c
subr_bufring.c
subr_bus_dma.c
subr_bus.c Add a new device control utility for new-bus devices called devctl. This 2015-02-06 16:09:01 +00:00
subr_busdma_bufalloc.c
subr_capability.c
subr_clock.c For architectures where time_t is wide enough, in particular, 64bit 2014-12-12 09:37:18 +00:00
subr_counter.c
subr_devstat.c Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
subr_disk.c
subr_dnvlist.c Move libnv into the kernel and hook it into the kernel build 2015-03-01 00:34:27 +00:00
subr_dummy_vdso_tc.c Update the vdso timehands only via tc_windup(). 2015-01-20 03:54:30 +00:00
subr_eventhandler.c
subr_fattime.c Where appropriate, use the modern terms for the one true time base 2014-12-21 05:07:11 +00:00
subr_firmware.c
subr_hash.c
subr_hints.c Add a new device control utility for new-bus devices called devctl. This 2015-02-06 16:09:01 +00:00
subr_kdb.c Fix multiple incorrect SYSCTL arguments in the kernel: 2014-10-21 07:31:21 +00:00
subr_kobj.c
subr_lock.c Add _NEW flag to mtx(9), sx(9), rmlock(9) and rwlock(9). 2014-12-13 21:00:10 +00:00
subr_log.c
subr_mbpool.c
subr_mchain.c
subr_module.c Turns out, this isn't only called from i386... 2014-12-30 02:39:47 +00:00
subr_msgbuf.c
subr_nvlist.c Move libnv into the kernel and hook it into the kernel build 2015-03-01 00:34:27 +00:00
subr_nvpair.c Move libnv into the kernel and hook it into the kernel build 2015-03-01 00:34:27 +00:00
subr_param.c Rework virtual machine hypervisor detection. 2014-10-28 19:17:44 +00:00
subr_pcpu.c
subr_pctrie.c
subr_power.c
subr_prf.c Fix usage example in kvprintf(9) and its copy in libstand(3): trailing '\n' 2015-01-23 07:30:57 +00:00
subr_prof.c The process spin lock currently has the following distinct uses: 2014-11-26 14:10:00 +00:00
subr_rman.c
subr_rtc.c
subr_sbuf.c
subr_scanf.c
subr_sfbuf.c
subr_sglist.c Fix a couple of panics when detaching from a cxgbe/cxl interface that was 2015-01-26 16:26:28 +00:00
subr_sleepqueue.c Revert for r277213: 2015-01-22 11:12:42 +00:00
subr_smp.c
subr_stack.c
subr_syscall.c Thread waiting for the vfork(2)-ed child to exec or exit, must allow 2014-12-08 16:18:05 +00:00
subr_taskqueue.c Remove taskqueue_start_threads_pinned(); there's noa generic cpuset version of this. 2015-02-25 21:59:03 +00:00
subr_terminal.c vt(4): Adjust the cursor position after changing the window size 2014-11-01 17:05:15 +00:00
subr_trap.c Revert r263475: TDP_DEVMEMIO no longer needed, since amd64 /dev/kmem 2015-01-12 08:58:07 +00:00
subr_turnstile.c
subr_uio.c Add type qualifier volatile to the base (userspace) address argument 2014-10-31 17:43:21 +00:00
subr_unit.c
subr_vmem.c
subr_witness.c The umtx_lock mutex is used by top-half of the kernel, but is 2015-02-28 04:19:02 +00:00
sys_capability.c Use crcopysafe(9) to make a copy of a process' credential struct. crcopy(9) 2015-01-05 23:07:22 +00:00
sys_generic.c filedesc: simplify fget_unlocked & friends 2015-02-17 23:54:06 +00:00
sys_pipe.c Fix use after free in pipe_dtor(). PIPE_NAMED flag must be tested 2015-02-03 10:29:40 +00:00
sys_procdesc.c
sys_process.c Add a facility for non-init process to declare itself the reaper of 2014-12-15 12:01:42 +00:00
sys_socket.c In preparation of merging projects/sendfile, transform bare access to 2014-11-12 09:57:15 +00:00
syscalls.c Run make sysent. 2015-01-23 21:08:24 +00:00
syscalls.master Add futimens and utimensat system calls. 2015-01-23 21:07:08 +00:00
systrace_args.c Run make sysent. 2015-01-23 21:08:24 +00:00
sysv_ipc.c
sysv_msg.c Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
sysv_sem.c Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
sysv_shm.c If malloc() sleeps, Giant is dropped. Recheck for another thread 2015-02-18 18:12:06 +00:00
tty_compat.c
tty_info.c
tty_inq.c
tty_outq.c
tty_pts.c Implement FIODTYPE for master ptys. 2014-10-15 12:38:26 +00:00
tty_tty.c
tty_ttydisc.c
tty.c filedesc: simplify fget_unlocked & friends 2015-02-17 23:54:06 +00:00
uipc_accf.c
uipc_debug.c Merge from projects/sendfile: 2014-11-30 12:52:33 +00:00
uipc_domain.c Merge from projects/sendfile: extend protocols API to support 2014-11-30 13:24:21 +00:00
uipc_mbuf2.c Remove a 'This is dumb' comment that has been incorrect for at least a 2015-01-09 12:08:51 +00:00
uipc_mbuf.c Use anonymous unions and structs to organize shared space in mbuf(9), 2015-02-17 20:52:51 +00:00
uipc_mqueue.c Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
uipc_sem.c Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
uipc_shm.c Preset the object's color, or alignment, to maximize superpage usage. 2015-02-08 21:00:51 +00:00
uipc_sockbuf.c In sbappend*() family of functions clear M_PROTO flags of incoming 2014-12-22 15:39:24 +00:00
uipc_socket.c soreceive_generic() still has similar KASSERT(), therefore instead of 2015-02-23 15:24:43 +00:00
uipc_syscalls.c Correct the use of an unitialized variable in sendfind_getobj() 2015-02-28 21:49:59 +00:00
uipc_usrreq.c The VOP_LOOKUP() implementations for CREATE op do not put the name 2014-12-18 10:01:12 +00:00
vfs_acl.c Replace some calls to fuword() by fueword() with proper error checking. 2014-10-28 15:28:20 +00:00
vfs_aio.c Avoid dynamic syscall overhead for statically compiled modules. 2014-10-26 19:42:44 +00:00
vfs_bio.c When getnewbuf_reuse_bp() is called to reclaim some (clean) buffer, 2014-12-08 16:42:34 +00:00
vfs_cache.c Indeed, instead of hiding the kern___getcwd() bug by bogus cast 2015-01-04 10:34:02 +00:00
vfs_cluster.c
vfs_default.c Fix the comment introduced in r276192 so that it clearly 2014-12-25 14:44:04 +00:00
vfs_export.c After the changes in r274118 make NOIP kernels compile by hiding an 2014-11-06 12:19:39 +00:00
vfs_extattr.c
vfs_hash.c Convert vfs hash lock from a mutex to an rwlock. 2014-12-30 21:40:45 +00:00
vfs_init.c Rename sysctl_lock and _unlock to sysctl_xlock and _xunlock. 2014-10-21 19:02:26 +00:00
vfs_lookup.c Fix two issues with lockmgr(9) LK_CAN_SHARE() test, which determines 2014-11-02 13:10:31 +00:00
vfs_mount.c Mountd iterating over the mount points may race with the parallel 2015-02-10 18:00:32 +00:00
vfs_mountroot.c Remove the no-at variants of the kern_xx() syscall helpers. E.g., we 2014-11-13 18:01:51 +00:00
vfs_subr.c The VNASSERT in vflush() FORCECLOSE case is trying to panic early to 2015-02-27 16:43:50 +00:00
vfs_syscalls.c filedesc: simplify fget_unlocked & friends 2015-02-17 23:54:06 +00:00
vfs_vnops.c Add VN_OPEN_NAMECACHE flag for vn_open_cred(9), which requests that 2014-12-21 13:32:07 +00:00
vnode_if.src Merge from projects/sendfile: 2014-11-23 12:01:52 +00:00