Commit Graph

6873 Commits

Author SHA1 Message Date
sephe
4ea0d87306 MFC 301483,301484,301487,301488,301583,301588
301483
    hyperv: Move machine dependent bits into machine dependent files.

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6701

301484
    hyperv/vmbus: Define type for channel messages.

    And fix message processing; only channel messages are supported.

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6706

301487
    hyperv/vmbus: Factor out channel message processing

    This paves the way for further cleanup.

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6707

301488
    hyperv/vmbus: Constify channel message

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6708

301583
    hyperv/vmbus: Busdma-fy MNF and event flags.

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6744

301588
    hyperv/vmbus: Change tx_evtflags type to u_long to match vmbus_evtflags

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6745
2016-06-24 02:30:14 +00:00
sephe
c45c824e6b MFC 301113
hyperv: Rename some cleaned up/almost cleaned up files

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
2016-06-24 02:06:13 +00:00
sephe
f973c8e224 MFC 300478,300479
300478
    hyperv: Add helpers for busdma(9) operation

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6443

300479
    hyperv/hn: Use hyperv busdma(9) helper.

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D6444
2016-06-23 03:25:18 +00:00
sephe
29d5b44ca0 MFC 297931,298022
297931
    Expose doreti as a global symbol on amd64 and i386.

    doreti provides the common code path for returning from interrupt
    andlers on x86.  Exposing doreti as a global symbol allows kernel
    modules to include low-level interrupt handlers instead of requiring
    all low-level handlers to be statically compiled into the kernel.

    Submitted by:       Howard Su <howard0su@gmail.com>
    Reviewed by:        kib

298022
    hyperv: Deprecate HYPERV option by moving Hyper-V IDT vector into vmbus

    Submitted by:       Jun Su <junsu microsoft com>
    Reviewed by:        jhb, kib, sephe
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D5910
2016-06-21 04:51:55 +00:00
sephe
494811e2fb MFC 295919,295958,295964
295919
    hyperv/stor: Fix print format

    Detected by:        PVS Static Analysis
    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D5388

295958
    hyperv/utils: Code rearrange and cleanup

    Split heartbeat, shutdown and timesync out of utils code
    and name them properly.

    Submitted by:       Jun Su <junsu microsoft com>
    Reviewed by:        adrian, sephe, Hongjiang Zhang <honzhan microsoft com>
    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D5216

295964
    hyperv/vmbus: Use free(9) for interrupt page; it is allocated by malloc(9)

    MFC after:  1 week
    Sponsored by:       Microsoft OSTC
    Differential Revision:      https://reviews.freebsd.org/D5417
2016-06-13 09:02:08 +00:00
truckman
04c544258a MFC r300779, r300781, r300783, r300784, r300949, r301162, r301180
r300779 | truckman | 2016-05-26 14:40:13 -0700 (Thu, 26 May 2016) | 64 lines

Import Dummynet AQM version 0.2.1 (CoDel, FQ-CoDel, PIE and FQ-PIE).

Centre for Advanced Internet Architectures

Implementing AQM in FreeBSD

* Overview <http://caia.swin.edu.au/freebsd/aqm/index.html>

* Articles, Papers and Presentations
  <http://caia.swin.edu.au/freebsd/aqm/papers.html>

* Patches and Tools <http://caia.swin.edu.au/freebsd/aqm/downloads.html>

Overview

Recent years have seen a resurgence of interest in better managing
the depth of bottleneck queues in routers, switches and other places
that get congested. Solutions include transport protocol enhancements
at the end-hosts (such as delay-based or hybrid congestion control
schemes) and active queue management (AQM) schemes applied within
bottleneck queues.

The notion of AQM has been around since at least the late 1990s
(e.g. RFC 2309). In recent years the proliferation of oversized
buffers in all sorts of network devices (aka bufferbloat) has
stimulated keen community interest in four new AQM schemes -- CoDel,
FQ-CoDel, PIE and FQ-PIE.

