freebsd-dev/sys/net
Luiz Otavio O Souza 9224217213 Remove the mtx_sleep() from the kqueue f_event filter.
The filter is called from the network hot path and must not sleep.

The filter runs with the descriptor lock held and does not manipulates the
buffers, so it is not necessary sleep when the hold buffer is in use.

Just ignore the hold buffer contents when it is being copied to user space
(when hold buffer in use is set).

This fix the "Sleeping thread owns a non-sleepable lock" panic when the
userland thread is too busy reading the packets from bpf(4).

PR:		200323
MFC after:	2 weeks
Sponsored by:	Rubicon Communications (Netgate)
2015-08-03 22:14:45 +00:00
..
altq Another attempt to make this compile on more architectures after r284777. 2015-06-25 23:16:01 +00:00
bpf_buffer.c Remove the sleep from the buffer allocation routine. 2015-07-31 20:25:54 +00:00
bpf_buffer.h
bpf_filter.c Include strings.h so that bpf_filter.c can be built in userland. 2014-03-19 13:10:25 +00:00
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c - Modify vm_page_unwire() and vm_page_enqueue() to directly accept 2014-06-16 18:15:27 +00:00
bpf_zerocopy.h
bpf.c Remove the mtx_sleep() from the kqueue f_event filter. 2015-08-03 22:14:45 +00:00
bpf.h Remove two unnecessary sleeps from the hot path in bpf(4). 2015-07-31 21:43:27 +00:00
bpfdesc.h
bridgestp.c
bridgestp.h
ethernet.h Move struct ether_vlan_header to ethernet.h, out of if_vlan_var.h, 2014-11-11 10:22:33 +00:00
fddi.h
firewire.h
flowtable.c Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
flowtable.h Add my copyright to flowtable. 2014-02-17 12:07:17 +00:00
ieee8023ad_lacp.c ifmedia changes: 2015-04-07 21:31:17 +00:00
ieee8023ad_lacp.h Use printb() for boolean flags in ro_opts and actor_state for LACP. 2014-10-05 02:37:01 +00:00
ieee_oui.h Bump bhyve allocation up to 20 bits to avoid 2014-05-20 02:59:13 +00:00
if_arc.h
if_arcsubr.c Fix typo. 2015-01-09 20:29:13 +00:00
if_arp.h Remove struct arpcom. It is unused by most interface types, that allocate 2014-11-07 15:14:10 +00:00
if_atm.h
if_atmsubr.c Mechanically convert to if_inc_counter(). 2014-09-19 10:39:58 +00:00
if_bridge.c Fix panic when adding vtnet interfaces to a bridge 2015-06-13 19:39:21 +00:00
if_bridgevar.h
if_clone.c Fix group membership of cloned interfaces when one is moved by 2015-03-02 20:00:03 +00:00
if_clone.h Fix group membership of cloned interfaces when one is moved by 2015-03-02 20:00:03 +00:00
if_dead.c Provide a dead version of if_get_counter. 2014-12-12 16:10:42 +00:00
if_debug.c Remove ifq_drops from struct ifqueue. Now queue drops are accounted in 2014-09-19 09:01:19 +00:00
if_disc.c Make checks for rt_mtu generic: 2014-11-06 13:13:09 +00:00
if_dl.h
if_edsc.c Virtualize if_edsc(4). 2014-10-05 21:27:26 +00:00
if_enc.c Our packet filters use mbuf's rcvif pointer to determine incoming interface. 2014-10-07 13:31:04 +00:00
if_enc.h
if_epair.c Virtualize if_epair(4). An if_xname check for both "a" and "b" interfaces 2014-10-10 06:45:13 +00:00
if_ethersubr.c Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
if_fddisubr.c After r275196 unbreak NOIP and NOINET kernels by hiding an otherwise 2014-11-28 14:51:49 +00:00
if_fwsubr.c After r275196 unbreak NOIP and NOINET kernels by hiding an otherwise 2014-11-28 14:51:49 +00:00
if_gif.c Eliminate the use of m_copydata() in gif_encapcheck(). 2015-07-29 14:07:43 +00:00
if_gif.h Add an ability accept encapsulated packets from different sources by one 2015-05-15 12:19:45 +00:00
if_gre.c Add new socket ioctls SIOC[SG]TUNFIB to set FIB number of encapsulated 2015-05-12 07:37:27 +00:00
if_gre.h Extern declarations in C files loses compile-time checking that 2014-12-25 21:32:37 +00:00
if_iso88025subr.c Do not return unlocked/unreferenced lle in arpresolve/nd6_storelladdr - 2014-11-27 23:06:25 +00:00
if_lagg.c Fix a possible mbuf leak on interface departure. 2015-03-26 23:40:22 +00:00
if_lagg.h Factor out mbuf hashing code from LAGG driver so that other network 2015-03-11 16:02:24 +00:00
if_llatbl.c
if_llatbl.h
if_llc.h
if_loop.c Fix if_loop so bpfwrite() can use it regardless of the state of 2015-07-06 02:12:49 +00:00
if_me.c Add new socket ioctls SIOC[SG]TUNFIB to set FIB number of encapsulated 2015-05-12 07:37:27 +00:00
if_media.c Make IFMEDIA_DEBUG a kernel option. 2015-04-21 10:35:23 +00:00
if_media.h ifmedia changes: 2015-04-07 21:31:17 +00:00
if_mib.c Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00
if_mib.h
if_pflog.h
if_pfsync.h Remove more constants related to static sysctl nodes. The MAXID constants 2014-02-25 18:44:33 +00:00
if_sppp.h
if_spppfr.c Mechanically convert to if_inc_counter(). 2014-09-19 10:39:58 +00:00
if_spppsubr.c Convert in_ifaddr_lock and in6_ifaddr_lock to rmlock. 2015-07-29 08:12:05 +00:00
if_stf.c Ansify if_stf.c 2015-07-31 09:04:22 +00:00
if_tap.c Redo r274966. Instead of global all-interface all-vnet undocumented sysctl, 2015-04-10 09:50:13 +00:00
if_tap.h
if_tapvar.h
if_tun.c * Address review (and add a bit myself). 2015-07-12 18:14:38 +00:00
if_tun.h
if_types.h After r281643 an #ifdef IFT_FOO preprocessor directive returns false, 2015-05-02 20:37:40 +00:00
if_var.h Move ALTQ from contrib to net/altq. The ALTQ code is for many years 2015-04-16 20:22:40 +00:00
if_vlan_var.h Move struct ether_vlan_header to ethernet.h, out of if_vlan_var.h, 2014-11-11 10:22:33 +00:00
if_vlan.c Don't propagate SIOCSIFCAPS from a vlan(4) to its parent. This leads to 2015-04-23 13:19:00 +00:00
if_vxlan.c Start process of removing the use of the deprecated "M_FLOWID" flag 2014-12-01 11:45:24 +00:00
if_vxlan.h Add vxlan interface 2014-10-20 14:42:42 +00:00
if.c Prevent null-pointer dereferencing. 2015-07-20 08:21:51 +00:00
if.h * Add SIOCGI2C driver ioctl used to retrieve i2c info. 2014-08-29 18:02:58 +00:00
ifq.h Move ALTQ from contrib to net/altq. The ALTQ code is for many years 2015-04-16 20:22:40 +00:00
iso88025.h Garbage collect long time obsoleted (or never used) stuff from routing API. 2014-03-15 06:49:32 +00:00
netisr_internal.h
netisr.c Currently there is no easy way to specify net.isr.maxthreads = all cpus. We need 2015-04-25 16:12:06 +00:00
netisr.h Update the IPv4 input path to handle reassembled frames and incoming frames 2014-09-09 04:18:20 +00:00
netmap_user.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
netmap.h Sync netmap sources with the version in our private tree. 2015-07-10 05:51:36 +00:00
paravirt.h Update to the current version of netmap. 2014-08-16 15:00:01 +00:00
pfil.c
pfil.h
pfkeyv2.h looks like all archs either have clang or cdefs included before.. 2015-08-02 21:33:40 +00:00
pfvar.h Minor change to the macros to make sure that if an AF is passed that is neither AF_INET6 nor AF_INET that we don't touch random bits of memory. 2015-04-15 14:46:45 +00:00
ppp_defs.h
radix_mpath.c - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +00:00
radix_mpath.h
radix.c Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
radix.h Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
raw_cb.c
raw_cb.h
raw_usrreq.c
route.c Follow r256586 and rename the kernel version of the Free() macro to 2015-07-30 02:09:03 +00:00
route.h Finish r274175: do control plane MTU tracking. 2014-11-17 01:05:29 +00:00
rss_config.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
rss_config.h Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
rtsock.c Remove ifq_drops from struct ifqueue. Now queue drops are accounted in 2014-09-19 09:01:19 +00:00
sff8436.h * Update SFF-8024 Identifier constants. 2015-05-16 13:11:35 +00:00
sff8472.h * Update SFF-8024 Identifier constants. 2015-05-16 13:11:35 +00:00
slcompress.c
slcompress.h
toeplitz.c Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
toeplitz.h Refactor / restructure the RSS code into generic, IPv4 and IPv6 specific 2015-01-18 18:06:40 +00:00
vnet.c
vnet.h Remove SYSCTL_VNET_* macros, and simply put CTLFLAG_VNET where needed. 2014-11-07 09:39:05 +00:00