freebsd-dev/sys
Warner Losh 83581511d9 nvme: Use adaptive spinning when polling for completion or state change
We only use nvme_completion_poll in the initialization path. The
commands they queue and wait for finish quickly as they involve no I/O
to the drive's media. These command take about 20-200 microsecnds
each. Set the wait time to 1us and then increase it by 1.5 each
successive iteration (max 1ms). This reduces initialization time by
80ms in cpervica's tests.

Use this same technique waiting for RDY state transitions. This saves
another 20ms. In total we're down from ~330ms to ~2ms.

Tested by:		cperciva
Sponsored by:		Netflix
Reviewed by:		mav
Differential Review:	https://reviews.freebsd.org/D32259
2021-10-01 19:17:55 -06:00
..
amd64 minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
arm Add a gic interface to allocate MSI interrupts 2021-10-01 11:27:33 +01:00
arm64 arm64, riscv: Fix TRAF_PC() to return the PC, not the return address. 2021-10-01 11:53:12 -07:00
bsm Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
cam cam: Avoiding waking up doneq threads if we're dumping 2021-09-25 10:15:03 -04:00
cddl Allow ddb and dtrace use the DMAP region on arm64 2021-10-01 11:27:33 +01:00
compat linprocfs: find cwd and root handling 2021-09-30 12:59:58 +02:00
conf nvme: Only reset once on attach. 2021-10-01 11:09:34 -06:00
contrib Import ACPICA 20210930 2021-09-30 22:05:52 -04:00
crypto crypto(4): Fix a few typos in camellia.c 2021-09-04 13:02:11 +02:00
ddb Create sys/reg.h for the common code previously in machine/reg.h 2021-08-30 12:50:53 +01:00
dev nvme: Use adaptive spinning when polling for completion or state change 2021-10-01 19:17:55 -06:00
dts Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
fs nfs: eliminate thread argument from nfsvno_namei 2021-10-02 00:57:20 +00:00
gdb
geom Don't set GELI UMA zone as UMA_ZONE_NOFREE. 2021-10-01 10:31:17 -07:00
gnu
i386 minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
isa
kern vfs: hoist cn_thread assert in namei 2021-10-01 21:56:29 +00:00
kgssapi
libkern libkern: remove bcopy 2021-08-24 11:24:07 +00:00
mips minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
modules modules: felix: Remove etherswitch_if.c from Makefile 2021-10-01 11:24:08 +02:00
net pfctl: userspace adaptive syncookies configration 2021-09-29 15:11:54 +02:00
net80211 net80211: prevent plaintext injection by A-MSDU RFC1042/EAPOL frames 2021-09-30 14:54:04 +00:00
netgraph bluetooth: complete removal of ng_h4 2021-09-29 20:00:02 -06:00
netinet sctp: don't keep being locked on a stream which is removed 2021-10-02 00:48:01 +02:00
netinet6 sctp: Tighten up locking around sctp_aloc_assoc() 2021-09-11 10:15:21 -04:00
netipsec ipsec: fix typo part2 2021-09-27 07:46:56 +02:00
netpfil pf: hook up adaptive mode configuration 2021-09-29 15:11:54 +02:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed socket: De-duplicate SBLOCKWAIT() definitions 2021-09-14 09:01:32 -04:00
opencrypto opencrypto: Disallow requests which pass VERIFY_DIGEST without a MAC 2021-09-24 15:04:45 -04:00
powerpc minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
riscv arm64, riscv: Fix TRAF_PC() to return the PC, not the return address. 2021-10-01 11:53:12 -07:00
rpc rpc: Convert an SOLISTENING check to an assertion 2021-09-17 14:19:05 -04:00
security Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9). 2021-08-05 23:20:42 +08:00
sys fd: add pwd_hold_proc 2021-09-30 12:49:51 +02:00
teken
tests routing: add IPv6 fib validation procedure. 2021-08-16 23:04:01 +00:00
tools makesyscalls: sprinkle some assert() on standard function calls 2021-09-24 20:55:56 -05:00
ufs Avoid "consumer not attached in g_io_request" panic when disk lost 2021-09-27 20:04:51 -07:00
vm minidump: De-duplicate is_dumpable() 2021-09-29 16:41:52 -03:00
x86 minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
xdr
xen xen: introduce xen_pv_disks_disabled() 2021-07-28 17:27:04 +02:00
Makefile