The IETF AQM working group is looking to document these schemes,
and independent implementations are a corner-stone of the IETF's
process for confirming the clarity of publicly available protocol
descriptions. While significant development work on all three schemes
has occured in the Linux kernel, there is very little in FreeBSD.

Project Goals

This project began in late 2015, and aims to design and implement
functionally-correct versions of CoDel, FQ-CoDel, PIE and FQ_PIE
in FreeBSD (with code BSD-licensed as much as practical). We have
chosen to do this as extensions to FreeBSD's ipfw/dummynet firewall
and traffic shaper. Implementation of these AQM schemes in FreeBSD
will:
* Demonstrate whether the publicly available documentation is
  sufficient to enable independent, functionally equivalent implementations

* Provide a broader suite of AQM options for sections the networking
  community that rely on FreeBSD platforms

Program Members:

* Rasool Al Saadi (developer)

* Grenville Armitage (project lead)

Acknowledgements:

This project has been made possible in part by a gift from the
Comcast Innovation Fund.

Submitted by:	Rasool Al-Saadi <ralsaadi@swin.edu.au>
X-No objection:	core
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D6388

[Remove some code that was added to the mq_append() inline function in
HEAD by r258457, which was not merged to stable/10.  The AQM patch
moved mq_append() from ip_dn_io.c to the new file ip_dn_private.h, so
we need to remove that copy of the r258457 changes.]
------------------------------------------------------------------------
r300781 | truckman | 2016-05-26 14:44:52 -0700 (Thu, 26 May 2016) | 7 lines

Modify BOUND_VAR() macro to wrap all of its arguments in () and tweak
its expression to work on powerpc and sparc64 (gcc compatibility).

Correct a typo in a nearby comment.

MFC after:	2 weeks (with r300779)

------------------------------------------------------------------------
r300783 | truckman | 2016-05-26 15:03:28 -0700 (Thu, 26 May 2016) | 4 lines

Correct a typo in a comment.

MFC after:	2 weeks (with r300779)

------------------------------------------------------------------------
r300784 | truckman | 2016-05-26 15:07:09 -0700 (Thu, 26 May 2016) | 5 lines

Include the new AQM files when compiling a kernel with options DUMMYNET.

Reported by:	Nikolay Denev <nike_d AT cytexbg DOT com>
MFC after:	2 weeks (with r300779)

------------------------------------------------------------------------
r300949 | truckman | 2016-05-29 00:23:56 -0700 (Sun, 29 May 2016) | 10 lines

Cast some expressions that multiply a long long constant by a
floating point constant to int64_t.  This avoids the runtime
conversion of the the other operand in a set of comparisons from
int64_t to floating point and doing the comparisions in floating
point.

Suggested by:	lidl
Submitted by:	Rasool Al-Saadi <ralsaadi@swin.edu.au>
MFC after:	2 weeks (with r300779)

------------------------------------------------------------------------
r301162 | truckman | 2016-06-01 13:04:24 -0700 (Wed, 01 Jun 2016) | 9 lines

Replace constant expressions that contain multiplications by
fractional floating point values with integer divides.  This will
eliminate any chance that the compiler will generate code to evaluate
the expression using floating point at runtime.

Suggested by:	bde
Submitted by:	Rasool Al-Saadi <ralsaadi@swin.edu.au>
MFC after:	8 days (with r300779 and r300949)

------------------------------------------------------------------------
r301180 | truckman | 2016-06-01 17:42:15 -0700 (Wed, 01 Jun 2016) | 2 lines

Belatedly bump .Dd date for Dummynet AQM import in r300779.

Relnotes:	yes
2016-06-10 00:00:25 +00:00
arybchik
45da1f7e9b MFC r299596-r299606, r299681, r299726, r299738
sfxge(4): move ef10_*() functions to ef10_*.c files

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-06-04 15:24:11 +00:00
arybchik
e66d0bd827 MFC r299407
sfxge(4): make efx_sram_test Siena-only

