MFC VirtIO r252702,r252703,r252704,r252706,r252707,r252708,r252709

This brings in several bug fixes and better conformance with various
aspects of the spec that have changed.

r252702: Convert VirtIO to use ithreads instead of taskqueues
r252703: Block driver bug fixes and spec changes
r252704: Balloon driver improvements
r252706: Minor network driver improvements
r252707: Minor misc VirtIO changes
r252708: PCI driver bug fixes and cleanup
r252709: Fix SCSI driver lock not owned panic
MFH (r252375): remove useless side effect which triggers a clang bug.
MFH (r249479): OPENPAM_DEBUG enables debugging but does not turn it on
MFH (r249479): OPENPAM_DEBUG enables debugging but does not turn it on
MFH (r250056,r250057): add -Z option to zero unused blocks.
MFH (r250736): add -N option to list jail name instead of number
MFH (r252556): allow setting expiry to current date / time
MFH (r252688): fall back to sha512 if passwd_format is not set
Jump on the 9.2r MFC bonanza and update ciss(4)

r250031
 - zero a data structure for notifications

r250022 r249977 r249947 r249908
 - handle cases of controllers advertising an sg_list of less than
   CISS_MAX_SG_ELEMENTS.  Fixes ciss(4) ZMR cases.
MFC r251765:

Simplify the hierarchy target's logic.[0]

Run hierarchy with WORLDTMP in the path so it works when it is invoked
directly.  Such use is nearly alwasy wrong but appears to be common.[1]

PR:		conf/178209 [0], conf/178547 [1]
Submitted by:	Garrett Cooper <yaneurabeya@gmail.com> [0]
Direct commit to stable branch to fix ABI breakage:

In r227839, when removing libkvm dependency on procfs(5),
kvm_uread() function, used for reading from /proc/pid/mem, was
removed too. This change broke ABI.

Bring kvm_uread() back so that the ABI is kept. In head soname is
going to be bumped instead.

Reported by:	rmh
Discussed on:	arch
Suggested by:	jilles
MFC r253121: Adjust comments to fit within 80-columns.
MFC r253118: Fix conditional (der should match the comment above it).
MFC r253117:

Do two things: First, don't obscure the backtitle. Second, read ~/.dialogrc
if it exists to determine if use_shadow is true (ON) or false (OFF).

The purpose of determining the value of use_shadow is to know how many lines
to subtract from the maximum height value in assuring that the backtitle is
not obscured.

The detriment of obscuring the backtitle is that it provides information
that is not easily obtained elsewhere. That is the command-line shortcut
used to access the current menu. As you navigate from one dialog to the
next, invariably transparently corssing module boundaries, the backtitle
represents the command-line argument used to get there. Obscuring this
information with a widget that is too-tall and/or too-wide would see that
data go unnoticed (leaving few other ways to get that information in the
same helpful context).

So despite the fact that this change reduces the standard maximum height for
all widgets, there is a trap-door to prevent this calculation. If you want
to utilize the full screen height on the terminal (remember, this adjustment
is not made for Xdialog(1)) you can set $NO_BACKTITLE to 1 (or any non-NULL
value for that matter) and this calculation will be skipped. You will be
able to draw a widget that partially obscures the backtitle if-necessary.
MFC	r252956:

Implement SEEK_HOLE/SEEK_DATA for ext2fs.
MFC	r252231:

sed: use getline() instead of fgetln().

In BSD, fgetln() available in libc but in Illumos the Solaris port had to
include it internally. It also seems to have caused problems [1].

Aid portability by using getline() instead.
MFC: r252673
A problem with the old NFS client where large writes to large files
would sometimes result in a corrupted file was reported via email.
This problem appears to have been caused by r251719 (reverting
r251719 fixed the problem). Although I have not been able to
reproduce this problem, I suspect it is caused by another thread
increasing np->n_size after the mtx_unlock(&np->n_mtx) but before
the vnode_pager_setsize() call. Since the np->n_mtx mutex serializes
updates to np->n_size, doing the vnode_pager_setsize() with the
mutex locked appears to avoid the problem.
Unfortunately, vnode_pager_setsize() where the new size is smaller,
cannot be called with a mutex held.
This patch returns the semantics to be close to pre-r251719 such that the
call to the vnode_pager_setsize() is only delayed until after the mutex is
unlocked when np->n_size is shrinking. Since the file is growing
when being written, I believe this will fix the corruption.

Tested by:	remy.nonnenmacher@activnetworks.com
MFC VirtIO r252703,r252707

r252703: Document new cache write mode tunables/sysctl
r252707: Minor cleanup and use my FreeBSD.org email

Also change the release where first appeared closer to reality.
MFC r252714:
The tvp vnode on rename is usually unlinked.  Drop the cached null
vnode for tvp to allow the free of the lower vnode, if needed.

PR:	kern/180236
Fix for lost software interrupts/cam lockup.

MFC: 252683
MFC r253042:

Pull in r185616 from llvm trunk:

  FastISel can only append to basic blocks.

  Compute the insertion point from the end of the basic block instead of
  skipping labels from the front.

  This caused failures in landing pads when live-in copies where inserted
  before instruction selection.

I missed this change in r252720; without it, certain compilation flags
can cause exception labels to not be generated, but still referenced,
leading to link errors.

Reported by:	zeising
MFC r253036:
Add quirk to configure headphones redirection on ASUS UX31A laptop.