198658 Commits

Author SHA1 Message Date
mav
bfc574567f MFC r279927: Make DIOCGATTR in device mode handle "GEOM::candelete". 2015-03-27 09:28:30 +00:00
mav
713a1f945d MFC r280286: Add comment explaining existing powerd behavior on SMP systems. 2015-03-27 09:01:25 +00:00
mav
9d1b41e02f MFC r280154:
Report that we may have write cache, and that we do support FLUSH.
2015-03-27 08:59:21 +00:00
mav
1240a4ece1 MFC r280133: Increase S/G list size of 32 to 33 entries.
32 entries are not enough for the worst case of misaligned 128KB request,
that made FreeBSD to chunk large quests in odd pieces.
2015-03-27 08:58:30 +00:00
mav
ea196f5fc6 MFC r280126: Pre-allocate one extra request per processing thread.
Processing threads call callbacks before freeing requests.  As result,
new requests may arrive before old ones are freed.
2015-03-27 08:57:38 +00:00
mav
4b55b30394 MFC r280044:
According to Linux and QEMU, s/n equal to buffer is not zero-terminated.

This makes same s/n reported for both virtio and AHCI drivers.
2015-03-27 08:56:44 +00:00
mav
1265da624b MFC r280042: Close potential race on blockif_close().
Reported by:	vangyzen
2015-03-27 08:55:54 +00:00
mav
77dd65195c MFC r280040:
Give AHCI disk serial based on backing file path same as for virtio block.

It is still not good that they may intersect on different hosts, but that
is better then intersecting on the same host.
2015-03-27 08:54:55 +00:00
mav
b0012948cc MFC r280037:
Rewrite virtio block device driver to work asynchronously and use the block
I/O interface.

Asynchronous operation, based on r280026 change, allows to not block virtual
CPU during I/O processing, that on slow/busy storage can take seconds.
Use of recently improved block I/O interface allows to process multiple
requests same time, that improves random I/O performance on wide storages.

Benchmarks of virtual disk, backed by ZVOL on RAID10 pool of 4 HDDs, show
~3.5 times random read performance improvements, while no degradation on
linear I/O.  Guest CPU usage during test dropped from 100% to almost zero.
2015-03-27 08:53:59 +00:00
mav
aaa4bfa294 MFC r280026, r280041:
Modify virtqueue helpers added in r253440 to allow queuing.

Original virtqueue design allows queued and out-of-order processing, but
helpers added in r253440 suppose only direct blocking in-order one.
It could be fine for network, etc., but it is a huge limitation for storage
devices.
2015-03-27 08:52:57 +00:00
mav
3cab0e3831 MFC r280004: Give block I/O interface multiple (8) execution threads.
On parallel random I/O this allows better utilize wide storage pools.
To not confuse prefetcher on linear I/O, consecutive requests are executed
sequentially, following the same logic as was earlier implemented in CTL.

Benchmarks of virtual AHCI disk, backed by ZVOL on RAID10 pool of 4 HDDs,
show ~3.5 times random read performance improvements, while no degradation
on linear I/O.
2015-03-27 08:51:20 +00:00
mav
3505e1d0e9 MFC r279987: Add checksums to identify data and NCQ command error log. 2015-03-27 08:50:26 +00:00
mav
22ec3a9f70 MFC r279979: Slightly polish virtual AHCI CD reporting. 2015-03-27 08:49:33 +00:00
mav
c9d7a5b073 MFC r279977: Fix NOP and IDLE commands for virtual AHCI disks. 2015-03-27 08:48:44 +00:00
mav
b30732f21d MFC r279976: Add support for NCQ variant of DSM TRIM for virtual AHCI disks.
The code is not really tested yet due to lack of initiator support.
2015-03-27 08:47:54 +00:00
mav
adad7a7d84 MFC r279975: Improve NCQ errors reporting for virtual AHCI disks.
While this implementation is still not perfect, previous was just broken.
2015-03-27 08:47:02 +00:00
mav
e0d0bd28e8 MFC r279968: Remove incorrect SERR register setting.
At this point we have nothing to report through that register.
2015-03-27 08:46:12 +00:00
mav
0bcdb239fd MFC r279967: Change prdbc value reporting. 2015-03-27 08:44:58 +00:00
mav
f96653efd8 MFC r279965: Polish AHCI disk identify data and fix speed negotiation. 2015-03-27 08:43:45 +00:00
mav
f4f616ce8b MFC r279960:
Add support for PIO variants of READ/WRITE commands for AHCI disks.