Submitted by:   Andy Moreton <amoreton at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-06-04 14:52:32 +00:00
mav
d748f0aded MFC ioat(4) driver in its present state. 2016-05-25 07:09:54 +00:00
jhb
3eaedb459f MFC 299310:
Don't store generated firmware object files in the source directory.

Trim the leading directory of a firmware source file from the resulting
target object file name so the object file is stored in the object
directory. Previously, using 'FIRMWS= /path/to/fw.bin:fw.bin' would
store the generated 'fw.bin.fwo' file in the /path/to directory. Now
it stores it in the object directory of the kernel module being built.
2016-05-24 23:04:16 +00:00
mav
64cac89e36 MFC 103 ntb(4) patches by cem@ up to r295487. 2016-05-21 15:15:11 +00:00
emaste
d8b3896c2b MFC r297685: Add option to specify built-in keymap for kbdmux
PR:		153459
Submitted by:	swell.k@gmail.com
2016-04-21 19:25:33 +00:00
emaste
b322fc6681 Fix compiled-in keymap generation for sc/vt consoles
In r298297 kbdcontrol's -P <path> option was MFC'd to stable/10, which
enables this change for a simplified compile-time default keymap build
process.

PR:		193865
MFC of:		r296899, r296914, r297363, r298402
2016-04-21 19:24:36 +00:00
loos
99b723c568 MFC r287009, r287120 and r298131:
Add ALTQ(9) support for the CoDel algorithm.

CoDel is a parameterless queue discipline that handles variable bandwidth
and RTT.

It can be used as the single queue discipline on an interface or as a sub
discipline of existing queue disciplines such as PRIQ, CBQ, HFSC, FAIRQ.

Obtained from:	pfSense
Sponsored by:	Rubicon Communications (Netgate)
2016-04-16 22:02:32 +00:00
loos
8113adf547 MFC r284777, r284814, r284863 and r298088:
ALTQ FAIRQ discipline import from DragonFLY.

Differential Revision:	https://reviews.freebsd.org/D2847
Obtained from:	pfSense
Sponsored by:	Rubicon Communications (Netgate)
2016-04-16 02:11:04 +00:00
marius
83ca45c9a8 Now that 10.3-RELEASE is out, move stable/10 back to STABLE.
Approved by:	re (implicit)
2016-04-04 12:15:06 +00:00
pfg
65e756c88a MFC r294504, r294652, r294653, r294655:
ext2fs: Bring back the htree dir_index implementation.

The htree dir_index is perhaps one of the most characteristic
features of the linux ext3 implementation. It was removed
in r281670, due to repeated bug reports.

Damjan Jovanic detected and fixed three bugs and did some
stress testing by building Apache OpenOffice on top of it
so it is now in good shape to bring back.

Differential Revision:	https://reviews.freebsd.org/D5007

Submitted by:	Damjan Jovanovic
Reviewed by:	pfg
RelNotes:	yes
2016-03-17 19:28:15 +00:00
marius
74ee552c5d - Reset stable/10 back to -PRERELEASE status now that releng/10.3
has been branched.
- Update __FreeBSD_version to reflect the new -STABLE branch.

Approved by:	re (implicit)
2016-03-04 01:29:09 +00:00
marius
15dc3e2435 Update stable/10 to BETA3 in preparation for 10.3-BETA3 builds.
Approved by:	re (implicit)
2016-02-26 00:10:52 +00:00
sephe
427bb5d10f MFC [Hyper-V]: r293719-r293722, r293869-r293871, r293873-r293875, r293877
r293719 hyperv/hn: Implement LRO
r293720 hyperv/hn: Implement SIOC[SG]IFMEDIA support
r293721 hyperv/hn: Avoid mbuf cluster allocation, if the packet is small.
r293722 hyperv/hn: Removed unused netvsc_init()
r293869 hyperv/hn: Unbreak LINT-NOIP
r293870 hyperv: use x86 generic code to do the hypervisor detection
r293871 hyperv: remove unused vmbus definitions
r293873 hyperv: implement an event timer
r293874 hyperv: add interrupt counters
r293875 hyperv: set receive buffer size according to NVSP protocol version
r293877 Unbreak `make depend` with sys/modules/hyperv/vmbus after r293870

