freebsd-dev/sys/kern
Andrew Gallatin 796d4eb89e make m_getm2() resilient to zone_jumbop exhaustion
When the zone_jumbop is exhausted, most things using
using sosend* (like sshd)  will eventually
fail or hang if allocations are limited to the
depleted jumbop zone.  This makes it imossible to
communicate with a box which is under an attach which
exhausts the jumbop zone.

Rather than depending on the page size zone, also try cluster
allocations to satisfy larger requests.  This allows me
to ssh to, and serve 100Gb/s of traffic from a server which
under attack and has had its page-sized zone exhausted.

Reviewed by:	glebius, markj, rmacklem
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D26150
2020-08-31 13:53:14 +00:00
..
bus_if.m Remove trailing white space. 2020-02-26 16:22:28 +00:00
capabilities.conf Permit cpuset_(get|set)domain() in capability mode. 2020-07-06 16:34:29 +00:00
clock_if.m
cpufreq_if.m
device_if.m
genassym.sh
genoffset.c Merge td_epochnest with td_no_sleeping. 2019-10-29 17:28:25 +00:00
genoffset.sh
imgact_aout.c Make ps_strings in struct image_params into a pointer. 2020-04-15 20:21:30 +00:00
imgact_binmisc.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
imgact_elf32.c
imgact_elf64.c
imgact_elf.c Pass pointers to info parsed from notes, to brandinfo->header_supported filter. 2020-08-23 20:06:55 +00:00
imgact_shell.c
init_main.c Use SI_ORDER_(FOURTH|FIFTH) rather than bespoke versions. 2020-07-22 23:35:41 +00:00
init_sysent.c Regenerate. 2020-07-06 16:34:49 +00:00
kern_acct.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_alq.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
kern_clock.c Allow swi_sched() to be called from NMI context. 2020-07-25 15:19:38 +00:00
kern_clocksource.c
kern_condvar.c
kern_conf.c Retire devctl_notify_f() 2020-08-29 04:30:06 +00:00
kern_cons.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_context.c
kern_cpu.c Don't try to set frequendcy for enumerated but newer started CPUs. 2020-04-29 14:14:15 +00:00
kern_cpuset.c Allow accesses of the caller's CPU and domain sets in capability mode. 2020-07-06 16:34:09 +00:00
kern_ctf.c vfs: drop the mostly unused flags argument from VOP_UNLOCK 2020-01-03 22:29:58 +00:00
kern_descrip.c fd: pwd_drop after releasing filedesc lock 2020-08-22 16:57:45 +00:00
kern_dtrace.c
kern_dump.c - Cleanups related to sparc64 removal. 2020-07-28 10:58:37 +00:00
kern_environment.c kenv: avoid sleepable alloc for integer tunables 2020-08-14 21:37:38 +00:00
kern_et.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_event.c kqueue: fix conversion of timer data to sbintime 2020-04-21 03:57:30 +00:00
kern_exec.c cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
kern_exit.c Fix several issues with process group orphanage. 2020-08-22 21:32:11 +00:00
kern_fail.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_ffclock.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_fork.c fd: remove fd_lastfile 2020-07-15 10:24:04 +00:00
kern_hhook.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
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 vfs: respect PRIV_VFS_LOOKUP in vaccess_smr 2020-08-25 14:18:50 +00: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 Do a lockless check in kthread_suspend_check 2020-07-25 07:14:33 +00:00
kern_ktr.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_ktrace.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_linker.c Clarify which hints file is the source of an error message. 2020-06-01 03:37:58 +00:00
kern_lock.c lockmgr: add missing 'continue' to account for spuriously failed fcmpset 2020-07-24 17:28:24 +00:00
kern_lockf.c lockf: elide avoidable locking in lf_advlockasync 2020-07-05 23:07:54 +00:00
kern_lockstat.c
kern_loginclass.c
kern_malloc.c LinuxKPI: Implement ksize() function. 2020-08-29 19:26:31 +00:00
kern_mbuf.c make m_getm2() resilient to zone_jumbop exhaustion 2020-08-31 13:53:14 +00:00
kern_mib.c Improve comment for compat32 handling of sysctl hw.pagesizes. 2020-05-15 13:53:10 +00:00
kern_module.c
kern_mtxpool.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
kern_mutex.c mtx: add mtx_wait_unlocked 2020-08-04 23:00:00 +00:00
kern_ntptime.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_osd.c
kern_physio.c
kern_pmc.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_poll.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_priv.c vfs: respect PRIV_VFS_LOOKUP in vaccess_smr 2020-08-25 14:18:50 +00:00
kern_proc.c cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
kern_procctl.c correct procctl(PROC_PROTMAX_STATUS _NOFORCE return 2020-05-01 14:30:59 +00:00
kern_prot.c cred: add more asserts for td_realucred == td_ucred 2020-08-01 16:02:32 +00:00
kern_racct.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_rangelock.c
kern_rctl.c Retire devctl_notify_f() 2020-08-29 04:30:06 +00:00
kern_resource.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
kern_rmlock.c rms: fix typo: bitmamp -> bitmap 2020-08-04 20:31:03 +00:00
kern_rwlock.c locks: fix a long standing bug for primitives with kdtrace but without spinning 2020-07-23 17:26:53 +00:00
kern_sdt.c
kern_sema.c
kern_sendfile.c Fix hang due to missing unbusy in sendfile when an async data I/O fails. 2020-06-06 00:02:50 +00:00
kern_sharedpage.c kern_sharedpage.c: Add exec_sysvec_init_secondary() helper. 2020-08-23 19:43:47 +00:00
kern_shutdown.c Fix writing of the final block of encrypted, compressed kernel dumps. 2020-08-27 17:36:06 +00:00
kern_sig.c cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
kern_switch.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_sx.c locks: fix a long standing bug for primitives with kdtrace but without spinning 2020-07-23 17:26:53 +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 add a sanity check to the system call registration code 2019-12-11 15:52:29 +00:00
kern_sysctl.c style(9): end continued line with operator. 2020-04-16 17:24:13 +00:00
kern_tc.c Remove double-calls to tc_get_timecount() to warm timecounters. 2020-06-10 22:30:32 +00:00
kern_thr.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
kern_thread.c cred: add more asserts for td_realucred == td_ucred 2020-08-01 16:02:32 +00:00
kern_time.c Remove bogus use of useracc() in (clock_)nanosleep. 2020-04-14 20:53:12 +00:00
kern_timeout.c Remove misleading / redundant bzero in callout_callwheel_init 2020-03-16 22:25:25 +00:00
kern_tslog.c
kern_ubsan.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
kern_umtx.c sys/: Document few more sysctls. 2020-03-02 15:30:52 +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
ksched.c
link_elf_obj.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
link_elf.c Rerun kernel ifunc resolvers after all CPUs have started 2020-07-05 14:38:22 +00:00
linker_if.m
Make.tags.inc
Makefile sys/kern sysent: re-add dependency on capabilities.conf 2020-02-12 19:06:34 +00:00
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
p1003_1b.c
pic_if.m
posix4_mib.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
sched_4bsd.c sys/: Document few more sysctls. 2020-03-02 15:30:52 +00:00
sched_ule.c sys/: Document few more sysctls. 2020-03-02 15:30:52 +00:00
serdev_if.m
stack_protector.c
subr_acl_nfs4.c vfs: remove the obsolete privused argument from vaccess 2020-08-05 09:27:03 +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 emulated atomic64: disable interrupts as the lock mechanism on !SMP 2020-01-03 18:29:20 +00:00
subr_autoconf.c
subr_blist.c Fix an overflow bug in the blist allocator that needlessly capped max 2020-07-25 18:29:10 +00:00
subr_boot.c
subr_bufring.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_bus_dma.c crypto(9): add CRYPTO_BUF_VMPAGE 2020-08-26 02:37:42 +00:00
subr_bus.c We don't need to INCLUDENUL, so turn it off to avoid assertion... 2020-08-29 11:46:50 +00:00
subr_busdma_bufalloc.c
subr_capability.c Remove unused SYSINIT macros for capability rights. 2020-03-26 15:02:37 +00:00
subr_clock.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_compressor.c clamp kernel dump compression level when using gzip 2020-02-20 23:53:48 +00:00
subr_counter.c Add COUNTER_U64_SYSINIT() and COUNTER_U64_DEFINE_EARLY(). 2020-03-06 19:09:01 +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 char and short types to kcsan 2020-07-04 06:22:05 +00:00
subr_devmap.c Print upper 32 bits in devmap table entries 2019-12-20 03:40:53 +00:00
subr_devstat.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_disk.c
subr_dummy_vdso_tc.c
subr_early.c
subr_epoch.c Add full support support for dynamic allocation and freeing of epoch's. 2020-08-07 15:32:42 +00:00
subr_eventhandler.c
subr_fattime.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_filter.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_firmware.c Fix a panic when unloading firmware 2020-06-29 21:35:50 +00:00
subr_gtaskqueue.c Remove the "config" taskqgroup and its KPIs. 2020-03-30 14:24:03 +00:00
subr_hash.c
subr_hints.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_intr.c INTRNG: only shuffle for !EARLY_AP_STARTUP 2020-07-21 22:47:02 +00:00
subr_kdb.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_kobj.c sys/: Document few more sysctls. 2020-03-02 15:30:52 +00:00
subr_lock.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_log.c
subr_mchain.c
subr_module.c
subr_msgbuf.c
subr_param.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_pcpu.c Add COUNTER_U64_SYSINIT() and COUNTER_U64_DEFINE_EARLY(). 2020-03-06 19:09:01 +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 Convert arm's physmem interface to MI code 2020-04-19 00:12:30 +00:00
subr_pidctrl.c
subr_power.c
subr_prf.c remove %n support from printf(9) 2020-05-09 15:56:02 +00:00
subr_prng.c Add prng(9) API 2020-08-13 20:48:14 +00:00
subr_prof.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_rangeset.c
subr_rman.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_rtc.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_sbuf.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_scanf.c
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 Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_smp.c Provide more correct description for sysctl kern.smp.cores. 2020-08-03 17:17:17 +00:00
subr_smr.c Use COUNTER_U64_DEFINE_EARLY() in places where it simplifies things. 2020-03-06 19:10:00 +00:00
subr_stack.c kern.tty_info_kstacks: add a compact format 2020-07-06 16:33:28 +00:00
subr_stats.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
subr_syscall.c Retire procfs-based process debugging. 2020-04-01 19:22:09 +00:00
subr_taskqueue.c Add flag to struct task to mark the task as requiring network epoch. 2020-02-11 18:48:07 +00:00
subr_terminal.c vt(4): reset scrollback and cursor position after clearing history buffer 2020-06-02 01:21:48 +00:00
subr_trap.c Retire procfs-based process debugging. 2020-04-01 19:22:09 +00:00
subr_turnstile.c ddb(4): show lockchain: Don't dereference LK_KERNPROC 2020-04-02 20:47:51 +00:00
subr_uio.c Remove copyinfrom() and copyinstrfrom(). 2020-05-20 20:58:17 +00:00
subr_unit.c Remove duplicated empty lines from kern/*.c 2020-01-30 20:05:05 +00:00
subr_vmem.c vmem: Avoid allocating span tags when segments are never released. 2020-08-26 14:31:35 +00:00
subr_witness.c cache: convert bucketlocks to a mutex 2020-08-26 12:52:17 +00:00
sys_capability.c Enter a write sequence when updating rights. 2020-03-19 15:39:45 +00:00
sys_generic.c poll: factor fd lookup out of scan and rescan 2020-07-15 10:24:39 +00:00
sys_getrandom.c Fix a typo in r356667 comment 2020-01-12 23:52:16 +00:00
sys_pipe.c Rename the pipe_map field of struct pipe. 2020-08-14 14:50:41 +00:00
sys_procdesc.c procdesc: allow to collect status through wait(1) if process is traced 2019-11-25 18:33:21 +00:00
sys_process.c cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
sys_socket.c Lock the socket in soo_stat(). 2020-03-20 20:09:00 +00:00
syscalls.c Update the files created from the new syscalls.master from r361599. 2020-05-28 21:23:02 +00:00
syscalls.master Add a syscall for the nfs-over-tls daemons to use. 2020-05-28 21:06:10 +00:00
systrace_args.c Update the files created from the new syscalls.master from r361599. 2020-05-28 21:23:02 +00:00
sysv_ipc.c
sysv_msg.c Avoid copying out kernel pointers from msgctl(IPC_STAT). 2020-07-09 17:26:49 +00:00
sysv_sem.c Apply the logic from r363051 to semctl(2) and __sem_base field. 2020-07-09 18:34:54 +00:00
sysv_shm.c Centralize compatability translation macros. 2020-04-14 20:30:48 +00: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_pts: don't rely on tty header pollution for sys/mutex.h 2019-11-29 03:56:01 +00:00
tty_tty.c
tty_ttydisc.c Implement FLUSHO 2020-08-27 05:11:15 +00:00
tty.c Implement FLUSHO 2020-08-27 05:11:15 +00:00
uipc_accf.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
uipc_debug.c
uipc_domain.c - Move global network epoch definition to epoch.h, as more different 2020-01-15 03:34:21 +00:00
uipc_ktls.c Add support for KTLS RX via software decryption. 2020-07-23 23:48:18 +00:00
uipc_mbuf2.c m_pulldown(): Change an if () panic() into a KASSERT(). 2019-11-06 22:40:19 +00:00
uipc_mbuf.c Add m__getjcl SDT probe. 2020-08-05 11:39:09 +00:00
uipc_mbufhash.c
uipc_mqueue.c vfs: remove the always-curthread td argument from VOP_RECLAIM 2020-08-19 07:28:01 +00:00
uipc_sem.c vfs: remove the obsolete privused argument from vaccess 2020-08-05 09:27:03 +00:00
uipc_shm.c vfs: remove the obsolete privused argument from vaccess 2020-08-05 09:27:03 +00:00
uipc_sockbuf.c Guard sbcompress_ktls_rx with KERN_TLS 2020-07-25 07:15:23 +00:00
uipc_socket.c Add the MSG_TLSAPPDATA flag to indicate "return ENXIO" for non-application TLS 2020-08-19 23:42:33 +00:00
uipc_syscalls.c
uipc_usrreq.c Add SOL_LOCAL symbolic constant for unix socket option level. 2020-08-03 22:13:02 +00: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 vfs: drop the error parameter from vn_isdisk, introduce vn_isdisk_error 2020-08-19 02:51:17 +00:00
vfs_bio.c vfs: drop the error parameter from vn_isdisk, introduce vn_isdisk_error 2020-08-19 02:51:17 +00:00
vfs_cache.c cache: don't update timestmaps on found entry 2020-08-27 06:31:55 +00:00
vfs_cluster.c vfs: fix trivial whitespace issues which don't interefere with blame 2020-07-10 09:01:36 +00:00
vfs_default.c vfs: assert that VI_TEXT_REF is not already set 2020-08-16 18:45:31 +00:00
vfs_export.c vfs: fix trivial whitespace issues which don't interefere with blame 2020-07-10 09:01:36 +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 hash: annotate the lock with __exclusive_cache_line 2020-08-05 19:34:13 +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 Add a comment to clarify when and why cached names are deleted 2020-08-27 22:14:58 +00:00
vfs_mount.c Fix a "v_seqc_users == 0 not met" panic when VFS_STATFS() fails during mount. 2020-08-26 21:49:43 +00:00
vfs_mountroot.c vfs: fix trivial whitespace issues which don't interefere with blame 2020-07-10 09:01:36 +00:00
vfs_subr.c vfs: respect PRIV_VFS_LOOKUP in vaccess_smr 2020-08-25 14:18:50 +00:00
vfs_syscalls.c devfs: rework si_usecount to track opens 2020-08-11 14:27:57 +00:00
vfs_vnops.c cache: drop the always curthread argument from reverse lookup routines 2020-08-24 08:57:02 +00:00
vnode_if.src vfs: remove the always-curthread td argument from VOP_RECLAIM 2020-08-19 07:28:01 +00:00