AHCI API hides all PIO specifics, so this functionality is almost free.
2015-03-27 08:42:55 +00:00
mav
989c57f51c MFC r279975: Use ahci_write_fis_d2h() for commands completion. 2015-03-27 08:41:49 +00:00
ken
2052788664 MFC revision 280463
------------------------------------------------------------------------
  r280463 | ken | 2015-03-24 15:42:28 -0600 (Tue, 24 Mar 2015) | 5 lines

  Remove some #if 0'ed code that apparently confuses cscope.

  Requested by:	Peter Xu <xzpeter@gmail.com>
  MFC after:	3 days

  ------------------------------------------------------------------------

Sponsored by:	Spectra Logic
2015-03-27 00:42:51 +00:00
ae
159c9364d9 MFC r280236:
To avoid a possible race, release the reference to ifa after return
  from nd6_dad_na_input().
2015-03-26 18:44:59 +00:00
emaste
ad6d8839ca MFC r270572: drm/i915: Disable the build of i915 on PC98
This module is of no use on this platform.
2015-03-26 17:51:11 +00:00
kib
6414d2bba4 MFC r280254:
Provide definitions for all descriptors types in the DMAR invalidation
queue.
2015-03-26 10:44:16 +00:00
hselasky
bc8d9c80f5 MFC r280262 and r280263:
Add more known bugs to the USB audio manual page.
2015-03-26 10:25:15 +00:00
mav
457dafa988 MFC r280249: Add camcontrol subcommands to control APM and AAM levels.
Sponsored by:	iXsystems, Inc.
2015-03-26 08:38:53 +00:00
mav
40ede50928 MFC r279913: Fix couple BIO_DELETE bugs in geom_mirror.
Do not report GEOM::candelete if none of providers support BIO_DELETE.
If consumer still requests BIO_DELETE, report error instead of hanging.
2015-03-26 08:36:08 +00:00
yongari
2f25ad094c MFC r279903,279941:
Add RTL8211F gigabit PHY support.

  PR:	197265
2015-03-26 05:44:21 +00:00
yongari
a9edaae369 MFC r279223:
Correct a typo.
2015-03-26 05:17:20 +00:00
yongari
5221583008 MFC r277907:
Correct device description message.
2015-03-26 05:12:30 +00:00
yongari
125afe6753 MFC r277050:
Receive filter configuration is done in nge_rxfilter().  Remove
  unnecessary filter configuration code in nge_init_locked().
  While I'm here add a check for driver running state for multicast
  filter handling.  Also remove unnecessary assignment to error
  variable since it is cleared in the function entry.
2015-03-26 05:07:18 +00:00
yongari
f0de020e4a MFC r275816:
Fix a bug introdiced in r217548.  According to NS DP83815 data
  sheet, RX filter should be disabled before programming.
  Previously it was clearing wrong bits so RX filter was not
  disabled in RX filter configuration.

MFC r277048:
  Enable receive filter in sis_rxfilter().
  While I'm here add a check for driver running state for multicast
  filter handling.
2015-03-26 04:55:22 +00:00
ian
17ca262c02 MFC r279361, r279395, r279396:
Allow the kern.osrelease and kern.osreldate sysctl values to be set in a
  jail's creation parameters.  This allows the kernel version to be reliably
  spoofed within the jail whether examined directly with sysctl or
  indirectly with the uname -r and -K options.

  Export the new osreldate and osrelease jail parms in jail_get(2).

  Fix line wrap.
2015-03-25 20:57:54 +00:00
gjb
024d3d32c2 Document SA-15:06.
Sponsored by:	The FreeBSD Foundation
2015-03-25 17:58:44 +00:00
arybchik
bee561cb99 MFC: 279398
sfxge: compile out LRO if kernel is compiled without IPv4 and IPv6

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)