Approved by:	re (glebius), adrian (mentor)
Sponsored by:	Microsoft OSTC
2016-02-19 02:03:14 +00:00
marius
a3f0577ed0 Update stable/10 to BETA2 in preparation for 10.3-BETA2 builds.
Approved by:	re (implicit)
2016-02-12 00:03:39 +00:00
sbruno
15873ac96f MFC r292674
Update ixgbe(4) to Intel FreeBSD Networking Group version 3.1.13-k.

MFC r292571 and r292697
  Add support for X552 and X550T.

MFC r293334
  Fix SFP module insertion post boot.

MFC r293338
  Fix VF handling of VLANs for Amazon Cloud.

Reviewed by:	erj smh ngie jeffrey.e.pieper@intel.com
Approved by:	re (marius)
Relnotes:	Yes
Sponsored by:	Intel Corporation and Limelight Networks
Differential Revision:	https://reviews.freebsd.org/D5117
2016-02-11 16:16:10 +00:00
hselasky
106a3f79ce MFC r294915:
Fix generation of dependency rules for the LinuxKPI, the MLX5 driver
and all of OFED except MLX4[EN/IB].

Sponsored by:	Mellanox Technologies
Approved by:	re (marius)
2016-02-06 08:58:10 +00:00
marius
c716b856dd Update stable/10 to BETA1 in preparation for 10.3-BETA1 builds, take 2.
Approved by:	re (implicit)
2016-02-05 00:14:24 +00:00
marius
a1c28edb93 Update stable/10 to BETA1 in preparation for 10.3-BETA1 builds.
Approved by:	re (implicit)
2016-02-05 00:12:13 +00:00
jhb
05de7f1543 MFC 278320,278336,278830,285621:
Add devctl(8): a utility for manipulating new-bus devices.  Note that
this version does not include the 'suspend' and 'resume' commands
present in HEAD as those depend on larger changes to the suspend and
resume code in the kernel.

278320:
Add a new device control utility for new-bus devices called devctl.  This
allows the user to request administrative changes to individual devices
such as attach or detaching drivers or disabling and re-enabling devices.
- Add a new /dev/devctl2 character device which uses ioctls for device
  requests.  The ioctls use a common 'struct devreq' which is somewhat
  similar to 'struct ifreq'.
- The ioctls identify the device to operate on via a string.  This
  string can either by the device's name, or it can be a bus-specific
  address.  (For unattached devices, a bus address is the only way to
  locate a device.)  Bus drivers register an eventhandler to claim
  unrecognized device names that the driver recognizes as a valid address.
  Two buses currently support addresses: ACPI recognizes any device
  in the ACPI namespace via its full path starting with "\" and
  the PCI bus driver recognizes an address specification of
  'pci[<domain>:]<bus>:<slot>:<func>' (identical to the PCI selector
  strings supported by pciconf).
- To make it easier to cut and paste, change the PnP location string
  in the PCI bus driver to output a full PCI selector string rather
  than 'slot=<slot> function=<func>'.
- Add a devctl(3) interface in libdevctl which provides a wrapper around
  the ioctls and is the preferred interface for other userland code.
- Add a devctl(8) program which is a simple wrapper around the requests
  supported by devctl(3).
- Add a resource_unset_value() function that can be used to remove a
  hint from the kernel environment.  This is used to clear a
  hint.<driver>.<unit>.disabled hint when re-enabling a boot-time
  disabled device.

