freebsd-src/sys/kern
Mark Johnston ddf0ed09bd sdt: Implement SDT probes using hot-patching
The idea here is to avoid a memory access and conditional branch per
probe site.  Instead, the probe is represented by an "unreachable"
unconditional function call.  asm goto is used to store the address of
the probe site (represented by a no-op sled) and the address of the
function call into a tracepoint record.  Each SDT probe carries a list
of tracepoints.

When the probe is enabled, the no-op sled corresponding to each
tracepoint is overwritten with a jmp to the corresponding label.  The
implementation uses smp_rendezvous() to park all other CPUs while the
instruction is being overwritten, as this can't be done atomically in
general.  The compiler moves argument marshalling code and the
sdt_probe() function call out-of-line, i.e., to the end of the function.

Per gallatin@ in D43504, this approach has less overhead when probes are
disabled.  To make the implementation a bit simpler, I removed support
for probes with 7 arguments; nothing makes use of this except a
regression test case.  It could be re-added later if need be.

The approach taken in this patch enables some more improvements:
1. We can now automatically fill out the "function" field of SDT probe
   names.  The SDT macros let the programmer specify the function and
   module names, but this is really a bug and shouldn't have been
   allowed.  The intent was to be able to have the same probe in
   multiple functions and to let the user restrict which probes actually
   get enabled by specifying a function name or glob.
2. We can avoid branching on SDT_PROBES_ENABLED() by adding the ability
   to include blocks of code in the out-of-line path.  For example:

	if (SDT_PROBES_ENABLED()) {
		int reason = CLD_EXITED;

		if (WCOREDUMP(signo))
			reason = CLD_DUMPED;
		else if (WIFSIGNALED(signo))
			reason = CLD_KILLED;
		SDT_PROBE1(proc, , , exit, reason);
	}

could be written

	SDT_PROBE1_EXT(proc, , , exit, reason,
		int reason;

		reason = CLD_EXITED;
		if (WCOREDUMP(signo))
			reason = CLD_DUMPED;
		else if (WIFSIGNALED(signo))
			reason = CLD_KILLED;
	);

In the future I would like to use this mechanism more generally, e.g.,
to remove branches and marshalling code used by hwpmc, and generally to
make it easier to add new tracepoint consumers without having to add
more conditional branches to hot code paths.

