freebsd-dev/sys/kern
Mateusz Guzik 45e1f85414 poll: use fget_unlocked or fget_only_user when feasible
This follows select by eleminating the use of filedesc lock.
This is a win for single-threaded processes and a mixed bag for others
as at small concurrency it is faster to take the lock instead of
refing/unrefing each file descriptor.

Nonetheless, removal of shared lock usage is a step towards a
mtx-protected fd table.
2021-01-29 11:23:44 +00:00
..
bus_if.m
capabilities.conf Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
clock_if.m
cpufreq_if.m
device_if.m
firmw.S Use a template assembly file for firmware object files. 2020-12-17 20:31:17 +00:00
genassym.sh
genoffset.c
genoffset.sh
imgact_aout.c Get rid of sv_errtbl and SV_ABI_ERRNO(). 2020-09-17 11:39:33 +00:00
imgact_binmisc.c imgact_binmisc: limit the extent of match on incoming entries 2020-11-08 04:24:29 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c vm_map_protect: allow to set prot and max_prot in one go. 2021-01-13 01:35:22 +02:00
imgact_shell.c
init_main.c dtrace: stop using eventhandlers for the part compiled into the kernel 2020-11-23 18:27:21 +00:00
init_sysent.c Reserve gaps in syscall numbers for local use 2021-01-26 18:27:45 +00:00
kern_acct.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_alq.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_clock.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_clocksource.c
kern_condvar.c
kern_conf.c Eliminate a locking panic when cleaning up UFS snapshots after a 2021-01-15 16:36:42 -08:00
kern_cons.c Remove sysctl_kern_consmute() 2020-10-05 15:54:19 +00:00
kern_context.c
kern_cpu.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_cpuset.c kern: cpuset: allow jails to modify child jails' roots 2020-12-19 03:30:06 +00:00
kern_ctf.c
kern_descrip.c fd: add fget_only_user 2021-01-29 11:23:43 +00:00
kern_dtrace.c dtrace: stop using eventhandlers for the part compiled into the kernel 2020-11-23 18:27:21 +00:00
kern_dump.c Always use 64-bit physical addresses for dump_avail[] in minidumps 2020-12-03 17:12:31 +00:00
kern_environment.c Move kernel env global variables, etc to sys/kenv.h 2020-10-07 06:16:37 +00:00
kern_et.c Remove NO_EVENTTIMERS support 2020-11-19 02:50:48 +00:00
kern_event.c Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
kern_exec.c exec_new_vmspace: print useful error message on ctty if stack cannot be mapped. 2021-01-12 01:15:43 +02:00
kern_exit.c ddb ps: Use the pidhash to enumerate processes not in allproc. 2020-12-31 16:00:05 -08:00
kern_fail.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_ffclock.c
kern_fork.c linux(4) clone(2): Correctly handle CLONE_FS and CLONE_FILES 2020-11-17 21:20:11 +00:00
kern_hhook.c
kern_idle.c
kern_intr.c Allow swi_sched() to be called from NMI context. 2020-07-25 15:19:38 +00:00
kern_jail.c jail: Handle a parent jail when a child is added to it 2021-01-28 21:51:09 -08:00
kern_kcov.c Mark COVERAGE and KCOV as part of KCSAN 2020-08-19 14:11:25 +00:00
kern_khelp.c
kern_kthread.c Provide ABI modules hooks for process exec/exit and thread exit. 2020-11-23 17:29:25 +00:00
kern_ktr.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_ktrace.c Move KTRUSERRET() from userret() to ast(). It's a really long 2020-10-03 12:03:08 +00:00
kern_linker.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_lock.c lockmgr: fix upgrade 2021-01-19 12:21:38 +00:00
kern_lockf.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_lockstat.c
kern_loginclass.c Drop "All rights reserved" from all my stuff. This includes 2020-10-28 13:46:11 +00:00
kern_malloc.c malloc_aligned: roundup allocation size up to next power of two 2021-01-21 23:34:10 +02:00
kern_mbuf.c mbuf: enable ext_pgs ("unmapped") mbufs by default 2021-01-08 13:43:30 -05:00
kern_mib.c jail: Consistently handle the pr_allow bitmask 2020-12-26 20:25:02 -08:00
kern_module.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_mtxpool.c
kern_mutex.c locks: push lock_delay_arg_init calls down 2020-11-24 03:49:37 +00:00
kern_ntptime.c Add kern_ntp_adjtime(9). 2020-12-04 18:56:44 +00:00
kern_osd.c
kern_physio.c Remove alignment requirements for KVA buffer mapping. 2020-11-29 01:30:17 +00:00
kern_pmc.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
kern_poll.c
kern_priv.c jail: Consistently handle the pr_allow bitmask 2020-12-26 20:25:02 -08:00
kern_proc.c Save on getpid in setproctitle by supporting -1 as curproc. 2021-01-16 09:36:54 +01:00
kern_procctl.c correct procctl(PROC_PROTMAX_STATUS _NOFORCE return 2020-05-01 14:30:59 +00:00
kern_prot.c pgrp: Prevent use after free. 2021-01-10 04:41:19 +02:00
kern_racct.c Drop "All rights reserved" from all my stuff. This includes 2020-10-28 13:46:11 +00:00
kern_rangelock.c
kern_rctl.c rctl(4): support throttling resource usage to 0 2021-01-11 15:36:57 -08:00
kern_resource.c vm_map_protect: allow to set prot and max_prot in one go. 2021-01-13 01:35:22 +02:00
kern_rmlock.c rms: several cleanups + debug read lockers handling 2020-11-07 16:57:53 +00:00
kern_rwlock.c locks: push lock_delay_arg_init calls down 2020-11-24 03:49:37 +00:00
kern_sdt.c
kern_sema.c
kern_sendfile.c sendfile: Clear page pointers when handling a pager error 2021-01-03 11:50:31 -05:00
kern_sharedpage.c random(4) FenestrasX: Push root seed version to arc4random(3) 2020-10-10 21:52:00 +00:00
kern_shutdown.c Add an option for entering KDB on recursive panics 2020-11-19 18:03:40 +00:00
kern_sig.c sigfastblock_setpend(): do not set PEND user flag unless TDP_SIGFASTPENDING is set. 2021-01-12 12:43:34 +02:00
kern_switch.c
kern_sx.c locks: push lock_delay_arg_init calls down 2020-11-24 03:49:37 +00:00
kern_synch.c Handle PCATCH in blockcount_sleep() so it can be interrupted. 2020-04-21 17:13:06 +00:00
kern_syscalls.c Move syscall_thread_{enter,exit}() into the slow path. This is only 2020-11-08 15:54:59 +00:00
kern_sysctl.c Move inner loop logic out of sysctl_sysctl_next_ls(). 2020-11-30 21:59:52 +00:00
kern_tc.c Add ddb 'show timecounter' command. 2021-01-18 09:51:48 +02:00
kern_thr.c Provide ABI modules hooks for process exec/exit and thread exit. 2020-11-23 17:29:25 +00:00
kern_thread.c thread: staticize thread_reap and move td_allocdomain 2020-11-26 06:59:27 +00:00
kern_time.c Stop using eventhandlers for itimers subsystem exec and exit hooks. 2020-11-21 21:43:36 +00:00
kern_timeout.c callout(9): Remove some leftover APM BIOS support 2020-11-27 20:46:02 +00:00
kern_tslog.c
kern_ubsan.c
kern_umtx.c freebsd32: take the _umtx_op struct definitions back 2020-11-23 00:58:14 +00:00
kern_uuid.c validate_uuid: absorb the rest of parse_uuid with a flags arg 2020-04-15 18:39:12 +00:00
kern_xxx.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
ksched.c
link_elf_obj.c vm_map_protect: allow to set prot and max_prot in one go. 2021-01-13 01:35:22 +02:00
link_elf.c vm_map_protect: allow to set prot and max_prot in one go. 2021-01-13 01:35:22 +02:00
linker_if.m
Make.tags.inc
Makefile
makesyscalls.sh makesyscalls.sh: improve the 'this is going away' message 2020-07-28 01:05:40 +00:00
md4c.c
md5c.c
msi_if.m o Add iommu de-initialization method for MSI interface. 2020-10-24 20:09:27 +00:00
p1003_1b.c
pic_if.m
posix4_mib.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
sched_4bsd.c sched: fix an incorrect comparison in sched_lend_user_prio_cond 2020-11-15 01:54:44 +00:00
sched_ule.c sched: fix an incorrect comparison in sched_lend_user_prio_cond 2020-11-15 01:54:44 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c Drop "All rights reserved" from all my stuff. This includes 2020-10-28 13:46:11 +00:00
subr_acl_posix1e.c vfs: remove the obsolete privused argument from vaccess 2020-08-05 09:27:03 +00:00
subr_atomic64.c
subr_autoconf.c
subr_blist.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_boot.c
subr_bufring.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_bus_dma.c Move the iommu stubs to a generic place, so they are available on all the 2020-10-23 21:27:48 +00:00
subr_bus.c devinfo sysctl handler: Do not write zero-length strings in to sbuf twice 2021-01-21 02:06:16 +03:00
subr_busdma_bufalloc.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_capability.c
subr_clock.c
subr_compressor.c
subr_counter.c Rationalize per-cpu zones. 2020-11-05 15:08:56 +00:00
subr_coverage.c Mark COVERAGE and KCOV as part of KCSAN 2020-08-19 14:11:25 +00:00
subr_csan.c Add NetBSD compatible bus_space_peek_N() and bus_space_poke_N() functions. 2020-09-19 11:06:41 +00:00
subr_devmap.c arm64: fix early devmap assertion 2021-01-13 17:27:44 -04:00
subr_devstat.c Fix asymmetry in devstat(9) calls by GEOM. 2020-10-24 21:07:10 +00:00
subr_disk.c Enable bioq 'car limit' added at r335066 at 128 bios. 2020-10-26 04:04:06 +00:00
subr_dummy_vdso_tc.c
subr_early.c
subr_epoch.c epoch: support non-preemptible epochs checking in_epoch() 2020-11-07 03:29:04 +00:00
subr_eventhandler.c
subr_fattime.c
subr_filter.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_firmware.c firmware(9): extend firmware_get() by a "no warn" flag. 2021-01-27 13:51:26 +00:00
subr_gtaskqueue.c Import kernel WireGuard support 2020-11-29 19:38:03 +00:00
subr_hash.c
subr_hints.c Move kernel env global variables, etc to sys/kenv.h 2020-10-07 06:16:37 +00:00
subr_intr.c make maximum interrupt number tunable on ARM, ARM64, MIPS, and RISC-V 2021-01-18 16:36:39 -08:00
subr_kdb.c sysctl: improve debug.kdb.panic_str description 2021-01-09 11:10:42 -07:00
subr_kobj.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_lock.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_log.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_mchain.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_module.c sysctl debug.dump_modinfo should recognize font module 2021-01-08 09:24:49 +02:00
subr_msgbuf.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_param.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
subr_pcpu.c Add more per-cpu zones. 2020-11-09 00:34:23 +00:00
subr_pctrie.c Use SMR to provide safe unlocked lookup for pctries from SMR zones 2020-07-24 17:32:10 +00:00
subr_physmem.c Add support for hw.physmem tunable for ARM/ARM64/RISC-V platforms 2020-12-03 05:39:27 +00:00
subr_pidctrl.c
subr_power.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_prf.c kvprintf(9): add missing FALLTHROUGH 2021-01-22 00:18:40 +01:00
subr_prng.c Add prng(9) API 2020-08-13 20:48:14 +00:00
subr_prof.c
subr_rangeset.c
subr_rman.c
subr_rtc.c Address whitespace nits in subr_rtc.c 2020-09-28 17:19:57 +00:00
subr_sbuf.c
subr_scanf.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_sfbuf.c
subr_sglist.c Step 4.2: start divorce of M_EXT and M_EXTPG 2020-05-03 00:37:16 +00:00
subr_sleepqueue.c Fix TDP_WAKEUP/thr_wake(curthread->td_tid) after r366428. 2020-12-13 19:45:42 +00:00
subr_smp.c smp: fix smp_rendezvous_cpus_retry usage before smp starts 2020-11-19 04:27:51 +00:00
subr_smr.c
subr_stack.c kern.tty_info_kstacks: add a compact format 2020-07-06 16:33:28 +00:00
subr_stats.c
subr_syscall.c Allow some VOPs to return ERELOOKUP to indicate VFS operation restart at top level. 2020-11-13 09:42:32 +00:00
subr_taskqueue.c
subr_terminal.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_trap.c sigfastblock: do not skip cursig/postsig loop in ast() 2021-01-12 12:45:26 +02:00
subr_turnstile.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_uio.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_unit.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
subr_vmem.c vmem: Revert r364744 2020-12-01 16:06:31 +00:00
subr_witness.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
sys_capability.c
sys_eventfd.c Expose eventfd in the native API/ABI using a new __specialfd syscall 2020-12-27 12:57:26 +02:00
sys_generic.c poll: use fget_unlocked or fget_only_user when feasible 2021-01-29 11:23:44 +00:00
sys_getrandom.c
sys_pipe.c Track pipe(2) reads and writes as rusage message receives and sends, a 2021-01-10 12:16:39 +00:00
sys_procdesc.c procdesc: convert the zone to a malloc type 2020-11-09 00:05:21 +00:00
sys_process.c Get rid of sa->narg. It serves no purpose; use sa->callp->sy_narg instead. 2020-09-27 18:47:06 +00:00
sys_socket.c aio: micro-optimize the lio_opcode assignments 2021-01-20 09:02:25 -07:00
syscalls.c Reserve gaps in syscall numbers for local use 2021-01-26 18:27:45 +00:00
syscalls.master Reserve gaps in syscall numbers for local use 2021-01-26 18:27:45 +00:00
systrace_args.c Regenerate syscall files after reallocation of aio_writev/aio_readv 2021-01-07 19:50:32 -07:00
sysv_ipc.c
sysv_msg.c jail: Add prison_isvalid() and prison_isalive() 2021-01-18 10:56:20 -08:00
sysv_sem.c jail: Add prison_isvalid() and prison_isalive() 2021-01-18 10:56:20 -08:00
sysv_shm.c jail: Add prison_isvalid() and prison_isalive() 2021-01-18 10:56:20 -08:00
tty_compat.c
tty_info.c kern.tty_info_kstacks: set compact format as default 2020-07-06 16:34:15 +00:00
tty_inq.c
tty_outq.c
tty_pts.c
tty_tty.c
tty_ttydisc.c Implement FLUSHO 2020-08-27 05:11:15 +00:00
tty.c Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
uipc_accf.c
uipc_debug.c
uipc_domain.c
uipc_ktls.c ktls: Improve handling of the bind_threads tunable a bit 2021-01-19 21:32:33 -05:00
uipc_mbuf2.c
uipc_mbuf.c Permit sending empty fragments for TLS 1.0. 2020-10-13 17:30:34 +00:00
uipc_mbufhash.c Implement mbuf hashing routines for IP over infiniband, IPoIB. 2020-10-22 09:17:56 +00:00
uipc_mqueue.c jail: Add prison_isvalid() and prison_isalive() 2021-01-18 10:56:20 -08:00
uipc_sem.c Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
uipc_shm.c Split out cwd/root/jail, cmask state from filedesc table 2020-11-17 21:14:13 +00:00
uipc_sockbuf.c Permit sending empty fragments for TLS 1.0. 2020-10-13 17:30:34 +00:00
uipc_socket.c kern: soclose: don't sleep on SO_LINGER w/ timeout=0 2020-12-04 04:39:48 +00:00
uipc_syscalls.c
uipc_usrreq.c fd: provide a dedicated closef variant for unix socket code 2021-01-13 03:27:03 +01:00
vfs_acl.c vfs: fix trivial whitespace issues which don't interefere with blame 2020-07-10 09:01:36 +00:00
vfs_aio.c aio: micro-optimize the lio_opcode assignments 2021-01-20 09:02:25 -07:00
vfs_bio.c Fix getblk() with GB_NOCREAT returning false-negatives. 2021-01-28 11:24:24 -08:00
vfs_cache.c cache: add missing MNT_NOSYMFOLLOW check to symlink traversal 2021-01-27 15:08:38 +00:00
vfs_cluster.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vfs_default.c Make MAXPHYS tunable. Bump MAXPHYS to 1M. 2020-11-28 12:12:51 +00:00
vfs_export.c kern: clean up empty lines in .c and .h files 2020-09-01 22:12:32 +00:00
vfs_extattr.c vfs_extattr: Allow extattr names up to the full max 2020-05-14 03:01:23 +00:00
vfs_hash.c vfs: avoid exposing partially constructed vnodes 2020-09-05 00:26:03 +00:00
vfs_init.c vfs: fix trivial whitespace issues which don't interefere with blame 2020-07-10 09:01:36 +00:00
vfs_lookup.c cache: add symlink support to lockless lookup 2021-01-23 15:04:43 +00:00
vfs_mount.c vfs: denote vnode being a mount point with VIRF_MOUNTPOINT 2021-01-03 06:50:06 +00:00
vfs_mountroot.c vfs: denote vnode being a mount point with VIRF_MOUNTPOINT 2021-01-03 06:50:06 +00:00
vfs_subr.c cache: add symlink support to lockless lookup 2021-01-23 15:04:43 +00:00
vfs_syscalls.c fd: add refcount argument to falloc_noinstall 2021-01-13 15:29:34 +00:00
vfs_vnops.c vfs: set NC_KEEPPOSENTRY alongside NOCACHE when creating a file 2021-01-13 15:29:34 +00:00
vnode_if.src cache: add symlink support to lockless lookup 2021-01-23 15:04:43 +00:00