278336:
Unbreak the build (memchr is explicitly required by devctl(9) after r278320)

278830:
install the man page...

285621:
Fix formatting.

Approved by:	re (marius)
2016-02-01 23:07:31 +00:00
des
dd0e351e29 MFH (r293033): ignore unload unless loaded + add a reload target 2016-01-26 08:49:44 +00:00
arybchik
95a756ad4d MFC r293901,r294371
sfxge: add accessors for license-related MCDI calls to common code

Add support for Huntington MCDI licensing interface to common code.
Ported from Linux net driver IOCTL functions with restructuring for
initial support for V3 licensing API.

Submitted by:   Richard Houldsworth <rhouldsworth at solarflare.com>
Reviewed by:    gnn
Sponsored by:   Solarflare Communications, Inc.
2016-01-20 08:01:21 +00:00
marius
d65287a84a Update stable/10 from 10.2-STABLE to 10.3-PRERELEASE,
marking the official start of the code slush.

Set the default mdoc(7) version to 10.3, and update the
clang(1) TARGET_TRIPLE and BUILD_TRIPLE to reflect 10.3.

Approved by:	re (implicit)
2016-01-15 00:05:58 +00:00
arybchik
9cccbf978b MFC r293734
sfxge: add medford_impl.h, medford_nic.c, ef10_impl.h

Creating some files together to do the build system changes in one go.

Submitted by:   Mark Spender <mspender at solarflare.com>
Sponsored by:   Solarflare Communications, Inc.
2016-01-14 15:52:44 +00:00
jimharris
984dd4e553 MFC r266474:
Add ismt(4) driver.

  ismt(4) supports the SMBus Message Transport controller found on Intel
  C2000 series (Avoton) and S1200 series (Briarwood) Atom SoCs.

Relnotes:	Yes
2016-01-11 17:53:24 +00:00
dchagin
1db5b62099 MFC r283569 (by nyan):
MFi386: r283407
  Implement vdso - virtual dynamic shared object.

MFi386: r283474
  Rework signal code to allow using it by other modules, like linprocfs.

MFi386: r283506
  For objcopy, use --input-target and --output-target.

This fixes pc98 build.
2016-01-09 18:09:07 +00:00
dchagin
76b321901e MFC r283506 (by rodrigc):
For objcopy, use --input-target and --output-target