MFC: 279411

Unbreak 'make depend' with sfxge by removing debugging code activated in the
INET || INET6 case

X-MFC with: r279398
Pointyhat to: arybchik
2015-03-25 14:10:20 +00:00
arybchik
6d64348230 MFC: 280433
sfxge: cleanup: fix index variable type to match upper boundary type

Sponsored by:   Solarflare Communications, Inc.
2015-03-25 13:57:54 +00:00
arybchik
7057aa28fc MFC: 280432
sfxge: cleanup: add a blank line before each #if to improve readability

Sponsored by:   Solarflare Communications, Inc.
2015-03-25 13:56:42 +00:00
arybchik
3512ffa2ac MFC: 280431
sfxge: cleanup: remove trailing whitespaces

Sponsored by:   Solarflare Communications, Inc.
2015-03-25 13:55:36 +00:00
arybchik
4d5b387571 MFC: 280380
sfxge: remove unnecessary and wrong prediction

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2085
2015-03-25 13:54:28 +00:00
arybchik
db5c720e7a MFC: 280379
sfxge: do not check MCDI status word

This is a temporary workaround until we determine a reliable sequence
of operations for detecting MC reboots.

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2084
2015-03-25 13:53:28 +00:00
arybchik
7df9d164f1 MFC: 280378
sfxge: FreeBSD before 10 does not have bus_space_*_8 on amd64

bus_space_*_8() are not always macros, so it is not correct to use
#ifndef.

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2083
2015-03-25 13:52:31 +00:00
arybchik
94de563c74 MFC: 280377
sfxge: add statistics for each Tx queue

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2082
2015-03-25 13:51:39 +00:00
arybchik
b931488dad MFC: 280376
sfxge: remove obsolete Tx non-multi queue support

Tx multi queue is added in FreeBSD 8.0. So, the changeset drops earlier
versions support.

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2081
2015-03-25 13:50:38 +00:00
arybchik
9287ef4b21 MFC: 280375
sfxge: add barriers to BAR write macros

In theory the barriers are required to cope with write combining and
reordering. Two barriers are added (sometimes merged to one):
 1. Before the first write to guarantee that previous writes to the region
    have been done
 2. Before the last write to guarantee that write to the last dword/qword is
    done after previous writes
Barriers are inserted before in the assumption that it is better to
postpone barriers as much as it is possible (more chances that the
operation has already been already done and barrier does not stall CPU).

On x86 and amd64 bus space write barriers are just compiler memory barriers
which are definitely required.

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2077
2015-03-25 13:48:54 +00:00
arybchik
a1c7f8fbe5 MFC: 280374
sfxge: assert either kernel or internal copy of interface flags

ioctl to put interface down sets ifp->if_flags which holds the intended
administratively defined state and calls driver callback to apply it.
When everything is done, driver updates internal copy of
interface flags sc->if_flags which holds the operational state.
So, transmit from Rx path is possible when interface is intended to be
administratively down in accordance with ifp->if_flags, but not applied
yet and the operational state is up in accordance with sc->if_flags.

Sponsored by:   Solarflare Communications, Inc.
Original Differential Revision: https://reviews.freebsd.org/D2075
2015-03-25 13:47:48 +00:00
arybchik
2a0cc39606 MFC: 280164
sfxge: increase default put-list limit to 1024

Drops are observed under multi-stream TCP traffic due to put-list
overflow with limit equal to 64.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:46:30 +00:00
arybchik
04d32c238f MFC: 280163
sfxge: prefetch txq->common if TxQ is started only

Transmit may be called when TxQ is not started yet (i.e. txq->common is
invalid). TxQ state is checked below when mbuf is processed and dropped
if TxQ is not started.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:45:20 +00:00
arybchik
71c9b1feb3 MFC: 280162
sfxge: adding version info to device description

The information is required for NIC update and config tools.

Submitted by:   Artem V. Andreev <Artem.Andreev at oktetlabs.ru>
Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:44:01 +00:00
arybchik
323881a000 MFC: 280161
sfxge: move deferred packet list statistics to dedicated node

It is done to structure sysctl and do not mix with Tx queue statistics
to be added.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:42:37 +00:00