101905 Commits

Author SHA1 Message Date
mav
122509b53e MFC r273445 (by imp):
Add defines for various FIRST PARTY DMA SEND subcommands.
2015-03-27 09:32:34 +00:00
mav
5169456c99 MFC r270832 (by imp):
Add a few defines and packet types for SATA 3.2 and FPDMA (First Party
DMA).
2015-03-27 09:31:28 +00:00
mav
bfc574567f MFC r279927: Make DIOCGATTR in device mode handle "GEOM::candelete". 2015-03-27 09:28:30 +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
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
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
arybchik
716ce1ca36 MFC: 280160
sfxge: add tunables to control LRO parameters on driver load time

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:41:26 +00:00
arybchik
ddeba7284f MFC: 279351
sfxge: expect required init_state on data path and in periodic calls

With the patch applied the number of instruction events is 1% less and
number of mispredicted branch events is 5% less under multistream TCP
traffic load close to line rate.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:18:51 +00:00
arybchik
e601483ad6 MFC: 279266
sfxge: correct limit for number of Rx queues

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:15:47 +00:00
arybchik
972b15c05b MFC: 279231
sfxge: add put-list high watermark

It is interesting to know how long put-list grows.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:14:50 +00:00
hselasky
9c325f67a8 MFC r280322 and r280429:
The synchronisation value returned by the so-called feedback endpoint
appears to be too inaccurate that it can be used to synchronize the
playback data stream. If there is a recording endpoint associated with
the playback endpoint, use that instead. That means if the isochronous
OUT endpoint is asynchronus the USB audio driver will automatically
start recording, if possible, to get exact information about the
needed sample rate adjustments. In no recording endpoint is present,
no rate adaption will be done.

While at it fix an issue where the hardware buffer pointers don't get
reset at the first device PCM trigger.

Make some variables 32-bit to avoid problems with multithreading.

Use the feedback value from the synchronization endpoint as fallback
when there is no recording channel.

PR: 		198444
2015-03-25 13:14:25 +00:00
arybchik
9265dbcd9c MFC: 279230
sfxge: use goto to cleanup to avoid duplicate cleanup code

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:13:32 +00:00
arybchik
ba7bae884a MFC: 279183
sfxge: add common code support for changing TX queue pace

To delay packets from a particular TX queue by a particular time, write a value
into the TX Pace table s.t. pace time <= TX Pace Clock Period * (2 ^ pace value)
- the TX pace clock is 1/13 of the system clock, so its period should be 104 or
52 ns depending on whether turbo mode is active.

EFX_TX_PACE_CLOCK_BASE added by me.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:12:15 +00:00
arybchik
7226fa93ca MFC: 279182
sfxge: correct event queue interrupt moderation timer quanta

Submitted by:   Andrew Lee <alee at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:11:19 +00:00
arybchik
4e10773aa1 MFC: 279179
sfxge: DMA allocated memory is set to zeros because of BUS_DMA_ZERO flag

It is not required to set it to zeros once again.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:06:37 +00:00
arybchik
2f95e74aa7 MFC: 279178
sfxge: do no allow EFSYS_MEM_ALLOC sleep

It solves locking problem when EFSYS_MEM_ALLOC is called in
the context holding a mutex (not allowed to sleep).
E.g. on interface bring up or multicast addresses addition.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:05:33 +00:00
arybchik
59a10077f4 MFC: 279177
sfxge: assert event queue lock in event handlers

It is useful to highlight lock context.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:04:28 +00:00
arybchik
8d456b11c8 MFC: 279176
sfxge: pass correct address to free allocated memory in the case of load error

It is one more place missed in the previous fix.
Most likely is was just memory leak on the error handling path since
typically efsys_mem_t is filled in by zeros on allocation.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:03:36 +00:00
arybchik
24cc1ba6e9 MFC: 279175
sfxge: using bus_space_*_stream_* API for better portability

Host-bus byte order translation is not requred.

Submitted by:   Artem V. Andreev <Artem.Andreev at oktetlabs.ru>
Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:02:33 +00:00
hselasky
f07b924bdc MFC r280345:
Fix for out of order device destruction notifications when using the
delist_dev() function. In addition to this change:
- add a proper description of this function
- add a proper witness assert inside this function
- switch a nearby line to use the "cdp" pointer instead of cdev2priv()
2015-03-25 13:01:51 +00:00
arybchik
be80a2b27d MFC: 279174
sfxge: add missing Siena sensors to common code

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 13:01:10 +00:00
arybchik
2d11e05f54 MFC: 279173
sfxge: add missing common code NVRAM types and map from MCDI

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 12:59:49 +00:00
arybchik
15d431ecd8 MFC: 279172
sfxge: add new identities to Siena static config

Submitted by:   Andrew Jackson <ajackson at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 12:59:01 +00:00
arybchik
eb99d14089 MFC: 279147
sfxge: TxQ block level should use EFX_TXQ_LIMIT as maximum TxQ size

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 12:57:43 +00:00
hselasky
b416a7471e MFC r279725:
Add more USB IDs.

PR:		197753
2015-03-25 11:12:48 +00:00
arybchik
5550e78279 MFC: 279146
sfxge: use sparse index to retrieve sensor value

Submitted by:   Andrew Jackson <ajackson at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 11:10:56 +00:00
arybchik
6155128a58 MFC: 279145
sfxge: use macros to acquire and release BAR locks everywhere

It was the result of invalid merge of the patch from out-of-tree driver.

Sponsored by:   Solarflare Communications, Inc.
Approved by:    gnn (mentor)
2015-03-25 11:09:35 +00:00