Rename the WITHOUT_VT_SUPPORT knob to WITHOUT_VT

The _SUPPORT knobs have a consistent meaning which differs from the
behaviour controlled by this knob.  As the knob is opt-out and has not
appeared in a release the impact should be low.

Suggested by:	imp, wblock
MFC after:	1 week


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268022 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Regenerate after r268022

MFC after:	1 week


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268023 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Fix a case in ndling ATA_PASSTHROUGH commands that have an unaligned buffer.
This impacts some home-rolled SMART tools.

Reviewed by:	jimharris
Obtained from:	Netflix
MFC after:	2 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268024 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
In rare cases, a SATA drive can stop responding to commands and trigger a
reset device task request from the driver.  If the drive fails to respond
with a signature FIS, the driver would previously get into an endless retry
loop, stalling all I/O to the drive and keeping user processes stranded.
Instead, fail the i/o and invalidate the device if the task management
command times out.  This is controllable with the sysctl and tunable
hw.isci.fail_on_task_timeout
dev.isci.0.fail_on_task_timeout

The default for these is 1.

Reviewed by:	jimharris
Obtained from:	Netflix, Inc.
MFC after:	2 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268025 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
If we're doing RSS then ensure that the callwheel swi's are CPU pinned.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268026 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
If we're doing RSS then ensure the TCP timer selection uses the multi-CPU
callwheel setup, rather than just dumping all the timers on swi0.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268027 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add initial RSS awareness to the igb(4) driver.

The igb(4) hardware is capable of RSS hashing RX packets and doing RSS
queue selection for up to 8 queues.  (I believe some hardware is limited
to 4 queues, but I haven't tested on that.)

However, even if multi-queue is enabled for igb(4), the RX path doesn't use
the RSS flowid from the received descriptor.  It just uses the MSIX queue id.

This patch does a handful of things if RSS is enabled:

* Instead of using a random key at boot, fetch the RSS key from the RSS code
  and program that in to the RSS redirection table.

  That whole chunk of code should be double checked for endian correctness.

* Use the RSS queue mapping to CPU ID to figure out where to thread pin
  the RX swi thread and the taskqueue threads for each queue.

* The software queue is now really an "RSS bucket".

* When programming the RSS indirection table, use the RSS code to
  figure out which RSS bucket each slot in the indirection table maps
  to.

* When transmitting, use the flowid RSS mapping if the mbuf has
  an RSS aware hash.  The existing method wasn't guaranteed to align
  correctly with the destination RSS bucket (and thus CPU ID.)

This code warns if the number of RSS buckets isn't the same as the
automatically configured number of hardware queues.  The administrator
will have to tweak one of them for better performance.

There's currently no way to re-balance the RSS indirection table after
startup.  I'll worry about that later.

Additionally, it may be worthwhile to always use the full 32 bit flowid if
multi-queue is enabled.  It'll make things like lagg(4) behave better with
respect to traffic distribution.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268028 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add initial RSS awareness to the ixgbe(4) driver.

The ixgbe(4) hardware is capable of RSS hashing RX packets and doing RSS
queue selection for up to 8 queues.

However, even if multi-queue is enabled for ixgbe(4), the RX path doesn't use
the RSS flowid from the received descriptor.  It just uses the MSIX queue id.

This patch does a handful of things if RSS is enabled:

* Instead of using a random key at boot, fetch the RSS key from the RSS code
  and program that in to the RSS redirection table.

  That whole chunk of code should be double checked for endian correctness.

* Use the RSS queue mapping to CPU ID to figure out where to thread pin
  the RX swi thread and the taskqueue threads for each queue.

* The software queue is now really an "RSS bucket".

* When programming the RSS indirection table, use the RSS code to
  figure out which RSS bucket each slot in the indirection table maps
  to.

* When transmitting, use the flowid RSS mapping if the mbuf has
  an RSS aware hash.  The existing method wasn't guaranteed to align
  correctly with the destination RSS bucket (and thus CPU ID.)

This code warns if the number of RSS buckets isn't the same as the
automatically configured number of hardware queues.  The administrator
will have to tweak one of them for better performance.

There's currently no way to re-balance the RSS indirection table after
startup.  I'll worry about that later.

Additionally, it may be worthwhile to always use the full 32 bit flowid if
multi-queue is enabled.  It'll make things like lagg(4) behave better with
respect to traffic distribution.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268029 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
chown: add a test

Add a test for the chown utility. This sets up chown(8) to be capable of being
tested.  As such, only add one test for now as an example.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268030 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add vt(4) to GENERIC and retire the separate VT config

vt(4) and sc(4) can now coexist in the same kernel.  To choose the vt
driver, set the loader tunable kern.vty=vt .


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268045 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Fix ifconfig to show pltime and vltime with -L option,
again after usage change from time_second to time_uptime.

PR:		188520
Submitted by:	Guy Yur <guyyur__at__gmail.com>
MFC after:	1 week


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268049 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add a vt(4) cross reference to syscons(4)


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268050 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Workaround for bug in GCC on powerpc64. Symbols that are exported are
by fault required to be all "static" or all "extern".


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268055 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add missing VT_ kernel config knobs

MFC after:	1 week


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268059 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
fill in the list of obsolete files when base is built with WITHOUT_INFO


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268063 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Activate the condition for WITHOUT_INFO

Submitted by:	antoine


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268064 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
regex(3): Add support for \< and \> word delimiters

Solaris and other OSs have support for \< and \> as word
delimiters in utilities like sed(1). These are useful to
have for general compatiblity with Solaris but should be
avoided for portability with other systems, including the
traditional BSDs.

Bump __FreeBSD_version as this is likely to affect some
userland utilities.

Reference:
https://www.illumos.org/issues/516

PR:		bin/153257
Obtained from:	Illumos
MFC after:	1 month


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268066 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Initialise these variables so gcc doesn't complain.

Submitted by:	luigi


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268067 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add vt(4) devices and options to NOTES

Reviewed by:	marius (earlier version)


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268069 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Refactor some code in mps.c to reduce header pollution.

Reviewed by:	gibbs
Obtained from:	Netflix, Inc.
MFC after:	2 days


git-svn-id: svn+ssh://svn.freebsd.org/base/head@268071 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f