Reviewed by:	Domagoj Stolfa, avg
MFC after:	2 months
Differential Revision:	https://reviews.freebsd.org/D44483
2024-06-19 16:57:41 -04:00
..
bus_if.m new-bus: Remove the 'rid' and 'type' arguments from BUS_RELEASE_RESOURCE 2024-03-13 15:05:54 -07:00
clock_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
cpufreq_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
device_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
firmw.S arm64: Support BTI checking in most of the kernel 2024-06-05 09:23:40 +00:00
genassym.sh sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
genoffset.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
genoffset.sh genoffset.sh: fix build break on MacOS 2023-11-16 17:54:28 +00:00
imgact_aout.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
imgact_binmisc.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
imgact_elf.c imgact_elf: Add const to the checknote parameter to __elfN(parse_notes) 2024-03-04 20:52:21 -08:00
imgact_elf32.c sys/kern: Remove a few sys/cdefs.h around some elf things 2024-02-20 20:40:19 -07:00
imgact_elf64.c sys/kern: Remove a few sys/cdefs.h around some elf things 2024-02-20 20:40:19 -07:00
imgact_shell.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
init_main.c amd64: initialize td_frame stack area for init(8) main thread 2024-03-26 04:01:38 +02:00
init_sysent.c Regen 2024-05-21 22:03:20 +02:00
kern_acct.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_alq.c alq, siftr: add panic/debugger checks to shutdown hooks 2023-11-23 12:07:42 -04:00
kern_boottrace.c boottrace: Use NULL for SYSINIT's last arg, which is a pointer type 2024-05-14 12:03:50 +08:00
kern_clock.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
kern_clocksource.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_condvar.c ktrace: Fix the build when options KTRACE is not configured 2024-03-09 00:33:55 -05:00
kern_conf.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_cons.c vt/sc: retire logic to select vt(4) by default for UEFI boot 2024-05-25 11:00:35 -04:00
kern_context.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_cpu.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_cpuset.c ktrace: Record cpuset violations with KTR_CAPFAIL 2024-04-07 18:52:51 -05:00
kern_ctf.c kern_ctf.c: Don't print out warning messages unconditionally 2024-03-29 20:32:18 +01:00
kern_descrip.c ktrace: Record namei violations with KTR_CAPFAIL 2024-04-07 18:52:51 -05:00
kern_devctl.c devctl: Disable the boottime optimization of suppressing NOMATCH 2024-05-18 07:07:16 -06:00
kern_dtrace.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_dump.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_environment.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_et.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_event.c kcmp(2): implement for generic file types 2024-01-24 07:11:26 +02:00
kern_exec.c ktrace: Record namei violations with KTR_CAPFAIL 2024-04-07 18:52:51 -05:00
kern_exit.c Revert "kqueue: on process exit, force-clear its registered signal events" 2023-11-28 19:29:58 +02:00
kern_fail.c Replace random sbuf_printf() with cheaper cat/putc. 2023-11-22 17:27:17 -05:00
kern_ffclock.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_fork.c thread: Simplify sanitizer integration with thread creation 2024-04-22 11:46:59 -04:00
kern_hhook.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_idle.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_intr.c intr: Document how to get the interrupt frame 2024-05-10 15:41:36 -06:00
kern_jail.c Abstract UIO allocation and deallocation. 2024-02-10 11:38:04 -05:00
kern_kcov.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_khelp.c khelp: uma_zcreate() does not fail 2024-04-24 08:46:35 -04:00
kern_kthread.c kthread: Set *tdptr earlier in kproc_kthread_add() 2024-04-25 09:35:38 -04:00
kern_ktr.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_ktrace.c ktrace: Record detailed ECAPMODE violations 2024-04-07 18:52:51 -05:00
kern_linker.c linuxkpi: Provide a non-NULL value for THIS_MODULE 2024-05-16 10:36:36 -07:00
kern_lock.c lockmgr: make lockmgr_disowned public and use it 2024-05-21 10:21:50 -07:00
kern_lockf.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
kern_lockstat.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_loginclass.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_malloc.c Adjust comments referencing vm_mem_init() 2024-05-27 18:37:40 -03:00
kern_mbuf.c mbuf: provide m_freemp() 2024-06-03 17:23:06 -07:00
kern_membarrier.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_mib.c sysctl: Don't pass CTLFLAG_MPSAFE to SYSCTL_STRING 2024-01-04 08:39:53 -05:00
kern_module.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_mtxpool.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_mutex.c SCHEDULER_STOPPED(): Rely on a global variable 2024-01-26 22:09:38 +01:00
kern_ntptime.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_osd.c Add function to OSD to get values without taking the lock. 2024-05-22 15:55:48 -04:00
kern_physio.c uio: Use switch statements when handling UIO_READ vs UIO_WRITE 2024-05-10 13:43:36 -07:00
kern_pmc.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_poll.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_priv.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_proc.c stop_all_proc(): skip traced or signal-stoped processes 2024-04-05 17:52:39 +03:00
kern_procctl.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_prot.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_racct.c kern_racct.c: Don't compile if RACCT undefined 2023-11-22 14:17:17 -05:00
kern_rangelock.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_rctl.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_resource.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_rmlock.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_rwlock.c SCHEDULER_STOPPED(): Rely on a global variable 2024-01-26 22:09:38 +01:00
kern_sdt.c sdt: Implement SDT probes using hot-patching 2024-06-19 16:57:41 -04:00
kern_sema.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_sendfile.c Revert "sendfile: mark it explicitly as a TCP only feature" 2024-04-10 11:28:11 -07:00
kern_sharedpage.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_shutdown.c cons: Add boot option to mute boot messages after banner 2024-04-30 16:23:47 -04:00
kern_sig.c sigqueue(2): add impl-specific flag __SIGQUEUE_TID 2024-04-23 19:51:09 +03:00
kern_switch.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_sx.c SCHEDULER_STOPPED(): Rely on a global variable 2024-01-26 22:09:38 +01:00
kern_synch.c ktrace: Fix the build when options KTRACE is not configured 2024-03-09 00:33:55 -05:00
kern_syscalls.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_sysctl.c sysctl: Make sysctl_ctx_free() a bit safer 2024-05-02 15:42:28 -04:00
kern_tc.c timerfd: Move implementation from linux compat to sys/kern 2023-08-24 14:28:56 -06:00
kern_thr.c kern_thr.c: normalize includes 2024-04-23 19:51:07 +03:00
kern_thread.c kern_thread.c: remove unneeded include of sys/param.h 2024-04-23 19:51:03 +03:00
kern_time.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_timeout.c callout: retire callout_async_drain() 2024-01-24 09:33:27 -08:00
kern_tslog.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
kern_ubsan.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
kern_umtx.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_uuid.c Reduce reliance on sys/sysproto.h pollution 2024-04-15 21:35:40 +01:00
kern_vnodedumper.c kerneldump: add livedump_start_vnode(9) 2024-03-18 17:12:18 -04:00
kern_xxx.c compat_freebsd4: Add const qualifier to the local variable s inside function freebsd4_uname() 2024-05-20 12:02:32 +08:00
ksched.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
link_elf.c kern linker: Don't invoke dtors without having invoked ctors 2024-03-31 14:15:11 -04:00
link_elf_obj.c kern linker: Don't invoke dtors without having invoked ctors 2024-03-31 14:15:11 -04:00
linker_if.m ddb: Add CTF-based pretty printing 2024-03-22 04:03:33 +01:00
Make.tags.inc sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
Makefile sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
md4c.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
md5c.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
msi_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
p1003_1b.c sched_setscheduler(2): Change realtime privilege check 2024-02-14 15:24:11 +01:00
pic_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
posix4_mib.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
sched_4bsd.c sched: Simplify sched_lend_user_prio_cond() 2024-02-27 09:59:48 +01:00
sched_ule.c sched: Simplify sched_lend_user_prio_cond() 2024-02-27 09:59:48 +01:00
serdev_if.m sys: Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:54:58 -06:00
stack_protector.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_acl_nfs4.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_acl_posix1e.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_asan.c thread: Simplify sanitizer integration with thread creation 2024-04-22 11:46:59 -04:00
subr_atomic64.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_autoconf.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
subr_blist.c Replace random sbuf_printf() with cheaper cat/putc. 2023-11-22 17:27:17 -05:00
subr_boot.c cons: Add boot option to mute boot messages after banner 2024-04-30 16:23:47 -04:00
subr_bufring.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_bus.c new-bus: Remove the 'rid' and 'type' arguments from BUS_RELEASE_RESOURCE 2024-03-13 15:05:54 -07:00
subr_bus_dma.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_busdma_bounce.c busdma: better handling of small segment bouncing 2024-05-07 13:02:57 -03:00
subr_busdma_bufalloc.c busdma: uma_zcreate() does not fail 2024-04-24 08:46:41 -04:00
subr_capability.c capsicum: introduce cap_rights_is_empty Function 2023-12-11 12:15:46 +01:00
subr_clock.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_clockcalib.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_compressor.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_counter.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_coverage.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_csan.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_devmap.c devmap: eliminate unused arguments 2024-06-04 20:17:47 -03:00
subr_devstat.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_disk.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_dummy_vdso_tc.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_early.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_epoch.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_eventhandler.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_fattime.c fattime: fix fattime to timespec conversion of dates beyond 2106-02-06 2024-05-01 07:56:41 +03:00
subr_filter.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_firmware.c firmware: unbreak armv7 2024-02-29 10:53:05 -07:00
subr_gtaskqueue.c gtaskqueue: Fix a typo 2023-12-31 11:49:08 -05:00
subr_hash.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_hints.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_intr.c intrng: switch flag arguments to unsigned 2024-05-09 17:14:38 -06:00
subr_kdb.c SCHEDULER_STOPPED(): Rely on a global variable 2024-01-26 22:09:38 +01:00
subr_kobj.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_lock.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_log.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_mchain.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_memdesc.c memdesc: Helper function to construct mbuf chain backed by memdesc buffer 2024-01-09 11:09:43 -08:00
subr_module.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_msan.c kmsan: Add some additional bus_space accessors 2024-02-08 11:22:58 -05:00
subr_msgbuf.c sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
subr_param.c Fix new users of MAXPHYS and hide it from the kernel namespace 2024-04-30 15:29:06 -04:00
subr_pcpu.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_pctrie.c subr_pctrie: add a word to a comment 2024-06-13 15:28:15 -05:00
subr_physmem.c physmem: zero entire array 2024-06-04 20:17:13 -03:00
subr_pidctrl.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_power.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_prf.c Abstract UIO allocation and deallocation. 2024-02-10 11:38:04 -05:00
subr_prng.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_prof.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_rangeset.c pctrie: avoid typecast 2024-06-14 02:19:03 -05:00
subr_rman.c kern/rman: mark rman get functions as taking constants 2024-05-21 17:52:29 -06:00
subr_rtc.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
subr_sbuf.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_scanf.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_sfbuf.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_sglist.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_sleepqueue.c Replace random sbuf_printf() with cheaper cat/putc. 2023-11-22 17:27:17 -05:00
subr_smp.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_smr.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_stack.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_stats.c stats: Fix the build under gcc 2024-06-05 09:23:40 +00:00
subr_syscall.c ktrace: Record syscall violations with KTR_CAPFAIL 2024-04-07 18:52:51 -05:00
subr_taskqueue.c Schedule fast taskqueue callouts on right CPU. 2023-12-26 22:55:24 -05:00
subr_terminal.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
subr_trap.c Optimize HPTS so that little work is done until we have a hpts thread that is over the connection threshold 2024-03-28 08:12:37 -04:00
subr_turnstile.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
subr_uio.c uio: Use switch statements when handling UIO_READ vs UIO_WRITE 2024-05-10 13:43:36 -07:00
subr_unit.c subr_unit.c: another attempt to fix the build 2023-08-18 19:28:42 +03:00
subr_vmem.c uma: Deduplicate uma_small_alloc 2024-05-25 19:24:46 +02:00
subr_witness.c Replace random sbuf_printf() with cheaper cat/putc. 2023-11-22 17:27:17 -05:00
sys_capability.c capsicum: SIGTRAP is delivered also on ECAPMODE error. 2024-05-21 21:51:50 -07:00
sys_eventfd.c kcmp(2): implement for generic file types 2024-01-24 07:11:26 +02:00
sys_generic.c kcmp_pget(): do not accept TIDs 2024-04-30 10:07:03 +03:00
sys_getrandom.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
sys_pipe.c kcmp(2): implement for generic file types 2024-01-24 07:11:26 +02:00
sys_procdesc.c kcmp(2): implement for procdesc 2024-01-24 07:11:27 +02:00
sys_process.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
sys_socket.c inpcb: fully retire inp_ppcb pointer 2024-03-29 12:18:32 -07:00
sys_timerfd.c timerfd_create: fix after cf742faa39 2024-03-06 18:28:02 +01:00
syscalls.c regen 2024-01-24 07:11:27 +02:00
syscalls.conf libsys: add a libsys.h 2024-04-16 17:48:07 +01:00
syscalls.master capsicum: allow rfork(2) in capability mode 2024-05-21 22:02:36 +02:00
sysctl_security_jail_children.sh tests: Fixing incomplete atf_skip if missing jail condition 2024-02-23 13:08:09 +01:00
systrace_args.c syscalls.master: correct return type of {read,write}v 2024-04-24 20:48:46 +01:00
sysv_ipc.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
sysv_msg.c SysV IPC: provide in-kernel helpers to obtain ipcs(8)-like information 2024-05-16 20:53:31 +03:00
sysv_sem.c SysV IPC: provide in-kernel helpers to obtain ipcs(8)-like information 2024-05-16 20:53:31 +03:00
sysv_shm.c SysV IPC: provide in-kernel helpers to obtain ipcs(8)-like information 2024-05-16 20:53:31 +03:00
tty.c kern: fix panic with disabled ttys 2024-02-26 15:11:27 -05:00
tty_compat.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
tty_info.c Replace random sbuf_printf() with cheaper cat/putc. 2023-11-22 17:27:17 -05:00
tty_inq.c kern: tty: fix recanonicalization 2024-01-24 13:48:31 -06:00
tty_outq.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
tty_pts.c kcmp(2): implement for generic file types 2024-01-24 07:11:26 +02:00
tty_tty.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
tty_ttydisc.c kern: tty: recanonicalize the buffer on ICANON/VEOF/VEOL changes 2024-01-15 20:55:59 -06:00
uipc_accf.c accept_filter: return different errors for non-listener and a busy socket 2024-04-24 21:55:58 -07:00
uipc_debug.c sockets: garbage collect SS_ISCONFIRMING 2024-01-30 10:38:33 -08:00
uipc_domain.c uipc_domain: Fix a typo in a source code comment 2024-04-21 09:51:14 +02:00
uipc_ktls.c ktls: catch invalid parameters earlier 2024-03-18 03:37:49 +01:00
uipc_mbuf.c mbuf: provide m_freemp() 2024-06-03 17:23:06 -07:00
uipc_mbuf2.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
uipc_mbufhash.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
uipc_mqueue.c mqueue: Introduce kern_kmq_timedreceive & kern_kmq_timedsend 2024-05-23 13:40:46 -06:00
uipc_sem.c kcmp(2): implement for generic file types 2024-01-24 07:11:26 +02:00
uipc_shm.c uipc_shm: Fix double check for shmfd->shm_path 2024-05-21 09:39:53 -04:00
uipc_sockbuf.c socket: Don't assume m0 != NULL in sbappendcontrol_locked() 2024-02-02 14:00:37 -05:00
uipc_socket.c sockets: hide socket hhook(9)s under SOCKET_HHOOK 2024-05-06 12:49:29 -07:00
uipc_syscalls.c ktrace: Record socket violations with KTR_CAPFAIL 2024-04-07 18:52:51 -05:00
uipc_usrreq.c unix: use m_freemp() when disposing unix socket buffers 2024-06-03 17:23:06 -07:00
vfs_acl.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vfs_aio.c lio_listio(2): add LIO_FOFFSET flag to ignore aiocb aio_offset 2024-02-11 03:53:50 +02:00
vfs_bio.c getblk: track "non-sterile" bufobj to avoid bo lock on miss if sterile 2024-06-16 14:09:45 -07:00
vfs_cache.c ktrace: Record namei violations with KTR_CAPFAIL 2024-04-07 18:52:51 -05:00
vfs_cluster.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vfs_default.c VFS: add VOP_GETLOWVNODE() 2023-11-28 19:32:53 +02:00
vfs_export.c sys: Remove ancient SCCS tags. 2023-11-26 22:23:30 -07:00
vfs_extattr.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vfs_hash.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vfs_init.c sys: Automated cleanup of cdefs and other formatting 2023-11-26 22:24:00 -07:00
vfs_lookup.c vfs_lookup.c: only call ktrcapfail() if KTRACE is enabled 2024-04-24 22:43:32 +03:00
vfs_mount.c vfs_domount_update(): postpone setting MNT_UNION until VFS_MOUNT() is done 2024-05-16 04:00:26 +03:00
vfs_mountroot.c Add an implementation of the 9P filesystem 2024-06-19 13:12:04 +01:00
vfs_subr.c getblk: track "non-sterile" bufobj to avoid bo lock on miss if sterile 2024-06-16 14:09:45 -07:00
vfs_syscalls.c Add kern_openatfp(9) 2024-01-24 07:13:26 +02:00
vfs_vnops.c uio: Use switch statements when handling UIO_READ vs UIO_WRITE 2024-05-10 13:43:36 -07:00
vnode_if.src VFS: add VOP_GETLOWVNODE() 2023-11-28 19:32:53 +02:00