When building with gcc 4.9 and binutils 2.25,
using '--input' and '--output' returns an error
message:
   objcopy: option `--input' is ambiguous
2016-01-09 18:06:38 +00:00
dchagin
05243c7228 MFC r283474:
Rework signal code to allow using it by other modules, like linprocfs:

1. Linux sigset always 64 bit on all platforms. In order to move Linux
sigset code to the linux_common module define it as 64 bit int. Move
Linux sigset manipulation routines to the MI path.

2. Move Linux signal number definitions to the MI path. In general, they
are the same on all platforms except for a few signals.

3. Map Linux RT signals to the FreeBSD RT signals and hide signal conversion
tables to avoid conversion errors.

4. Emulate Linux SIGPWR signal via FreeBSD SIGRTMIN signal which is outside
of allowed on Linux signal numbers.

PR:             197216
2016-01-09 17:29:08 +00:00
dchagin
ea9daca708 MFC r283441:
Implement epoll family system calls. This is a tiny wrapper
around kqueue() to implement epoll subset of functionality.
The kqueue user data are 32bit on i386 which is not enough for
epoll user data, so we keep user data in the proc emuldata.

Initial patch developed by rdivacky@ in 2007, then extended
by Yuri Victorovich @ r255672 and finished by me
in collaboration with mjg@ and jillies@.
2016-01-09 16:44:17 +00:00
dchagin
d30e84112a MFC r283421:
Introduce a new module linux_common.ko which is intended for the
following primary purposes:

1. Remove the dependency of linsysfs and linprocfs modules from linux.ko,
which will be architecture specific on amd64.

2. Incorporate into linux_common.ko general code for platforms on which
we'll support two Linuxulator modules (for both instruction set - 32 & 64 bit).

3. Move malloc(9) declaration to linux_common.ko, to enable getting memory
usage statistics properly.

Currently linux_common.ko incorporates a code from linux_mib.c and linux_util.c
and linprocfs, linsysfs and linux kernel modules depend on linux_common.ko.

Temporarily remove dtrace garbage from linux_mib.c and linux_util.c
2016-01-09 16:08:22 +00:00
dchagin
18c1672334 MFC r283407:
Implement vdso - virtual dynamic shared object. Through vdso Linux
exposes functions from kernel with proper DWARF CFI information so that
it becomes easier to unwind through them.
Using vdso is a mandatory for a thread cancelation && cleanup
on a modern glibc.
2016-01-09 15:44:38 +00:00
emaste
e7b112012d MFC r291691: newvers: Honour SOURCE_DATE_EPOCH for build reproducibility
One reason the kernel does not build reproducibly is that it includes
a timestamp in the version string. SOURCE_DATE_EPOCH provides a standard
method to address this: it should be set to the last modification time
of the source, and build processes use the specified timestamp instead
of the "current" date and time.

This change uses SOURCE_DATE_EPOCH if it is set; how it gets set needs
to be addressed elsewhere.
2016-01-07 17:00:35 +00:00
ngie
fded02003e MFC nv(3) and part of nv(9) to stable/10
This includes the following revisions from head:

r258065,r258594,r259430,r260222,r261407,r261408,r263479,r264021,r266351,
r269603,r271026,r271027,r271028,r271241,r271578,r271579,r271847,r272102,
r272843,r273752,r277920,r277921,r277925,r277926,r277927,r279421,r279422,
r279423,r279424,r279425,r279426,r279427,r279428,r279429,r279430,r279431,
r279432,r279434,r279435,r279436,r279438,r279439,r279440,r279760,r282122,
r282254,r282257,r282304,r282312,r285339,r288340

This change reverts stable/10@r282122 and stable/10@r288340, and re-MFCs the
series again (r282122, r285339, and r288340).

More changes are pending to nv(9)/pci(4) after further review/work. Please see
the Phabricator review for more details (both https://reviews.freebsd.org/D4232
and https://reviews.freebsd.org/D4249 ).

- Tested with:
-- Booting VMware Fusion 8.1.0 running on a Haswell Apple Macbook Pro
-- Booting a Haswell machine with zfs and running some stress workloads with
   VirtualBox guests
-- make tinderbox
-- kyua test -k /usr/tests/lib/libnv

Differential Revision: https://reviews.freebsd.org/D4249 (part of a larger diff)
Relnotes: yes
Reviewed by: oshogbo (implicit), sbruno (implicit)
Submitted by: Kevin Bowling <kevin.bowling@kev009.com>
Sponsored by: EMC / Isilon Storage Division
2015-12-31 03:28:14 +00:00
pkelsey
ca800abb78 MFC r292706:
Implementation of server-side TCP Fast Open (TFO) [RFC7413].

TFO is disabled by default in the kernel build.  See the top comment
in sys/netinet/tcp_fastopen.c for implementation particulars.

Differential Revision:	https://reviews.freebsd.org/D4350
Sponsored by:	Verisign, Inc.
2015-12-28 02:43:12 +00:00
marius
a31458dd6b MFC: r287726
- Factor out the common and generic parts of the sparc64 host-PCI-bridge
  drivers into the revived sys/sparc64/pci/ofw_pci.c, previously already
  serving a similar purpose. This has been done with sun4v in mind, which
  explains a) the otherwise not that obvious scheme employed and b) why
  reusing sys/powerpc/ofw/ofw_pci.c was even lesser an option.
- Add a workaround for QEMU once again not emulating real machines, in
  this case by not providing the OFW_PCI_CS_MEM64 range. [1]

Submitted by:	jhb [1]
2015-12-27 19:37:47 +00:00
marius
8b47bee5a7 MFC: r271864
Move rl(4) to dev/rl.
2015-12-27 17:12:54 +00:00
kevlo
c569628c17 MFC r291238:
Add dependency to uether.

Reviewed by:	hselasky
2015-12-05 07:46:37 +00:00
hselasky
d375c5c34e MFC r291072, r291168 and r291169:
Add the mlx5 and mlx5en modules to the i386 and amd64 kernel builds by
default and add a manual page for mlx5en. The mlx5 module contains
shared code for both infiniband and ethernet. The mlx5en module
contains specific code for ethernet functionality only. A mlx5ib
module is in the works for infiniband support.

Supported hardware:
- ConnectX-4: 10/20/25/40/50/56/100Gb/s speeds.
- ConnectX-4 LX: 10/25/40/50Gb/s speeds (low power consumption)

Refer to the mlx5en(4) manual page for a comprehensive list.

The team porting the mlx5 driver(s) to FreeBSD:
- Hans Petter Selasky <hselasky@freebsd.org>
- Oded Shanoon <odeds@mellanox.com>
- Meny Yossefi <menyy@mellanox.com>
- Shany Michaely <shanim@mellanox.com>
- Shahar Klein <shahark@mellanox.com>
- Daria Genzel <dariaz@mellanox.com>
- Mark Bloch <markb@mellanox.com>

Differential Revision:	https://reviews.freebsd.org/D4163
Sponsored by:	Mellanox Technologies
2015-11-23 13:30:13 +00:00
avg
bef317767a MFC r261891: provide fast versions of ffsl and flsl for i386; ffsll and
flsll for amd64
2015-10-23 10:05:43 +00:00
mav
3698331e56 MFC r279433 (by rstone): Implement asprintf in libkern 2015-10-05 09:46:23 +00:00
mav
568256e886 MFC r287621: Reimplement CTL High Availability.
CTL HA functionality was originally implemented by Copan many years ago,
but large part of the sources was never published.  This change includes
clean room implementation of the missing code and fixes for many bugs.

This code supports dual-node HA with ALUA in four modes:
 - Active/Unavailable without interlink between nodes;
 - Active/Standby with second node handling only basic LUN discovery and
reservation, synchronizing with the first node through the interlink;
 - Active/Active with both nodes processing commands and accessing the
backing storage, synchronizing with the first node through the interlink;
 - Active/Active with second node working as proxy, transfering all
commands to the first node for execution through the interlink.

Unlike original Copan's implementation, depending on specific hardware,
this code uses simple custom TCP-based protocol for interlink.  It has
no authentication, so it should never be enabled on public interfaces.

The code may still need some polishing, but generally it is functional.

Relnotes:       yes
Sponsored by:   iXsystems, Inc.
2015-10-05 08:57:16 +00:00
mav
52a9e7a64d MFC r286807: Move "ioctl" CAM frontend into separate file.
It has nothing to share with too huge ctl.c other then device descriptor,
but even that may be counted as design error that may be fixed later.
At some point we may even want to have several ioctl ports.
2015-10-05 08:43:47 +00:00
mav
656a5c3136 MFC r286806: Drop "internal" CTL frontend.
Its idea was to be a simple initiator and execute several commands from
kernel level, but FreeBSD never had consumer for that functionality,
while its implementation polluted many unrelated places.
2015-10-05 08:42:43 +00:00
peter
30cb993101 Fix broken build, again.
cddl/contrib/opensolaris/uts/common/fs/zfs/bqueue.c wasn't added to
conf/files in r286705 and was fixed by r286718.  The broken
version was MFCed by r288571.

Forgotten by:  mav (again)
2015-10-05 01:25:51 +00:00