freebsd-dev/sys
Warner Losh e8827f4094 g_vfs_done: Report when we switch on ENXIO conversion
On the 0 -> 1 transition of sc_enxio_active, report that we're doing
this. This is a rare, but interesting, event. Convert to using atomics
to set this field to prevent a rare race:

    In CAM, when we invalidate a device, one thread (T1) will start the
    process in error processing called from *dadone
    (cam_periph_error). This routine will queue work to xpt_async_td
    (T2) and indicate to *dadone to call biodone(ENXIO) for the bio. T2
    wakes up and basically waits to acquire the periph lock. T2 will do
    so when T1 drops the periph lock just before T1's call to
    biodone. T2 acquires the lock and calls biodone(ENXIO) on all
    pending bios. These two threads will race and we could lose the
    printf or get two in rare cases. Since we only touch sc_enxio_active
    in an error path that's infrequent, the extra atomic traffic will be
    rare but will ensure robustness.

Sponsored by:		Netflix
Reviewed by:		kib
Differential Revision:	https://reviews.freebsd.org/D35037
2022-04-24 14:01:08 -06:00
..
amd64 amd64 NOTES: Add entries for qlxgb, glxgbe, and glxge. 2022-04-22 15:18:06 -07:00
arm busdma_bounce: Add free_bounce_pages helper function. 2022-04-21 10:42:14 -07:00
arm64 busdma_bounce: Add free_bounce_pages helper function. 2022-04-21 10:42:14 -07:00
bsm
cam nda: Fix comment 2022-04-23 20:31:46 -06:00
cddl zfs: merge openzfs/zfs@a86e08941 (master) into main 2022-03-08 18:53:02 +01:00
compat linux: plug a set-but-not-used var 2022-04-19 12:45:57 +00:00
conf FB_INSTALL_CDEV: Remove this option and related code. 2022-04-21 10:29:14 -07:00
contrib acpica: Drop a local patch in favor of an upstream patch 2022-04-15 16:29:09 -04:00
crypto ccp: Use devclass_find to lookup devclass in db_show_ccp. 2022-04-21 10:29:14 -07:00
ddb
dev qlxgb/qlxgbe/qlxge: Fix build without INET and/or without INET6. 2022-04-22 15:18:05 -07:00
dts
fs ext2: plug a set-but-not-used var 2022-04-19 12:45:57 +00:00
gdb
geom g_vfs_done: Report when we switch on ENXIO conversion 2022-04-24 14:01:08 -06:00
gnu
i386 FB_INSTALL_CDEV: Remove this option and related code. 2022-04-21 10:29:14 -07:00
isa vgapm: Use devclass_find to lookup the vga devclass in suspend and resume. 2022-04-21 10:29:15 -07:00
kern KTLS: Move OCF function pointers out of ktls_session. 2022-04-22 15:52:12 -07:00
kgssapi kgssapi krb5: Remove unused variables. 2022-04-06 16:45:29 -07:00
libkern libkern: Fix two typos in source code comments 2022-04-09 09:36:34 +02:00
modules mac_pimd: Support for privilege drop in pimd 2022-04-20 08:07:37 +02:00
net pf: Add per-rule timestamps for rule and eth_rule 2022-04-22 19:53:20 +02:00
net80211 net80211: Fix traffic hang on STA/AP VAPs on a multi-VAP interface 2022-04-21 22:49:01 -07:00
netgraph ng_netflow: Move various variables under INET || INET6. 2022-04-13 16:08:21 -07:00
netinet sctp: cleanup 2022-04-19 21:40:22 +02:00
netinet6 udp6: allow udp_tun_func_t() to indicate it did not eat the packet 2022-04-22 16:55:23 +02:00
netipsec ipsec_encap: setdf is only used for INET. 2022-04-13 16:08:21 -07:00
netpfil pf: Add per-rule timestamps for rule and eth_rule 2022-04-22 19:53:20 +02:00
netsmb smb_smb_treedisconnect: eliminate write only variable mbp 2022-04-04 22:30:57 -06:00
nfs nfs: do not panic on bootpc_init when no interfaces are found 2022-04-07 19:33:26 -03:00
nfsclient
nfsserver
nlm
ofed ofed: Fix a typo in a source code comment 2022-04-09 14:39:36 +02:00
opencrypto KTLS: Add a new recrypt operation to the software backend. 2022-04-22 15:52:50 -07:00
powerpc powerpc: add GENERIC64LE-NODEBUG config and improve GENERIC64-NODEBUG 2022-04-22 01:06:13 +02:00
riscv busdma_bounce: Add free_bounce_pages helper function. 2022-04-21 10:42:14 -07:00
rpc svc_vc_rendezvous_stat: eliminiate write only variable stat 2022-04-04 22:31:04 -06:00
security mac_pimd: Support for privilege drop in pimd 2022-04-20 08:07:37 +02:00
sys bio: Add the speedup flags to PRINT_BIO_FLAGS 2022-04-24 14:01:08 -06:00
teken teken: color #3 is yellow not brown - use TC_YELLOW as the name 2022-03-12 09:17:29 -05:00
tests
tools syscallarg_t: Add a type for system call arguments 2022-03-28 19:43:03 +01:00
ufs ffs: plug a set-but-not-used var 2022-04-19 16:51:12 +02:00
vm vm_phys_init: Quiet unused but set warnings about npages. 2022-04-18 12:06:14 -07:00
x86 busdma_bounce: Add free_bounce_pages helper function. 2022-04-21 10:42:14 -07:00
xdr
xen xen: Use __diagused for a variable only used in KASSERT(). 2022-04-13 16:08:20 -07:00
Makefile