Document FreeBSD-SA-14:17.kmem

Approved by:	re (implicit)
Sponsored by:	The FreeBSD Foundation
Bump __FreeBSD_version after last SA-14:17.kmem so we have something
to test against in the freebsd.org cluster.
MFC r268211:
Micro-manage clang to get the expected inlining for cpu_search().
MFC r268212:
Note that most errors are possible for all syscalls from utimes(2)
family.  Minor wording corrections.
MFC r267897: MFV r267843:

Update file/libmagic to 5.19.
MFC r267887:

Correct buffer size.

Submitted by:	Sascha Wildner <swildner dragonflybsd org>
MFC r267886:

Use correct length for buffer.

Submitted by:	Sascha Wildner <swildner dragonflybsd org>
Correct memset size.

Submitted by:	Sascha Wildner (swildner at dragonflybsd dot org)
Reviewed by:	Kashyap Desai <kashyap.desai avagotech.com>
MFC r267984:

Use Intel's official name (Secure Key) per Intel® Digital Random Number
Generator (DRNG) Software Implementation Guide.

Reviewed by:	kib
Approved by:	so
MFC r267986:
Remove odd practice of inverting error codes.

-EPERM is equal to ERESTART, returning which from ioctl() handler causes
infinite syscall restart.
MFC r268419:
Fix use-after-free on XPT_RESET_BUS.

That command is not queued, so does not use later status update.
MFC r267877:
Lock devstat updates in block backend to make it usable.  Polish lock names.
MFC r267905:
Add READ BUFFER and improve WRITE BUFFER SCSI commands support.

This gives some use to 512KB per-LUN buffers, allocated for Copan-specific
processor code and not used.  It allows, for example, to test transport
performance and/or correctness without accessing the media, as supported
by Linux version of sg3_utils.
MFC r267906:
Allow MODE SENSE commands through Write Exclusive persistent reservation,
as required by SPC-4.

Report that fact in persistent reservation capabilities.
MFC r267933:
Simplify statistics calculation.

Instead of trying to guess size of disk I/O operations (it just won't work
that way for newly added commands, and is equal to data move size for old
ones), account data move traffic.  If disk I/Os are that interesting, then
backends have to account and provide that information.

Block backend already exports the information about disk I/Os via devstat,
so having it here too is excessive.
MFC r268204:
Use separate memory type M_CTLIO for I/Os.

CTL allocate large amount of RAM.  This change give some more stats.
MFC r268392:
Do not return statuses for aborted iSCSI commands.
MFC r268283:
Improve readability of XML generated by CTL_LUN_LIST.
MFC r267643, r267873, r268391, r268398:
Introduce fine-grained CTL locking to improve SMP scalability.

Split global ctl_lock, historically protecting most of CTL context:
 - remaining ctl_lock now protects lists of fronends and backends;
 - per-LUN lun_lock(s) protect LUN-specific information;
 - per-thread queue_lock(s) protect request queues.
This allows to radically reduce congestion on ctl_lock.

Create multiple worker threads, depending on number of CPUs, and assign
each LUN to one of them.  This allows to spread load between multiple CPUs,
still avoiging congestion on queues and LUNs locks.

On 40-core server, exporting 5 LUNs, each backed by gstripe of SATA SSDs,
accessed via 6 iSCSI connections, this change improves peak request rate
from 250K to 680K IOPS.

Sponsored by:	iXsystems, Inc.
MFC r268286: Fix compile-time errors when NO_WERROR and WITHOUT_INET6_SUPPORT
(NO_INET6) are specified.

Approved by:	glebius (mentor)