#
353418 |
|
10-Oct-2019 |
np |
MFC r319872, r321063, r321582, r322034, r322425, r322962, r322985, r325596, r326026, r328420, r331472, r333276, r333650, r333652, r334406, r334409-r334410, r334489, r336042, r340651, r342603, and r345083.
This updates the cxgbe firmwares in stable/10 and also pulls in support for some newer boards and flash parts.
r319872: cxgbe(4): Do not request an FEC setting that the port does not support.
r321063: cxgbe(4): Various link/media related improvements.
r321582: cxgbe(4): Some updates to the common code.
r322034: cxgbe(4): Always use the first and not the last virtual interface associated with a port in begin_synchronized_op.
r322425: cxgbe(4): Save the last reported link parameters and compare them with the current state to determine whether to generate a link-state change notification. This fixes a bug introduced in r321063 that caused the driver to sometimes skip these notifications.
r322962: cxgbe(4): Remove write only variable from t4_port_init.
r322985: cxgbe(4): Maintain one ifmedia per physical port instead of one per Virtual Interface (VI). All autonomous VIs that share a port share the same media.
r325596: cxgbe(4): Do not request settings not supported by the port.
r326026: cxgbe(4): Add a custom board to the device id list.
r328420: cxgbe(4): Do not display harmless warning in non-debug builds.
r331472: cxgbe(4): Always initialize requested_speed to a valid value.
This fixes an avoidable EINVAL when the user tries to disable AN after the port is initialized but l1cfg doesn't have a valid speed to use.
r333276: cxgbe(4): Update all firmwares to 1.19.1.0.
r333650: cxgbe(4): Claim some more T5 and T6 boards.
r333652: cxgbe(4): Add support for two more flash parts.
r334406: cxgbe(4): Consider all supported speeds when building the ifmedia list for a port. Fix other related issues while here: - Require port lock for access to link_config. - Allow 100Mbps operation by tracking the speed in Mbps. Yes, really. - New port flag to indicate that the media list is immutable. It will be used in future refinements.
This also fixes a bug where the driver reports incorrect media with recent firmwares.
r334409: cxgbe(4): Implement ifm_change callback.
r334410: cxgbe(4): Use ifm for ifmedia just like the rest of the kernel.
No functional change.
r334489: cxgbe(4): Include full duplex mediaopt in media that can be reported as active. Always report full duplex in active media.
r336042: cxgbe(4): Assume that any unknown flash on the card is 4MB and has 64KB sectors, instead of refusing to attach to the card.
r340651: cxgbe(4): Update T4/5/6 firmwares to 1.22.0.3.
r342603: cxgbe(4): Attach to two T540 variants.
r345083: cxgbe(4): Update T4/5/6 firmwares to 1.23.0.0.
|
#
331719 |
|
29-Mar-2018 |
np |
MFC r323006 and r324386.
This brings the cxgbe(4) firmware up to 1.16.63.0.
Sponsored by: Chelsio Communications
|
#
330109 |
|
28-Feb-2018 |
rpokala |
MFC r329843:
jedec_dimm(4): report asset info and temperatures for DDR3 and DDR4 DIMMs
A super-set of the functionality of jedec_ts(4). jedec_dimm(4) reports asset information (Part Number, Serial Number) encoded in the "Serial Presence Detect" (SPD) data on JEDEC DDR3 and DDR4 DIMMs. It also calculates and reports the memory capacity of the DIMM, in megabytes. If the DIMM includes a "Thermal Sensor On DIMM" (TSOD), the temperature is also reported.
|
#
329838 |
|
22-Feb-2018 |
hselasky |
Fix for LINT kernel build.
This is a direct commit.
Discussed with: np@ Reported by: rpokala@ Sponsored by: Mellanox Technologies
|
#
323223 |
|
06-Sep-2017 |
hselasky |
MFC r322810 and r322830: Add new mlx5ib(4) driver to the kernel source tree which supports Remote DMA over Converged Ethernet, RoCE, for the ConnectX-4 series of PCI express network cards.
There is currently no user-space support and this driver only supports kernel side non-routable RoCE V1. The krping kernel module can be used to test this driver. Full user-space support including RoCE V2 will be added as part of the ongoing upgrade to ibcore from Linux 4.9. Otherwise this driver is feature equivalent to mlx4ib(4). The mlx5ib(4) kernel module will only be built when WITH_OFED=YES is specified.
Approved by: re (marius) Sponsored by: Mellanox Technologies
|
#
322007 |
|
03-Aug-2017 |
hselasky |
MFC r312872: Add support for reading advanced diagnostic counters.
By default reading the diagnostic counters is disabled. The firmware decides which counters are supported and only those supported show up in the dev.mce.X.diagnostics sysctl tree.
To enable reading of diagnostic counters set one or more of the following sysctls to one:
dev.mce.X.conf.diag_general_enable=1 dev.mce.X.conf.diag_pci_enable=1
Sponsored by: Mellanox Technologies
|
#
321017 |
|
15-Jul-2017 |
dchagin |
MFC r272823:
Move the SCTP syscalls to netinet with the rest of the SCTP code. The syscalls themselves are tightly coupled with the network stack and therefore should not be in the generic socket code.
The following four syscalls have been marked as NOSTD so they can be dynamically registered in sctp_syscalls_init() function: sys_sctp_peeloff sys_sctp_generic_sendmsg sys_sctp_generic_sendmsg_iov sys_sctp_generic_recvmsg
The syscalls are also set up to be dynamically registered when COMPAT32 option is configured.
As a side effect of moving the SCTP syscalls, getsock_cap needs to be made available outside of the uipc_syscalls.c source file. A proper prototype has been added to the sys/socketvar.h header file.
API tests from the SCTP reference implementation have been run to ensure compatibility. (http://code.google.com/p/sctp-refimpl/source/checkout)
|
#
319270 |
|
31-May-2017 |
np |
MFC r318762:
cxgbe(4): Update the T4, T5, and T6 firmwares to 1.16.45.0.
The latest firmware has a number of link related fixes, support for a new custom card, and the fix for a bug that affected rate limiting on FreeBSD.
Relnotes: Yes Sponsored by: Chelsio Communications
|
#
318851 |
|
25-May-2017 |
np |
MFC r317702, r317847, r318307
r317702: cxgbe(4): Support routines for Tx traffic scheduling.
- Create a new file, t4_sched.c, and move all of the code related to traffic management from t4_main.c and t4_sge.c to this file. - Track both Channel Rate Limiter (ch_rl) and Class Rate Limiter (cl_rl) parameters in the PF driver. - Initialize all the cl_rl limiters with somewhat arbitrary default rates and provide routines to update them on the fly. - Provide routines to reserve and release traffic classes.
r317847: cxgbe(4): The Tx scheduler initialization either works or doesn't. It doesn't need a refresh in either case.
r318307: cxgbe(4): Avoid an out of bounds access when an attempt to unbind a tx queue from a traffic class fails.
Sponsored by: Chelsio Communications
|
#
318393 |
|
17-May-2017 |
sephe |
MFC 318136
hyperv/vmbus: Reorganize vmbus device tree
For GEN1 Hyper-V, vmbus is attached to pcib0, which contains the resources for PCI passthrough and SR-IOV. There is no acpi_syscontainer0 on GEN1 Hyper-V.
For GEN2 Hyper-V, vmbus is attached to acpi_syscontainer0, which contains the resources for PCI passthrough and SR-IOV. There is no pcib0 on GEN2 Hyper-V.
The ACPI VMBUS device now only holds its _CRS, which is empty as of this commit; its existence is mainly for upward compatibility.
Device tree structure is suggested by jhb@.
Tested-by: dexuan@ Collabrated-wth: dexuan@ Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D10565
|
#
318198 |
|
11-May-2017 |
marius |
MFC: r292180 (partial), r297127 (partial), r311911, r311923, r312939, r313250, r313712, r314811 (partial), r314887 (partial), r315430, r317981, r315466
o Move the DRIVER_MODULE() statements that declare mmc(4) to be a child of the various bridge drivers out of dev/mmc.c and into the bridge drivers.
o Add ACPI platform support for SDHCI driver.
o Fix some overly long lines, whitespace and other bugs according to style(9) as well as spelling etc. in mmc(4), mmcsd(4) and sdhci(4).
o In the mmc(4) bridges and sdhci(4) (bus) front-ends: - Remove redundant assignments of the default bus_generic_print_child device method, - use DEVMETHOD_END, - use NULL instead of 0 for pointers.
o Trim/adjust includes.
o Add and use a MMC_DECLARE_BRIDGE macro for declaring mmc(4) bridges as kernel drivers and their dependency onto mmc(4).
o Add support for eMMC "partitions". Besides the user data area, i. e. the default partition, eMMC v4.41 and later devices can additionally provide up to: 1 enhanced user data area partition 2 boot partitions 1 RPMB (Replay Protected Memory Block) partition 4 general purpose partitions (optionally with a enhanced or extended attribute)
Besides simply subdividing eMMC devices, some Intel NUCs having UEFI code in the boot partitions etc., another use case for the partition support is the activation of pseudo-SLC mode, which manufacturers of eMMC chips typically associate with the enhanced user data area and/ or the enhanced attribute of general purpose partitions.
CAVEAT EMPTOR: Partitioning eMMC devices is a one-time operation.
o Now that properly issuing CMD6 is crucial (so data isn't written to the wrong partition for example), make a step into the direction of correctly handling the timeout for these commands in the MMC layer. Also, do a SEND_STATUS when CMD6 is invoked with an R1B response as recommended by relevant specifications.
o Add an IOCTL interface to mmcsd(4); this is sufficiently compatible with Linux so that the GNU mmc-utils can be ported to and used with FreeBSD (note that due to the remaining deficiencies outlined above SANITIZE operations issued by/with `mmc` currently most likely will fail). These latter have been added to ports as sysutils/mmc-utils. Among others, the `mmc` tool of mmc-utils allows for partitioning eMMC devices (tested working).
o For devices following the eMMC specification v4.41 or later, year 0 is 2013 rather than 1997; so correct this for assembling the device ID string properly.
o Let mmcsd.ko depend on mmc.ko. Additionally, bump MMC_VERSION as at least for some of the above a matching pair is required.
|
#
315844 |
|
23-Mar-2017 |
avg |
MFC r314048,r314194: reimplement zfsctl (.zfs) support
|
#
315463 |
|
17-Mar-2017 |
erj |
ixgbe(4): Fix build breakage when only compiling ix(4)
PR: 217862 Reported by: lampa Sponsored by: Intel Corporation
|
#
315333 |
|
15-Mar-2017 |
erj |
ixgbe(4): Update to 3.2.11-k
Includes:
1. Support for X553 (Denverton) Ethernet devices. 2. Initialization code refactoring. 3. ixgbe-specific netmap code moved to ixgbe folder (but not removed from dev/netmap/). 4. VF driver full split. Some cleanup can be had due to redundant code, but this split goes inline with the refactoring.
NOTE: This is a direct commit to stable/10. Newer branches will receive an iflib-converted version of ixgbe, with these updates included, instead.
Differential Revision: https://reviews.freebsd.org/D9310 Submitted by: Jeb Cramer (jeb.j.cramer@intel.com) Tested by: Jeffrey Pieper (jeffrey.e.pieper@intel.com) Sponsored by: Intel Corporation
|
#
314327 |
|
27-Feb-2017 |
avg |
MFC r292782: Replace sys/crypto/sha2/sha2.c with lib/libmd/sha512c.c
cperciva's libmd implementation is 5-30% faster The same was done for SHA256 previously in r263218
Approved by: secteam
|
#
314143 |
|
23-Feb-2017 |
avg |
MFC r263215,r263218,r285366: replace the kernel sha256 code
r263215 copy these files from lib/libmd in preperation for moving these files into the kernel...
r263218 replace the kernel's version w/ cperciva's implementation...
r285366 Complete the move that was started w/ r263218..
Note that the last change is out of order with r282726 that I am going to merge as well.
Many thanks to cperciva for the more efficient code and to jmg for integrating it into the kernel.
|
#
311507 |
|
06-Jan-2017 |
np |
MFC r310151 and r311173.
r310151: cxgbe(4): Changes to the default T6 firmware configuration file.
- Disable features that are not supported or not used on FreeBSD. - Increase the RSS table slice per interface. - Increase the share of the TCAM reserved for filtering.
r311173: cxgbe(4): Update T4, T5 and T6 firmwares to 1.16.26.0.
Sponsored by: Chelsio Communications
|
#
309724 |
|
08-Dec-2016 |
jhb |
MFC 309613: cxgbe(4): Update firmwares from version 1.16.12.0 to 1.16.22.0.
Sponsored by: Chelsio Communications
|
#
309560 |
|
05-Dec-2016 |
jhb |
MFC 305695,305696,305699,305702,305703,305713,305715,305827,305852,305906, 305908,306062,306063,306137,306138,306206,306216,306273,306295,306301, 306465,309302: Add support for adapters using the Terminator T6 ASIC.
305695: cxgbe(4): Set up fl_starve_threshold2 accurately for T6.
305696: cxgbe(4): Use correct macro for header length with T6 ASICs. This affects the transmit of the VF driver only.
305699: cxgbe(4): Update the pad_boundary calculation for T6, which has a different range of boundaries.
305702: cxgbe(4): Use smaller min/max bursts for fl descriptors with a T6.
305703: cxgbe(4): Deal with the slightly different SGE_STAT_CFG in T6.
305713: cxgbe(4): Add support for additional port types and link speeds.
305715: cxgbe(4): Catch up with the rename of tlscaps -> cryptocaps. TLS is one of the capabilities of the crypto engine in T6.
305827: cxgbe(4): Use the interface's viid to calculate the PF/VF/VFValid fields to use in tx work requests.
305852: cxgbe(4): Attach to cards with the Terminator 6 ASIC. T6 cards will come up as 't6nex' nexus devices with 'cc' ports hanging off them.
The T6 firmware and configuration files will be added as soon as they are released. For now the driver will try to work with whatever firmware and configuration is on the card's flash.
305906: cxgbe/t4_tom: The SMAC entry for a VI is at a different location in the T6.
305908: cxgbe/t4_tom: Update the active/passive open code to support T6. Data path works as-is.
306062: cxgbe(4): Show wcwr_stats for T6 cards.
306063: cxgbe(4): Setup congestion response for T6 rx queues.
306137: cxgbetool: Add T6 support to the SGE context decoder.
306138: Fix typo.
306206: cxgbe(4): Catch up with the different layout of WHOAMI in T6.
Note that the code moved below t4_prep_adapter() as part of this change because now it needs a working chip_id().
306216: cxgbe(4): Fix the output of the "tids" sysctl on T6.
306273: cxgbe(4): Fix netmap with T6, which doesn't encapsulate SGE_EGR_UPDATE message inside a FW_MSG. The base NIC already deals with updates in either form.
306295: cxgbe(4): Support SIOGIFXMEDIA so that ifconfig displays correct media for 25Gbps and 100Gbps ports. This should have been part of r305713, which is when the driver first started reporting extended media types.
306301: cxgbe(4): Use the port's top speed to figure out whether it is "high speed" or not (for the purpose of calculating the number of queues etc.) This does the right thing for 25Gbps and 100Gbps ports.
306465: cxgbe(4): Claim the T6 -DBG card.
309302: cxgbe(4): Include firmware for T6 cards in the driver. Update all firmwares to 1.16.12.0.
Sponsored by: Chelsio Communications
|
#
309447 |
|
02-Dec-2016 |
jhb |
MFC 303522,303647,303860,303880,304168-304170,304479,304482,304485,305548, 305549: Chelsio T4/T5 VF driver.
303522: Various fixes to the t4/5nex character device.
- Remove null open/close methods. - Don't set d_flags to 0 explicitly. - Remove t5_cdevsw as the .d_name member isn't really used and doesn't warrant a separate cdevsw just for the name. - Use ENOTTY as the error value for an unknown ioctl request. - Use make_dev_s() to close race with setting si_drv1.
303647: Store the offset of the KDOORBELL and GTS registers in the softc.
VF devices use a different register layout than PF devices. Storing the offset in a value in the softc allows code to be shared between the PF and VF drivers.
303860: Reserve an adapter flag IS_VF to mark VF devices vs PF devices.
303880: Track the base absolute ID of ingress and egress queues.
Use this to map an absolute queue ID to a logical queue ID in interrupt handlers. For the regular cxgbe/cxl drivers this should be a no-op as the base absolute ID should be zero. VF devices have a non-zero base absolute ID and require this change. While here, export the absolute ID of egress queues via a sysctl.
304168: Make SGE parameter handling more VF-friendly.
Add fields to hold the SGE control register and free list buffer sizes to the sge_params structure. Populate these new fields in t4_init_sge_params() for PF devices and change t4_read_chip_settings() to pull these values out of the params structure instead of reading registers directly. This will permit t4_read_chip_settings() to be reused for VF devices which cannot read SGE registers directly.
While here, move the call to t4_init_sge_params() to get_params__post_init(). The VF driver will populate the SGE parameters structure via a different method before calling t4_read_chip_settings().
304169: Update mailbox writes to work with VF devices.
- Use alternate register locations for the data and control registers for VFs. - Do a dummy read to force the writes to the mailbox data registers to post before the write to the control register on VFs. - Do not check the PCI-e firmware register for errors on VFs.
304170: Add support for register dumps on VF devices.
- Add handling of VF register sets to t4_get_regs_len() and t4_get_regs(). - While here, use t4_get_regs_len() in the ioctl handler for regdump instead of inlining it.
304479: Add structures for VF-specific adapter parameters.
While here, mark which parameters are PF-specific and which are VF-specific.
304482: Adjust t4_port_init() to work with VF devices.
Specifically, the FW_PORT_CMD may or may not work for a VF (the PF driver can choose whether or not to permit access to this command), so don't attempt to fetch port information on a VF if permission is denied by the PF.
304485: Reorder sysctls so that nodes shared with the VF driver are added first.
This permits a single early return for VF devices in the routines that add sysctl nodes.
305548: Don't break out of the m_advance() loop if len drops to zero.
If a packet contains the Ethernet header (14 bytes) in the first mbuf and the payload (IP + UDP + data) in the second mbuf, then the attempt to fetch the l3hdr will return a NULL pointer. The first loop iteration will drop len to zero and exit the loop without setting 'p'. However, the desired data is at the start of the second mbuf, so the correct behavior is to loop around and let the conditional set 'p' to m_data of the next mbuf (and leave offset as 0).
305549: Chelsio T4/T5 VF driver.
The cxgbev/cxlv driver supports Virtual Function devices for Chelsio T4 and T4 adapters. The VF devices share most of their code with the existing PF4 driver (cxgbe/cxl) and as such the VF device driver currently depends on the PF4 driver.
Similar to the cxgbe/cxl drivers, the VF driver includes a t4vf/t5vf PCI device driver that attaches to the VF device. It then creates child cxgbev/cxlv devices representing ports assigned to the VF. By default, the PF driver assigns a single port to each VF.
t4vf_hw.c contains VF-specific routines from the shared code used to fetch VF-specific parameters from the firmware.
t4_vf.c contains the VF-specific PCI device driver and includes its own attach routine.
VF devices are required to use a different firmware request when transmitting packets (which in turn requires a different CPL message to encapsulate messages). This alternate firmware request does not permit chaining multiple packets in a single message, so each packet results in a firmware request. In addition, the different CPL message requires more detailed information when enabling hardware checksums, so parse_pkt() on VF devices must examine L2 and L3 headers for all packets (not just TSO packets) for VF devices. Finally, L2 checksums on non-UDP/non-TCP packets do not work reliably (the firmware trashes the IPv4 fragment field), so IPv4 checksums for such packets are calculated in software.
Most of the other changes in the non-VF-specific code are to expose various variables and functions private to the PF driver so that they can be used by the VF driver.
Note that a limited subset of cxgbetool functions are supported on VF devices including register dumps, scheduler classes, and clearing of statistics. In addition, TOE is not supported on VF devices, only for the PF interfaces.
Sponsored by: Chelsio Communications
|
#
308371 |
|
06-Nov-2016 |
avg |
MFC r307768: jedec_ts: a driver for thermal sensors on memory modules
|
#
308304 |
|
04-Nov-2016 |
jhb |
MFC 295778,296249,296333,296383,296471,296478,296481,296485,296488-296491, 296493-296496,296544,296710-296711,297863,299685: Catch up to changes to the internal shared code.
Note that this merge includes two different firmware updates, but the effective change is to update to the last version (1.15.37.0). As such, I've trimmed the log message of the first update (1.15.28.0).
In addition, the M_WAIT macro added in t4_regs.h had to be renamed to CXGBE_M_WAIT to avoid a collision on 10.x that is not present on 11.
295778: cxgbe: catch up with the latest hardware-related definitions.
296249: cxgbe(4): Update T5 and T4 firmwares to 1.15.28.0.
296333: cxgbe(4): First of many changes to reduce diffs with internal shared code:
- Rename some CamelCase variables. - s/t4_link_start/t4_link_l1cfg/g - Pull in t4_get_port_type_description. - Move t4_wait_op_done to t4_hw.c. - Flip the order of the RDMA stats. - Remove unsused function t4_iq_start_stop. - Move t4_wait_op_done and t4_wait_op_done_val to t4_hw.c
296383: cxgbe(4): Very basic T6 awareness. This is part of ongoing work to update to the latest internal shared code.
- Add a chip_params structure to keep track of hardware constants for all generations of Terminators handled by cxgbe. - Update t4_hw_pci_read_cfg4 to work with T6. - Update the hardware debug sysctls (hidden within dev.<tNnex>.<n>.misc.*) to work with T6. Most of the changes are in the decoders for the CIM logic analyzer and the MPS TCAM. - Acquire the regwin lock around indirect register accesses.
296471: cxgbe(4): Updated register dumps.
- Get the list of registers to read during a regdump from the shared code instead of the OS specific code. This follows a similar move internally. The shared code includes the list for T6.
- Update cxgbetool to be able to decode T5 VF, T6, and T6 VF register dumps (and catch up with some updates to T4 and T5 register decode).
296478: cxgbe(4): Add a struct sge_params to store per-adapter SGE parameters. Move the code that reads all the parameters to t4_init_sge_params in the shared code. Use these per-adapter values instead of globals.
296481: cxgbe(4): Overhaul the shared code that deals with the chip's TP block, which is responsible for filtering and RSS.
Add the ability to use filters that match on PF/VF (aka "VNIC id") while here. This is mutually exclusive with filtering on outer VLAN tag with Q-in-Q.
296485: cxgbe(4): Update the interrupt handlers for hardware errors.
296488: cxgbe(4): Updates to mailbox routines in the shared code.
296489: cxgbe(4): Updates to the shared routines that deal with the serial EEPROM, flash, and VPD.
296490: cxgbe(4): Remove __devinit and SPEED_<foo> as part of catch up with internal shared code.
296491: cxgbe(4): Updates to shared routines that get/set various parameters via the firmware.
296493: cxgbe(4): Use t4_link_down_rc_str in shared code to decode the reason the link is down, instead of doing it in OS specific code.
296494: cxgbe(4): Many new functions in the shared code, unused at this time.
296495: cxgbe(4): Fix t4_tp_get_rdma_stats.
296496: cxgbe(4): Minor updates to the shared routines that deal with firmware images.
296544: cxgbe(4): Reshuffle and rototill t4_hw.c, solely to reduce diffs with the internal shared code.
296710: cxgbe(4): Catch up with the latest list of card capabilities as reported by the firmware.
296711: cxgbe(4): Fix typo in previous commit.
297863: Rename the 'M_B' macro in t4_regs.h to 'CXGBE_M_B'.
This fixes a conflict with the M_B macro in powerpc's <machine/db_machdep.h> exposed by the recent addition of DDB commands to the cxgbe driver.
299685: cxgbe(4): Update T5 and T4 firmwares to 1.15.37.0.
These firmwares were obtained from the "Chelsio T5/T4 Unified Wire v2.12.0.3 for Linux" release. Changes since 1.14.4.0 (which is the firmware in -STABLE branches) are in the "Release Notes" accompanying the Unified Wire release and are copy-pasted here as well.
22.1. T5 Firmware +++++++++++++++++++++++++++++++++
Version : 1.15.37.0 Date : 04/27/2016 ================================================================================
FIXES -----
BASE: - Fixed an issue in FW_RSS_VI_CONFIG_CMD handling where the default ingress queue was ignored. - Fixed an issue where adapter failed to load fw by adjusting DRAM frequency. - Fixed an issue in watchdog which was causing VM bring-up failure after reboot. - Fixed 40G link failures with some switches when auto-negotiation enabled. - Fixed to improve on link bring-up time. - Per port buffer groups size doubled to improve performance. - Fixed an issue where bogus d3hot bits were set causing traffic stall. - Fixed an issue where sometimes adapter was not seen after reboot. - Fixed an issue where iWARP was crashing in conjunction with traffic management. - Fixed an issue where link failed to come up after removing twinax cable and inserting optical module.
ETH - Fixed a link flap issue on T580-CR.
OFLD - Fixed a potential iSCSI data corruption issue by disabling RxFragEn flag.
FOiSCSI - Fixed an issue in recovery path where connection was getting closed before recovery processing was done. - Fixed an issue in TCP port reuse. - Fixed an issue in recovery path when large number (>64) of iSCSI connections were in use. - Returned ENETUNREACH if IP was not been provisioned yet and driver tried to use given inerface. - Fixed an issue where fw was sending ENETUNREACH event for normal tcp disconnection.
DCBX - Fixed an issue where iscsi tlv is sent incorrectly to host. (DCBX CEE) - Fixed an issue where apply bit set for APP id was affecting the ETS and PFC settings.(DCBX IEEE) - Fixed an issue where app priority values are not handled correctly in fw. (DCBX IEEE) - Fixed an issue where enable/disable dcbx can cause crash. (DCBX CEE,DCBX IEEE)
FOFCoE - Removed BB6 support.
ENHANCEMENTS ------------
BASE: - Added new interface to program DCA settings in SGE contexts; allow 32-byte IQE size - Added PTP interface fw_ptp_ts to support PTP Frequeny and Offset adjustment. - Added MPS raw interface.
ETH: - New mailbox command FW_DCB_IEEE_CMD api added for IEEE dcbx.
OFLD: - WR opcode is returned to host in cqe error response.
22.2. T4 Firmware +++++++++++++++++
Version : 1.15.37.0 Date : 04/27/2016 ================================================================================
FIXES -----
BASE: - Fixed an issue in FW_RSS_VI_CONFIG_CMD handling where default ingress queue was ignored. - Fixed an issue in watchdog which was causing VM bring-up failure after reboot. - Per port buffer groups size doubled to improve performance. - Fixed an issue where iWARP was crashing in conjunction with traffic management.
FOiSCSI: - Fixed an issue in recovery path where connection was getting closed before recovery processing was done. - Fixed an issue in TCP port reuse. - Fixed an issue in recovery path when large number (>64) of iSCSI connections were in use. - Returned ENETUNREACH if IP had not been provisioned yet and driver tried to use given inerface.
DCBX - Fixed an issue where iscsi tlv is sent incorrectly to host.(DCBX CEE) - Fixed an issue where enable/disable dcbx can cause crash in firmware.(DCBX CEE)
FOiSCSI - Fixes an issue where fw was sending ENETUNREACH event for normal tcp disconnection.
FOFCoE - Removed BB6 support.
ENHANCEMENTS ------------
BASE: - Added MPS raw interface.
ETH: - New mailbox command FW_DCB_IEEE_CMD api added for IEEE dcbx. ================================================================================
Sponsored by: Chelsio Communications
|
#
306536 |
|
30-Sep-2016 |
jkim |
MFC: r284583, r285797, r285799, r287168, r298714, r298720, r298838, r300879
Merge ACPICA up to 20160527.
Requested by: mav
|
#
303609 |
|
01-Aug-2016 |
ngie |
MFC r288071:
- arm64 change was omitted due to lack of architecture support - ia64 change was added as the architecture was removed from ^/head
Sponsored by: EMC / Isilon Storage Division
r288071 (by emaste):
Move kbd.c to main sys/conf/files list
It is (optionally) used on all architectures.
|
#
303167 |
|
21-Jul-2016 |
sobomax |
MFC: merge in all new features and improvements into geom_uzip(8) from current, which includes:
o LZMA compression; o block de-duplication; o performance improvements; o pop out worker kthread to do extraction.
This includes the following revisions: r295943,r295952,r298502,r298619,r299195,r302284
Suggested by: emaste
|
#
301772 |
|
09-Jun-2016 |
truckman |
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
|
#
298430 |
|
21-Apr-2016 |
emaste |
MFC r297685: Add option to specify built-in keymap for kbdmux
PR: 153459 Submitted by: swell.k@gmail.com
|
#
298133 |
|
16-Apr-2016 |
loos |
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)
|
#
298091 |
|
16-Apr-2016 |
loos |
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)
|
#
296992 |
|
17-Mar-2016 |
pfg |
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
|
#
295524 |
|
11-Feb-2016 |
sbruno |
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
|
#
295346 |
|
06-Feb-2016 |
hselasky |
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)
|
#
295131 |
|
01-Feb-2016 |
jhb |
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)
|
#
293675 |
|
11-Jan-2016 |
jimharris |
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
|
#
292973 |
|
31-Dec-2015 |
ngie |
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
|
#
292823 |
|
28-Dec-2015 |
pkelsey |
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.
|
#
292780 |
|
27-Dec-2015 |
marius |
MFC: r271864
Move rl(4) to dev/rl.
|
#
291844 |
|
05-Dec-2015 |
kevlo |
MFC r291238: Add dependency to uether.
Reviewed by: hselasky
|
#
291201 |
|
23-Nov-2015 |
hselasky |
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
|
#
289818 |
|
23-Oct-2015 |
avg |
MFC r261891: provide fast versions of ffsl and flsl for i386; ffsll and flsll for amd64
|
#
288766 |
|
05-Oct-2015 |
mav |
MFC r279433 (by rstone): Implement asprintf in libkern
|
#
288732 |
|
05-Oct-2015 |
mav |
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.
|
#
288720 |
|
05-Oct-2015 |
mav |
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.
|
#
288719 |
|
05-Oct-2015 |
mav |
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.
|
#
288681 |
|
04-Oct-2015 |
peter |
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)
|
#
288581 |
|
03-Oct-2015 |
mav |
MFC r286763: 5497 lock contention on arcs_mtx
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Richard Elling <richard.elling@richardelling.com> Approved by: Dan McDonald <danmcd@omniti.com> Author: Prakash Surya <prakash.surya@delphix.com>
illumos/illumos-gate@244781f10dcd82684fd8163c016540667842f203
This patch attempts to reduce lock contention on the current arc_state_t mutexes. These mutexes are used liberally to protect the number of LRU lists within the ARC (e.g. ARC_mru, ARC_mfu, etc). The granularity at which these locks are acquired has been shown to greatly affect the performance of highly concurrent, cached workloads.
|
#
287016 |
|
22-Aug-2015 |
mav |
MFC r280451: Remove from legacy ata(4) driver support for hardware, supported by newer and more functional drivers ahci(4), siis(4) and mvs(4).
This removes about 3400 lines of code, unused since FreeBSD 9.0 release.
|
#
286895 |
|
18-Aug-2015 |
np |
MFC r285527 and r286338. This takes the firmware from 1.11.27.0 to 1.14.4.0.
r286338: cxgbe(4): Update T5 and T4 firmwares bundled with the driver to 1.14.4.0. The changes in the firmwares since 1.11.27.0 are listed here (straight copy-paste from the "Release Notes.txt" accompanying the Chelsio Unified Wire 2.11.1.0 release on the website).
22.1. T5 Firmware +++++++++++++++++++++++++++++++++
Version : 1.14.4.0 Date : 08/05/2015 ================================================================================
FIXES -----
BASE: - Fixes a potential data path hang by properly programming PMTX congestion threshold settings. - Fixes a potential initialization error when accessing a configuration file stored on the flash. - Fixes a regression where SGE resources can be miss-sized if iWARP is disabled.
ETH: - Fixes a timing issue that would prevent CR4 links from coming up with some switches.
FOFCoE: - Defers fcoe linkdown mailbox command handling till LOGO is sent. - Updates vlan prio for all outstanding IOs during dcbx update.
ENHANCEMENTS ------------
BASE: - Adds support for PAUSE OFF watchdog. - Reports devlog access information in PCIE_FW_PF register 7.
ETH: - Enhances segmentation offload to include VxLAN and Geneve. - Adds PTP support. - Adds new interface to allow the driver to query the VI rss table base addresses. - Allows the driver to program the SGE ingrext contxt CongDrop field.
OFLD: - Adds new interface for the driver to specify offloaded connections TCP snd and rcv scale factors.
iSCSI: - Adds support for iscsi segmentatation offload (ISO). - Adds support for iscsi t10-dif offload.
FOiSCSI: - Sets FORCE_BIT for cut through processing for FOiSCSI.
FOFCoE: - Adds support for FCoE BB6. - Improves WRITE performance.
================================================================================ ================================================================================
Version : 1.13.32.0 Date : 03/25/2015 ================================================================================
FIXES -----
BASE: - Fixes FW_CAPS_CONFIG_CMD return value on error (was positive instead of negative) - Fixes FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ indication (was wrong on certain adapter configurations) - Fixes config file based PL_TIMEOUT register programming
ETH: - Fixes a potential EO UDP SEG header corruption - Fixes an issue where 1000Base-X was not enabled correctly when using QSA modules
OFLD: - Fixes timeout issue with half-open connections - Fixes FW_FLOWC_WR processing when state is set to finwait1
FOFCoE: - Fixes fcoe xchg leaks in linkdown/peer down path - Fixes cleanup in FCoE linkdown and fixed buf timer flowid abuse - Fixes fw crash by clearing fcf flowc during bye
FOiSCSI: - Don't create a new tcp socket if ERL0 attempt has timed out.
ENHANCEMENTS ------------
BASE: - Adds support for VFs on PFs 4 to 7 - Adds support for QPs/CQs on any physical and virtual function
ETH: - Stops sending LACP frames on loopback interface - Adds an AUTOEQU indication to CPL_SGE_EGR_UPDATE - Adds support for CR4 links (BEAN/AEC on 40G TwinAx cables)
OFLD: - Improves default settings of LAN and CLUSTER TCP timer settings - Sends Negative Advice CPLs to software
FOISCSI: - Adds IPv6 support for foiscsi. Keeps backward compatibility with old foiscsi drivers which doesn't support ipv6.
FOFCoE: - Added fcoe debug support in flowc dump
================================================================================ ================================================================================
Version : 1.12.25.0 Date : 10/22/2014 ================================================================================
FIXES -----
BASE: - Improves precision of the Weight Round Robing Traffic Management Algorithm - Fixes an issue where the link would intermittently fail to come up - Fixes an issue where adapters with an external PHY couldn't run at 100Mbps - Fixes an issue where active optical cables were not recognized - Fixes link advertising issues on T520-BT (speed and pause frames) that would cause the link to negotiate unexpected settings - Forces link restart when auto-negotiation is disabled - Fix an issue where pause frames wouldn't be fully disabled even if requested
ETH: - Fixes NVGRE Segmentation Offload network header generation.
DCBX: - Fixes an issue where some settings were not being sent to the switch correctly - Fixes an issue where back-to-back DCBX port updates could get overwritten by FW - Fixes a firmware crash on DCBX APP information request before link up
FOiSCSI: - Fixes abort task leak in tmf response handling - Fixes TCP RST handling while in iSCSI ERL0 - Fixes a firmware crash on BYE without INIT
ENHANCEMENTS -------------
BASE: - Adds link partner settings reporting when available - Adds QSA support (in conjunction with QSA VPD) - Adds T520-BT LED support - Reports NOTSUPPORTED for modules with an unhandled identifier
DCBX: - Adds version reporting (indicating which version FW is trying to negotiate) - Adds IEEE support - Reports LLDP time outs
FOiSCSI: - Add support for multiple iSCSI DDP client - Sends DHCP renew request when lease expires
================================================================================
22.2. T4 Firmware +++++++++++++++++
Version : 1.14.4.0 Date : 08/05/2015 ================================================================================
FIXES -----
BASE: - Fixes a potential initialization error when accessing a configuration file stored on the flash. - Initialize PCIE_DBG_INDIR_REQ.Enable to 0, as hardware failed to do so and register dumps could result in errors.
ETH: - Fixes an issue that sometimes prevented the link from coming up in CR adapters.
ENHANCEMENTS ------------
BASE: - Adds support for PAUSE OFF watchdog. - Reports devlog access information in PCIE_FW_PF register 7.
ETH: - Adds new interface to allow the driver to query the VI rss table base addresses.
OFLD: - Adds new interface for the driver to specify offloaded connections TCP snd and rcv scale factors.
================================================================================ ================================================================================
Version : 1.13.32.0 Date : 03/25/2015 ================================================================================
FIXES -----
BASE: - Fixes FW_CAPS_CONFIG_CMD return value on error (was positive instead of negative) - Fixes FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ indication (was wrong on certain adapter configurations) - Fixes config file based PL_TIMEOUT register programming
ETH: - Fixes a potential EO UDP SEG header corruption
OFLD: - Fixes timeout issue with half-open connections - Fixes FW_FLOWC_WR processing when state is set to finwait1
FOiSCSI: - Don't create a new tcp socket if ERL0 attempt has timed out.
ENHANCEMENTS ------------
ETH: - Stops sending LACP frames on loopback interface - Adds an AUTOEQU indication to CPL_SGE_EGR_UPDATE
OFLD: - Improves default settings of LAN and CLUSTER TCP timer settings - Sends Negative Advice CPLs to software
================================================================================ ================================================================================
Version : 1.12.25.0 Date : 10/22/2014 ================================================================================
FIXES -----
BASE: - Improves precision of the Weight Round Robing Traffic Management Algorithm - Forces link restart when auto-negotiation is disabled - Fix an issue where pause frames wouldn't be fully disabled even if requested
DCBX: - Fixes an issue where some settings were not being sent to the switch correctly - Fixes an issue where back-to-back DCBX port updates could get overwritten by FW - Fixes a firmware crash on DCBX APP information request before link up
FOiSCSI: - Fixes abort task leak in tmf response handling - Fixes TCP RST handling while in iSCSI ERL0 - Fixes a firmware crash on BYE without INIT
ENHANCEMENTS ------------
BASE: - Adds link partner settings reporting when available - Firmware now reports NOTSUPPORTED for modules with an unhandled identifier
DCBX: - Adds version reporting (indicating which version FW is trying to negotiate) - Adds IEEE support - Reports LLDP time outs
FOiSCSI: - Adds support for multiple iSCSI DDP clients - Sends DHCP renew request when lease expires
================================================================================
Obtained from: Chelsio Communications Sponsored by: Chelsio Communications
|
#
285809 |
|
23-Jul-2015 |
scottl |
Merge driver for PMC Sierra's range of SAS/SATA HBAs.
Submitted by: Achim Leubner <Achim.Leubner@pmcs.com> Approved by: re
|
#
284555 |
|
18-Jun-2015 |
arybchik |
MFC: r283514
sfxge: add 7xxx NICs family support
Support 7xxx adapters including firmware-assisted TSO and VLAN tagging:
- Solarflare Flareon Ultra 7000 series 10/40G adapters: - Solarflare SFN7042Q QSFP+ Server Adapter - Solarflare SFN7142Q QSFP+ Server Adapter
- Solarflare Flareon Ultra 7000 series 10G adapters: - Solarflare SFN7022F SFP+ Server Adapter - Solarflare SFN7122F SFP+ Server Adapter - Solarflare SFN7322F Precision Time Synchronization Server Adapter
- Solarflare Flareon 7000 series 10G adapters: - Solarflare SFN7002F SFP+ Server Adapter
Support utilities to configure adapters and update firmware.
The work is done by Solarflare developers (Andy Moreton, Andrew Lee and many others), Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me.
Sponsored by: Solarflare Communications, Inc.
|
#
284365 |
|
14-Jun-2015 |
bryanv |
MFC r273331, r273371, r275851:
- Add vxlan interface
- Use the size of the Ethernet address, not the entire header, when copying into forwarding entry.
- Prefix all the vxlan ifconfig commands so they are unique
|
#
284066 |
|
06-Jun-2015 |
ae |
MFC r274246: Overhaul if_gre(4).
Split it into two modules: if_gre(4) for GRE encapsulation and if_me(4) for minimal encapsulation within IP.
gre(4) changes: * convert to if_transmit; * rework locking: protect access to softc with rmlock, protect from concurrent ioctls with sx lock; * correct interface accounting for outgoing datagramms (count only payload size); * implement generic support for using IPv6 as delivery header; * make implementation conform to the RFC 2784 and partially to RFC 2890; * add support for GRE checksums - calculate for outgoing datagramms and check for inconming datagramms; * add support for sending sequence number in GRE header; * remove support of cached routes. This fixes problem, when gre(4) doesn't work at system startup. But this also removes support for having tunnels with the same addresses for inner and outer header. * deprecate support for various GREXXX ioctls, that doesn't used in FreeBSD. Use our standard ioctls for tunnels.
me(4): * implementation conform to RFC 2004; * use if_transmit; * use the same locking model as gre(4);
PR: 164475
MFC r274289 (by bz): gcc requires variables to be initialised in two places. One of them is correctly used only under the same conditional though.
For module builds properly check if the kernel supports INET or INET6, as otherwise various mips kernels without IPv6 support would fail to build.
MFC r274964: Add ip_gre.h to ObsoleteFiles.inc.
|
#
284052 |
|
06-Jun-2015 |
np |
MFC r276480, r276485, r276498, r277225, r277226, r277227, r277230, r277637, and r283149 (by emaste@).
r276485 is the real change here, the rest deal with the fallout of mp_ring's reliance on 64b atomics.
Use the incorrectly spelled 'eigth' from struct pkthdr in this branch instead of MFC'ing r261733, which would have renamed the field of a public structure in a -STABLE branch. ---
r276480: Temporarily unplug cxgbe(4) from !amd64 builds.
r276485: cxgbe(4): major tx rework.
a) Front load as much work as possible in if_transmit, before any driver lock or software queue has to get involved.
b) Replace buf_ring with a brand new mp_ring (multiproducer ring). This is specifically for the tx multiqueue model where one of the if_transmit producer threads becomes the consumer and other producers carry on as usual. mp_ring is implemented as standalone code and it should be possible to use it in any driver with tx multiqueue. It also has: - the ability to enqueue/dequeue multiple items. This might become significant if packet batching is ever implemented. - an abdication mechanism to allow a thread to give up writing tx descriptors and have another if_transmit thread take over. A thread that's writing tx descriptors can end up doing so for an unbounded time period if a) there are other if_transmit threads continuously feeding the sofware queue, and b) the chip keeps up with whatever the thread is throwing at it. - accurate statistics about interesting events even when the stats come at the expense of additional branches/conditional code.
The NIC txq lock is uncontested on the fast path at this point. I've left it there for synchronization with the control events (interface up/down, modload/unload).
c) Add support for "type 1" coalescing work request in the normal NIC tx path. This work request is optimized for frames with a single item in the DMA gather list. These are very common when forwarding packets. Note that netmap tx in cxgbe already uses these "type 1" work requests.
d) Do not request automatic cidx updates every 32 descriptors. Instead, request updates via bits in individual work requests (still every 32 descriptors approximately). Also, request an automatic final update when the queue idles after activity. This means NIC tx reclaim is still performed lazily but it will catch up quickly as soon as the queue idles. This seems to be the best middle ground and I'll probably do something similar for netmap tx as well.
e) Implement a faster tx path for WRQs (used by TOE tx and control queues, _not_ by the normal NIC tx). Allow work requests to be written directly to the hardware descriptor ring if room is available. I will convert t4_tom and iw_cxgbe modules to this faster style gradually.
r276498: cxgbe(4): remove buf_ring specific restriction on the txq size.
r277225: Make cxgbe(4) buildable with the gcc in base.
r277226: Allow cxgbe(4) to be built on i386. Driver attach will succeed only on a subset of i386 systems.
r277227: Plug cxgbe(4) back into !powerpc && !arm builds, instead of building it on amd64 only.
r277230: Build cxgbe(4) on powerpc64 too.
r277637: Make sure the compiler flag to get cxgbe(4) to compile with gcc is used only when gcc is being used. This is what r277225 should have been.
|
#
283668 |
|
28-May-2015 |
erj |
Fix build issue and incompatibilites introduced by r283620.
- Re-introduce "device ixgbe" option for kernel configs. This allows users to continue using existing kernel configurations, while still letting if_ix and if_ixv exist to allow ifconfig magic to work. Though the amd64 GENERIC config has "device ix" and "device ixv" instead of "device ixgbe".
This is achieved by making the if_ixgbe module a stub that depends on if_ix and if_ixv.
- Replace if_baudrate assignment with if_initbaudrate() call.
Thanks to jhb@ for the stub module suggestion and pointing out the if_baudrate error.
Approved by: jfv (mentor)
|
#
283620 |
|
27-May-2015 |
erj |
MFC ixgbe commits for 10.2:
- r280182 - Split the driver into independent pf/vf loadables - r280197 - Resolve build issues - r280204 - Fix multiple same-name devclasses - r280228 - Fix i386 LINT build issues / remove unused variable - r280252 - Fix building ixgbe with gcc - r280962 - Make changes to busdma code similar to r257541 - r281772 & r281773 - Remove unused variable - partial r282280 - stats counter update (ix-only) - r282289 - Add X550 support - r282290 - Add X550 makefile updates - r282293 - Add ixgbe_x550.c to conf/files - r282299 - Fix gcc compile (extraneous extern declaration)
Finally, add ix_txrx.c to conf/files because it's required for compile in stable/10.
Approved by: jfv (mentor)
|
#
282826 |
|
12-May-2015 |
gnn |
MFC: 282215
Make it possible to statically link SIFTR into the kernel as a new option.
Reviewed by: bz Discussed with: lstewart
|
#
281841 |
|
21-Apr-2015 |
pfg |
MFC r281670, r281703: Drop experimental ext2fs dir_index support.
The htree directory index is a highly desirable feature for research purposes and was meant to improve performance in our ext2/3 driver. Unfortunately our implementation has two problems:
- It never really delivered any performance improvement. - It appears to corrupt the filesystem in undetermined circumstances.
Strictly speaking dir_index is not required for read/write support in ext2/3 and our limited ext4 support still works fine without it.
Regain stability in the ext2 driver by removing it. We may need it back (fixed) if we want to support encrypted ext4 support but thanks to the wonders of version control we can always revert this change and bring it back.
PR: 191895 PR: 198731 PR: 199309
|
#
281075 |
|
04-Apr-2015 |
dim |
MFC r272444 (by jkim):
Merge ACPICA 20140926.
MFC r278970 (by jkim):
Merge ACPICA 20141107 and 20150204.
Approved by: jkim Relnotes: yes
|
#
280900 |
|
31-Mar-2015 |
arybchik |
MFC: 279268
sfxge: add to config files
Sponsored by: Solarflare Communications, Inc.
|
#
279918 |
|
12-Mar-2015 |
mav |
MFC r271146,271201,271207,271261,271457,272606,277100,277126,278034,279320, 279573: Sync AHCI driver with HEAD.
Due to code reorganization in r271146 and many previous reordered merges it is problematic to merge those revisions separately.
|
#
279470 |
|
01-Mar-2015 |
rstone |
MFC r264007,r264008,r264009,r264011,r264012,r264013
MFC support for PCI Alternate RID Interpretation. ARI is an optional PCIe feature that allows PCI devices to present up to 256 functions on a bus. This is effectively a prerequisite for PCI SR-IOV support.
r264007: Add a method to get the PCI RID for a device.
Reviewed by: kib MFC after: 2 months Sponsored by: Sandvine Inc.
r264008: Re-implement the DMAR I/O MMU code in terms of PCI RIDs
Under the hood the VT-d spec is really implemented in terms of PCI RIDs instead of bus/slot/function, even though the spec makes pains to convert back to bus/slot/function in examples. However working with bus/slot/function is not correct when PCI ARI is in use, so convert to using RIDs in most cases. bus/slot/function will only be used when reporting errors to a user.
Reviewed by: kib MFC after: 2 months Sponsored by: Sandvine Inc.
r264009: Re-write bhyve's I/O MMU handling in terms of PCI RID.
Reviewed by: neel MFC after: 2 months Sponsored by: Sandvine Inc.
r264011: Add support for PCIe ARI
PCIe Alternate RID Interpretation (ARI) is an optional feature that allows devices to have up to 256 different functions. It is implemented by always setting the PCI slot number to 0 and re-purposing the 5 bits used to encode the slot number to instead contain the function number. Combined with the original 3 bits allocated for the function number, this allows for 256 functions.
This is enabled by default, but it's expected to be a no-op on currently supported hardware. It's a prerequisite for supporting PCI SR-IOV, and I want the ARI support to go in early to help shake out any bugs in it. ARI can be disabled by setting the tunable hw.pci.enable_ari=0.
Reviewed by: kib MFC after: 2 months Sponsored by: Sandvine Inc.
r264012: Print status of ARI capability in pciconf -c
Teach pciconf how to print out the status (enabled/disabled) of the ARI capability on PCI Root Complexes and Downstream Ports.
MFC after: 2 months Sponsored by: Sandvine Inc.
r264013: Add missing copyright date.
MFC after: 2 months
|
#
276686 |
|
05-Jan-2015 |
kib |
Merge reaper facility.
MFC r270443 (by mjg): Properly reparent traced processes when the tracer dies.
MFC r273452 (by mjg): Plug unnecessary PRS_NEW check in kern_procctl.
MFC 275800: Add a facility for non-init process to declare itself the reaper of the orphaned descendants.
MFC r275821: Add missed break.
MFC r275846 (by mckusick): Add some additional clarification and fix a few gammer nits.
MFC r275847 (by bdrewery): Bump Dd for r275846.
|
#
276149 |
|
23-Dec-2014 |
ae |
MFC r273087 (with modifications): Overhaul if_gif(4): o convert to if_transmit; o use rmlock to protect access to gif_softc; o use sx lock to protect from concurrent ioctls; o remove a lot of unneeded and duplicated code; o remove cached route support (it won't work with concurrent io); o style fixes.
MFC r273090: Move memset under ifdef INET6.
MFC r273091: Add more ifdefs. SIOC*_IN6 are defined only with INET6.
MFC r273121: Add inet/inet6 to the dependency list. Without them if_gif is useless.
MFC r273209 by bz: After r273087,r273090,r273091,r273121 changes to gif(4) try to fix NOIP builds for real.
MFC r273587: Remove redundant check and m_pullup() call.
|
#
274486 |
|
13-Nov-2014 |
gnn |
MFC: 272906
Change the PF hash from Jenkins to Murmur3. In forwarding tests this showed a conservative 3% incrase in PPS.
Original Differential Revision: https://reviews.freebsd.org/D461 Submitted by: des Reviewed by: emaste
|
#
273882 |
|
31-Oct-2014 |
hselasky |
MFC r271159, r271168 and r271680: Add USB LED driver for the Dream Cheeky WebMail Notifier.
|
#
273715 |
|
26-Oct-2014 |
ian |
MFC r262626, r262626, r264979, r265154, r265162, r265163, r267319, r270863, r270991, r271045:
Enhancements related to compiling FDT data...
- Use proper include path for dtc as well as cpp. - Call cpp with -P to avoid printing line markings. - Allow FDT_DTS_FILE to be a list, either in the makedtb target, or in a kernel config file. - Add the dts include directory to the -I list when doing arm builds. - Invoke make_dtb with MACHINE defined for cross building friendliness. - Allow the make_dtb script to work outside of a "make buildkernel" context by setting MACHINE from uname -m if it's not set already. - Use sh -c '...' to launch the dtb build scripts with env prepended, otherwise it tries to treat the env var stuff as a script file name.
|
#
273669 |
|
26-Oct-2014 |
ian |
MFC 271546:
Create an interface and support routines for drivers that handle IO pin multiplexing and configuration based on FDT data.
|
#
273668 |
|
26-Oct-2014 |
ian |
MFC r271535:
Make inclusion of fdt clock support conditional on fdt_clock, not just fdt.
|
#
273657 |
|
26-Oct-2014 |
ian |
MFC r270957, r270959:
Create an interface for drivers to enable or disable their clocks as listed in the clocks=<...> properties of their FDT data.
|
#
272967 |
|
11-Oct-2014 |
adrian |
MFC r271649 - Disable flow-director support until it's been debugged and verified.
The flowdirector feature shares on-chip memory with other things such as the RX buffers. In theory it should be configured in a way that doesn't interfere with the rest of operation. In practice, the RX buffer calculation didn't take the flow-director allocation into account and there'd be overlap. This lead to various garbage frames being received containing what looks like internal NIC state.
What _I_ saw was traffic ending up in the wrong RX queues. If I was doing a UDP traffic test with only one NIC ring receiving traffic, everything is fine. If I fired up a second UDP stream which came in on another ring, there'd be a few percent of traffic from both rings ending up in the wrong ring. Ie, the RSS hash would indicate it was supposed to come in ring X, but it'd come in ring Y.
However, when the allocation was fixed up, the developers at Verisign still saw traffic stalls.
The flowdirector feature ends up fiddling with the NIC to do various attempts at load balancing connections by populating flow table rules based on sampled traffic. It's likely that all of that has to be carefully reviewed and made less "magic".
So for now the flow director feature is disabled (which fixes both what I was seeing and what they were seeing) until it's all much more debugged and verified.
Tested:
* (me) 82599EB 2x10G NIC, RSS UDP testing. * (verisign) not sure on the NIC (but likely 82599), 100k-200k/sec TCP transaction tests.
Submitted by: Marc De La Gueronniere <mdelagueronniere@verisign.com> Sponsored by: Verisign, Inc.
|
#
272877 |
|
09-Oct-2014 |
smh |
MFC r271802: Add dtrace probe support for zfs SET_ERROR(..)
MFC r271873: Fix static kernel build with options ZFS
MFC r271819: Remove sys/types.h include as per style (9)
Sponsored by: Multiplay
|
#
272407 |
|
02-Oct-2014 |
hselasky |
MFC r272027:
Hardware driver update from Mellanox Technologies, including: - improved performance - better stability - new features - bugfixes
Supported HCAs: - ConnectX-2 - ConnectX-3 - ConnectX-3 Pro
NOTE: - TSO feature needs r271946, which is not yet merged.
Sponsored by: Mellanox Technologies Approved by: re, glebius
|
#
270892 |
|
31-Aug-2014 |
trasz |
MFC r270096:
Bring in the new automounter, similar to what's provided in most other UNIX systems, eg. MacOS X and Solaris. It uses Sun-compatible map format, has proper kernel support, and LDAP integration.
There are still a few outstanding problems; they will be fixed shortly.
Reviewed by: allanjude@, emaste@, kib@, wblock@ (earlier versions) Phabric: D523 Relnotes: yes Sponsored by: The FreeBSD Foundation
|
#
270631 |
|
25-Aug-2014 |
jfv |
MFC of the Intel Base driver for the Intel XL710 Ethernet Controller Family - It was decided to change the driver name to if_ixl for FreeBSD - This release adds the VF Driver to the tree, it can be built into the kernel or as the if_ixlv module - The VF driver is independent for the first time, this will be desireable when full SRIOV capability is added to the OS.
Submitted by: jack.vogel@intel.com and eric.joyner@intel.com
|
#
270297 |
|
21-Aug-2014 |
np |
MFC r266571, r266757, r268536, r269076, r269364, r269366, r269411, r269413, r269428, r269440, r269537, r269644, r269731, and the cxgbe portion of r270063.
r266571: cxgbe(4): Remove stray if_up from the code that creates the tracing ifnet.
r266757: cxgbe(4): netmap support for Terminator 5 (T5) based 10G/40G cards. Netmap gets its own hardware-assisted virtual interface and won't take over or disrupt the "normal" interface in any way. You can use both simultaneously.
For kernels with DEV_NETMAP, cxgbe(4) carves out an ncxl<N> interface (note the 'n' prefix) in the hardware to accompany each cxl<N> interface. These two ifnet's per port share the same wire but really are separate interfaces in the hardware and software. Each gets its own L2 MAC addresses (unicast and multicast), MTU, checksum caps, etc. You should run netmap on the 'n' interfaces only, that's what they are for.
With this, pkt-gen is able to transmit > 45Mpps out of a single 40G port of a T580 card. 2 port tx is at ~56Mpps total (28M + 28M) as of now. Single port receive is at 33Mpps but this is very much a work in progress. I expect it to be closer to 40Mpps once done. In any case the current effort can already saturate multiple 10G ports of a T5 card at the smallest legal packet size. T4 gear is totally untested.
trantor:~# ./pkt-gen -i ncxl0 -f tx -D 00:07:43:ab:cd:ef 881.952141 main [1621] interface is ncxl0 881.952250 extract_ip_range [275] range is 10.0.0.1:0 to 10.0.0.1:0 881.952253 extract_ip_range [275] range is 10.1.0.1:0 to 10.1.0.1:0 881.962540 main [1804] mapped 334980KB at 0x801dff000 Sending on netmap:ncxl0: 4 queues, 1 threads and 1 cpus. 10.0.0.1 -> 10.1.0.1 (00:00:00:00:00:00 -> 00:07:43:ab:cd:ef) 881.962562 main [1882] Sending 512 packets every 0.000000000 s 881.962563 main [1884] Wait 2 secs for phy reset 884.088516 main [1886] Ready... 884.088535 nm_open [457] overriding ifname ncxl0 ringid 0x0 flags 0x1 884.088607 sender_body [996] start 884.093246 sender_body [1064] drop copy 885.090435 main_thread [1418] 45206353 pps (45289533 pkts in 1001840 usec) 886.091600 main_thread [1418] 45322792 pps (45375593 pkts in 1001165 usec) 887.092435 main_thread [1418] 45313992 pps (45351784 pkts in 1000834 usec) 888.094434 main_thread [1418] 45315765 pps (45406397 pkts in 1002000 usec) 889.095434 main_thread [1418] 45333218 pps (45378551 pkts in 1001000 usec) 890.097434 main_thread [1418] 45315247 pps (45405877 pkts in 1002000 usec) 891.099434 main_thread [1418] 45326515 pps (45417168 pkts in 1002000 usec) 892.101434 main_thread [1418] 45333039 pps (45423705 pkts in 1002000 usec) 893.103434 main_thread [1418] 45324105 pps (45414708 pkts in 1001999 usec) 894.105434 main_thread [1418] 45318042 pps (45408723 pkts in 1002001 usec) 895.106434 main_thread [1418] 45332430 pps (45377762 pkts in 1001000 usec) 896.107434 main_thread [1418] 45338072 pps (45383410 pkts in 1001000 usec) ...
r268536: cxgbe(4): Add an iSCSI softc to the adapter structure.
r269076: Some hooks in cxgbe(4) for the offloaded iSCSI driver.
r269364: Improve compliance with style.Makefile(5).
r269366: List one file per line in the Makefiles. This makes it easier to read diffs when a file is added or removed.
r269411: cxgbe(4): minor optimizations in ingress queue processing.
Reorganize struct sge_iq. Make the iq entry size a compile time constant. While here, eliminate RX_FL_ESIZE and use EQ_ESIZE directly.
r269413: cxgbe(4): Fix an off by one error when looking for the BAR2 doorbell address of an egress queue.
r269428: cxgbe(4): some optimizations in freelist handling.
r269440: cxgbe(4): Remove an unused version of t4_enable_vi.
r269537: cxgbe(4): Do not run any sleepable code in the SIOCSIFFLAGS handler when IFF_PROMISC or IFF_ALLMULTI is being flipped. bpf(4) holds its global mutex around ifpromisc in at least the bpf_dtor path.
r269644: cxgbe(4): Let caller specify whether it's ok to sleep in t4_sched_config and t4_sched_params.
r269731: cxgbe(4): Do not poke T4-only registers on a T5 (and vice versa).
Relnotes: Yes (native netmap support for Chelsio T4/T5 cards)
|
#
270284 |
|
21-Aug-2014 |
ian |
MFC r260401
Remove aicasm as a build dependency. It made sense when the ahc and ahd drivers and their firmware were under active development, but those days have passed. The firmware now exists in pre-compiled form, no longer dependent on it's sources or on aicasm. If you wish to rebuild the firmware from source, the glue still exists under the 'make firmware' target in sys/modules/aic7xxx.
This also fixes the problem introduced with r257777 et al with building kernels the old fashioned way in sys/$arch/compile/$CONFIG when the ahc/ahd drivers were included.
|
#
270274 |
|
21-Aug-2014 |
ian |
MFC r257637, r257730, r257734, r257777, r257825, r257838, r257873:
Changes to how the aicasm tool is built. This series of changes results in the aicasm tool being built as part of the tools stages of world and kernel builds.
Most of these changes will ultimately be undone when r260401 is MFC'd, but it will leave in place the new kernel-build-tool machinery (KTMAKE stuff) in case a new special kernel tool ever comes along.
|
#
270252 |
|
20-Aug-2014 |
luigi |
MFC 270063: update of netmap code (vtnet and cxgbe not merged yet because we need some other mfc first)
|
#
269922 |
|
13-Aug-2014 |
hselasky |
MFC r269567: Add new USB phone descriptor template for USB device side mode.
|
#
269398 |
|
01-Aug-2014 |
rmacklem |
MFC: r268115 Merge the NFSv4.1 server code in projects/nfsv4.1-server over into head. The code is not believed to have any effect on the semantics of non-NFSv4.1 server behaviour. It is a rather large merge, but I am hoping that there will not be any regressions for the NFS server.
|
#
269296 |
|
30-Jul-2014 |
mav |
MFC r268767: Add support for VMWare dialect of EXTENDED COPY command, aka VAAI Clone.
This allows to clone VMs and move them between LUNs inside one storage host without generating extra network traffic to the initiator and back, and without being limited by network bandwidth.
LUNs participating in copy operation should have UNIQUE NAA or EUI IDs set. For LUNs without these IDs VMWare will use traditional copy operations.
Beware: the above LUN IDs explicitly set to values non-unique from the VM cluster point of view may cause data corruption if wrong LUN is addressed!
Sponsored by: iXsystems, Inc.
|
#
268649 |
|
15-Jul-2014 |
delphij |
MFC r268075: MFV r267565:
4757 ZFS embedded-data block pointers ("zero block compression") 4913 zfs release should not be subject to space checks
|
#
268371 |
|
07-Jul-2014 |
ray |
MFC of r263873.
Pointed by: Ivan Klymenko <fidaj@ukr.net>
Sponsored by: The FreeBSD Foundation
|
#
268366 |
|
07-Jul-2014 |
ray |
267622 Log: Rename vt(4) vga module to dismiss interference with syscons(4) vga module. 267623 Log: Remove stale link to deleted vt(4) xboxfb driver. 267624 Log: syscons(4) and vt(4) can be built together now. 267625 Log: Allow to disable syscons(4) if "hw.syscons.disable" kenv is set. 267626 Log: Suspend vt(4) initialization if "kern.vt.disable" kenv is set. 267965 by emaste@ Log: Use a common tunable to choose between vt(4)/sc(4) With this change and previous work from ray@ it will be possible to put both in GENERIC, and have one enabled by default, but allow the other to be selected via the loader. (The previous implementation had separate kern.vt.disable and hw.syscons.disable tunables, and would panic if both drivers were compiled in and neither was explicitly disabled.) 268175 by emaste@ Log: Fix vt(4) detection in kbdcontrol and vidcontrol As sc(4) and vt(4) coexist and are both enabled in GENERIC, the existence of a vt(4) sysctl is not sufficient to determine that vt(4) is in use. Reported by: Trond Endrestøl 268045 by emaste@ Log: 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 .
Sponsored by: The FreeBSD Foundation
|
#
268091 |
|
01-Jul-2014 |
ae |
MFC r267355: Add UUIDs for DragonFlyBSD's partition types.
MFC r267356: Add DragonFlyBSD's Hammer FS types and type names.
MFC r267357: Add aliases for DragonFlyBSD's partition types.
MFC r267358: Allow dumping to DragonFlyBSD's swap partition.
MFC r267359: Add disklabel64 support to GEOM_PART class.
This partitioning scheme is used in DragonFlyBSD. It is similar to BSD disklabel, but has the following improvements: * metadata has own dedicated place and isn't accessible through partitions; * all offsets are 64-bit; * supports 16 partitions by default (has reserved place for more); * has reserved place for backup label (but not yet implemented); * has UUIDs for partitions and partition types;
MFC r267360: Add disklabel64 support
Relnotes: yes
|
#
267849 |
|
25-Jun-2014 |
np |
MFC r267757:
cxgbe(4): Update the bundled T4 and T5 firmwares to versions 1.11.27.0
Obtained from: Chelsio
|
#
267494 |
|
15-Jun-2014 |
kib |
MFC r267226: Initialize the pbuf counter for directio using SYSINIT. Mark ffs_rawread.c as requiring both ffs and directio options to be compiled into the kernel. Add ffs_rawread.c to the list of ufs.ko module' sources.
|
#
266578 |
|
23-May-2014 |
hselasky |
MFC r257543, r264912, r264972, r264982 and r266472: - Add preliminary support for the Realtek RTL8188EUS and RTL8188ETV chipsets. - Add device ID for 'Sanoxy 802.11N' USB - Initialize rssi variable. - Fix gcc build, initialize off variable. - The DELAY() should not be used in USB drivers. - The usb_pause_mtx() function takes ticks and not milliseconds as last argument.
|
#
266251 |
|
16-May-2014 |
ian |
MFC 262614, 262625, 262626, 262627, 262682, 262714, 262725, 262736
Integrate device-tree upstream files into the build process: (1) Invoke cpp to bring in files via #include (although the old /include/ stuff is supported still). (2) bring in files from either vendor tree or freebsd-custom files when building. (3) move all dts* files from sys/boot/fdt/dts to sys/boot/fdt/dts/${MACHINE} as appropriate. (4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh so that the different places in the tree use the exact same logic. (5) switch back to gpl dtc by default. the bsdl one in the tree has significant issues not easily addressed by those unfamiliar with the code.
Only try to build the static dtb when we're building a static dtb.
Use proper include path for dtc as well as cpp.
Fix syntax errors (missing ; other minor glitches) in existing dts files.
|
#
266160 |
|
15-May-2014 |
ian |
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565, r261596, r261606
Add the imx sdhci controller.
Move Open Firmware device root on PowerPC, ARM, and MIPS systems to a sub-node of nexus (ofwbus) rather than direct attach under nexus. This fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier. SPARC is unchanged.
Add the missing ')' at end of sentence. Reword it to use a more common idiom.
Pass the kernel physical address to initarm through the boot param struct.
Make functions only used in vfp.c static, and remove vfp_enable.
Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to place 32-bit data in r1, not r0. 64-bit data is already packed correctly.
Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us remove the need to load the kernel at a fixed address.
Remove references to PHYSADDR where it's used only in debugging output.
Dynamically generate the page table. This will allow us to detect the physical address we are loaded at to change the mapping.
|
#
266128 |
|
15-May-2014 |
ian |
MFC r261351, r261352, r261355, r261396, r261397, r261398, r261403, r261404, r261405
Open Firmware interrupt specifiers can consist of arbitrary-length byte strings and include arbitrary information (IRQ line/domain/sense). When the ofw_bus_map_intr() API was introduced, it assumed that, as on most systems, these were either 1 cell, containing an interrupt line, or 2, containing a line number plus a sense code. It turns out a non-negligible number of ARM systems use 3 (or even 4!) cells for interrupts, so make this more general.
Provide a simpler and more standards-compliant simplebus implementation to get the Routerboard 800 up and running with the vendor device tree. This does not implement some BERI-specific features (which hopefully won't be necessary soon), so move the old code to mips/beri, with a higher attach priority when built, until MIPS interrupt domain support is rearranged.
Allow nesting of simplebuses.
Add a set of helpers (ofw_bus_get_status() and ofw_bus_status_okay()) to process "status" properties of OF nodes.
Fix one remnant endian flaw in nexus.
|
#
266105 |
|
14-May-2014 |
loos |
MFC r258046, r258047, r258050, r259035, r259036, r259037, r261842, r261843, r261844, r261845, r261846, r262194, r262522, r262559
r258046: Fix a typo on a comment in ofw_bus_if.m, the default method will return -1 when a node doesn't exist.
r258047: Move the KASSERT() check to the point before the increase of number of pins.
r258050: Fix gpiobus to return BUS_PROBE_GENERIC insted of BUS_PROBE_SPECIFIC (0) so it can be overriden by its OFW/FDT version.
Give a chance for GPIO devices that implement the device_identify method to attach.
r259035: Remove unnecessary includes and an unused softc variable. While here apply two minor style(9) fixes.
r259036: Move the GPIOBUS_SET_PINFLAGS(..., ..., pin, GPIO_PIN_OUTPUT) to led(4) control callback function. This makes gpioled(4) works even if the pin is accidentally set to an input.
r259037: Fix the pin value reading on AM335x. Because of the inverted logic it was always returning '0' for all the reads, even for the outputs. It is now known to work with gpioiic(4) and gpioled(4).
r261842: Add an OFW GPIO compatible bus. This allows the use of the DTS files to describe GPIO bindings in the system.
Move the GPIOBUS lock macros to gpiobusvar.h as they are now shared between the OFW and the non OFW versions of GPIO bus.
Export gpiobus_print_pins() so it can also be used on the OFW GPIO bus.
r261843: Add OFW support to the in tree gpio compatible devices: gpioiic(4) and gpioled(4).
Tested on RPi and BBB (using the hardware I2C controller and gpioiic(4) for the I2C tests). It was also verified for regressions on RSPRO (MIPS/ar71xx) used as reference for a non OFW-based system.
Update the gpioled(4) and gpioiic(4) man pages with some details and examples about the FDT/OFW support.
Some compatibility details pointed out by imp@ will follow in subsequent commits.
r261844: Allow the use of OFW I2C bus together with iicbb(4) on OFW-based systems.
This change makes ofw_iicbus attach to iicbb(4) controllers in addition to the already supported i2c host bridges (iichb).
On iicbb(4) allow the direct access of the OFW parent node by its children, so they can be directly attached to iicbb(4) node on the DTS without the need of describing the i2c bus.
r261845: Allow the use of the OFW GPIO bus for ti_gpio and bcm2835_gpio. With this change the gpio children can be described as directly connected to the GPIO controller without the need of describing the OFW GPIO bus itself on the DTS file.
With this commit the OFW GPIO bus is fully functional on BBB and RPi.
GPIO controllers which want to use the OFW GPIO bus will need similar changes.
r261846: Make the gpioled(4) work out of the box on BBB.
Add gpioled(4) to BEAGLEBONE kernel and add the description of the four on-board leds of beaglebone-black to its DTS file.
r262194: Remove an unnecessary header.
r262522: Fix make depend for iicbus.
r262559: Inspired by r262522, fix make depend. This fixes the build of gpio modules.
|
#
266084 |
|
14-May-2014 |
ian |
MFC r257738, r259202, r258410, r260288, r260292, r260294, r260320, r260323, r260326, r260327, r260331, r260333, r260340, r260371, r260372, r260373, r260374, r260375
Add common bus_space tag definition shared for most supported ARMv6/v7 SoCs. Correct license statements to reflect the fact that these files were all derived from sys/arm/mv/bus_space.c.
In pmap_unmapdev(), remember the size, and use that as an argument to kva_free(), or we'd end up always passing it a size of 0
In pmap_mapdev(), first check whether a static mapping exists,
Convert TI static device mapping to use the new arm_devmap_add_entry(),
Use the common armv6 fdt_bus_tag defintion for tegra instead of a local copy.
Eliminate use of fdt_immr_addr(), it's not needed for tegra
Convert lpc from using fdt_immr style to arm_devmap_add_entry() to make static device mappings.
Retire machine/fdt.h as a header used by MI code, as its function is now obsolete. This involves the following pieces: - Remove it entirely on PowerPC, where it is not used by MD code either - Remove all references to machine/fdt.h in non-architecture-specific code (aside from uart_cpu_fdt.c, shared by ARM and MIPS, and so is somewhat non-arch-specific). - Fix code relying on header pollution from machine/fdt.h includes - Legacy fdtbus.c (still used on x86 FDT systems) now passes resource requests to its parent (nexus). This allows x86 FDT devices to allocate both memory and IO requests and removes the last notionally MI use of fdtbus_bs_tag. - On those architectures that retain a machine/fdt.h, unused bits like FDT_MAP_IRQ and FDT_INTR_MAX have been removed.
Add #include <machine/fdt.h> to a few files that used to get it via pollution
Enable the mv cesa security/crypto device by providing the required property in the dts source, and adding the right devices to the kernel config.
Remove dev/fdt/fdt_pci.c, which was code specific to Marvell ARM SoCs, related to setting up static device mappings. Since it was only used by arm/mv/mv_pci.c, it's now just static functions within that file, plus one public function that gets called only from arm/mv/mv_machdep.c.
Switch RPi to using arm_devmap_add_entry() to set up static device mapping.
Allow 'no static device mappings' to potentially work.
Don't try to find a static mapping before calling pmap_mapdev(), that logic is now part of pmap_mapdev() and doesn't need to be duplicated here.
Switch a10 to using arm_devmap_add_entry() to set up static device mapping.
|
#
266000 |
|
14-May-2014 |
ian |
MFC r257702, r257745, r257746, r257747, r257751, r257791, r257793, r257794, r257795, r257992
Teach nexus(4) about Open Firmware (e.g. FDT) on ARM and MIPS, retiring fdtbus in most cases.
Make OF_nextprop() work correctly for FDT by using the libfdt fdt_next_property_offset() API.
Do not panic if pmap_mincore() is called.
An addendum: it is possible, though of questionable utility, for a node to have no properties at all. Add definition for the Atheros 8021 gigabit PHY.
Consolidate Apple firmware hacks and improve them by switching on the presence of mac-io devices in the tree, which uniquely identifies Apple hardware.
Allow OF_decode_addr() to also be able to map resources on big-endian devices.
Make tsec work with the device tree present on the RB800.
Be more flexible about which compatible strings to accept. This brings up the PCI Express bus on the RB800 using the firmware device tree.
Rename the "bare" platform "mpc85xx", which is what it actually is, and add actual platform probing based on PVR.
|
#
265971 |
|
13-May-2014 |
ian |
MFC r257114, r257118
Use common OFW root code to set up fdtbus. This is an almost purely negative diff that should improve reliability somewhat. There should be no differences in behavior -- please report any that crop up. This has been tested on ARM and PPC systems.
Make sure to get the right node when looking up #interrupt-cells.
|
#
265922 |
|
12-May-2014 |
ambrisko |
MFC 265555
dd mrsas(4) driver from LSI official support of newer MegaRAID SAS cards. LSI has been maintaining this driver outside of the FreeBSD tree. It overlaps support of ThunderBolt and Invader cards that mfi(4) supports. By default mfi(4) will attach to cards. If the tunable: hw.mfi.mrsas_enable=1 is set then mfi(4) will not probe and attach to these newer cards and allow mrsas(4) to attach. So by default this driver will not effect a FreeBSD system unless mfi(4) is removed from the kernel or the tunable is enabled.
mrsas(4) attaches disks to the CAM layer so it depends on CAM and devices show up as /dev/daX. mfiutil(8) does not work with mrsas. The FreeBSD version of MegaCli and StorCli from LSI do work with mrsas. It appears that StorCli only works with mrsas. MegaCli appears to work with mfi(4) and mrsas(4).
It would be good to add mfiutil(4) support to mrsas, emulations modes, kernel logging, device aliases to ease the transition between mfi(4) and mrsas(4).
Style issues should be resolved by LSI when they get committers approved. The plan is get this driver in FreeBSD 9.3 to improve HW support.
Thanks to LSI for developing, testing and working with FreeBSD to make this driver co-exist in FreeBSD. This improves the overall support of MegaRAID SAS.
Submitted by: Kashyap Desai <Kashyap.Desai@lsi.com> Sponsored by: LSI
|
#
265536 |
|
07-May-2014 |
marius |
MFC: r265248
Allow GEOM_VINUM to be statically compiled into the kernel.
Submitted by: gleb
|
#
265491 |
|
07-May-2014 |
trasz |
MFC r263811:
Remove ctl_mem_pool.{c,h}.
Sponsored by: The FreeBSD Foundation
|
#
265388 |
|
05-May-2014 |
ken |
MFC the mpr(4) driver for LSI's 12Gb SAS cards.
This includes r265236, r265237, r265241 and r265261:
------------------------------------------------------------------------ r265236 | ken | 2014-05-02 14:25:09 -0600 (Fri, 02 May 2014) | 51 lines
Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers.
This is derived from the mps(4) driver, but it supports only the 12Gb IT and IR hardware including the SAS 3004, SAS 3008 and SAS 3108.
Some notes about this driver: o The 12Gb hardware can do "FastPath" I/O, and that capability is included in this driver.
o WarpDrive functionality has been removed, since it isn't supported in the 12Gb driver interface.
o The Scatter/Gather list handling code is significantly different between the 6Gb and 12Gb hardware. The 12Gb boards support IEEE Scatter/Gather lists.
Thanks to LSI for developing and testing this driver for FreeBSD.
share/man/man4/mpr.4: mpr(4) man page.
sys/dev/mpr/*: mpr(4) driver files.
sys/modules/Makefile, sys/modules/mpr/Makefile: Add a module Makefile for the mpr(4) driver.
sys/conf/files: Add the mpr(4) driver.
sys/amd64/conf/GENERIC, sys/i386/conf/GENERIC, sys/mips/conf/OCTEON1, sys/sparc64/conf/GENERIC: Add the mpr(4) driver to all config files that currently have the mps(4) driver.
sys/ia64/conf/GENERIC: Add the mps(4) and mpr(4) drivers to the ia64 GENERIC config file.
sys/i386/conf/XEN: Exclude the mpr module from building here.
Submitted by: Steve McConnell <Stephen.McConnell@lsi.com> Tested by: Chris Reeves <chrisr@spectralogic.com> Sponsored by: LSI, Spectra Logic Relnotes: LSI 12Gb SAS driver mpr(4) added
------------------------------------------------------------------------ ------------------------------------------------------------------------ r265237 | ken | 2014-05-02 14:36:20 -0600 (Fri, 02 May 2014) | 8 lines
Add the mpr(4) man page to the man4 Makefile.
This should have been included in r265236.
Submitted by: Steve McConnell <Stephen.McConnell@lsi.com> MFC after: 3 days Sponsored by: LSI, Spectra Logic
------------------------------------------------------------------------ ------------------------------------------------------------------------ r265241 | brueffer | 2014-05-02 15:14:28 -0600 (Fri, 02 May 2014) | 2 lines
Use our standard SYNOPSIS wording; perform some cleanup while here.
------------------------------------------------------------------------ ------------------------------------------------------------------------ r265261 | brueffer | 2014-05-03 05:15:28 -0600 (Sat, 03 May 2014) | 2 lines
Add a missing colon.
------------------------------------------------------------------------
Submitted by: Steve McConnell <Stephen.McConnell@lsi.com> Tested by: Chris Reeves <chrisr@spectralogic.com> Sponsored by: LSI, Spectra Logic Relnotes: LSI 12Gb SAS driver mpr(4) added
|
#
263407 |
|
19-Mar-2014 |
delphij |
MFC r260183: MFV r260154 + 260182:
4369 implement zfs bookmarks 4368 zfs send filesystems from readonly pools
Illumos/illumos-gate@78f171005391b928aaf1642b3206c534ed644332
|
#
262861 |
|
06-Mar-2014 |
jhb |
MFC 259016,259019,259049,259071,259102,259110,259129,259130,259178,259179, 259203,259221,259261,259532,259615,259650,259651,259667,259680,259727, 259761,259772,259776,259777,259830,259882,259915,260160,260449,260450, 260688,260888,260953,261269,261547,261551,261552,261553,261585: Merge the vt(4) driver (newcons) to stable/10.
Approved by: ray
|
#
262363 |
|
23-Feb-2014 |
hselasky |
MFC r261541, r261543 and r261544: Import USB RNDIS driver to FreeBSD from OpenBSD. Useful for so-called USB tethering. - Imported code from OpenBSD - Adapted code to FreeBSD - Removed some unused functions - Fixed some buffer encoding and decoding issues - Optimised data transport path a bit, by sending multiple packets at a time - Increased receive buffer to 16K
|
#
262151 |
|
18-Feb-2014 |
luigi |
MFH: sync the netmap code with the one in HEAD (enhanced VALE switch, netmap pipes, emulated netmap mode). See details in the log for svn 261909.
|
#
262137 |
|
17-Feb-2014 |
markj |
MFC r258036: Add IDs for the ASIX 88179 and 88178A USB to GigE adapters.
MFC r258331: Import the axge(4) driver for the ASIX AX88178A and AX88179 USB Ethernet adapters. Both devices support Gigabit Ethernet and USB 2.0, and the AX88179 supports USB 3.0.
MFC r258617 (by lwhsu): Also note to add xhci(4) to kernel configuration to utilize USB 3.0
MFC r258618 (by lwhsu): Mention axge(4)
|
#
262131 |
|
17-Feb-2014 |
dim |
MFC r261903:
Disable warning about unused static const variables for sys/pci/ncr.c.
|
#
262130 |
|
17-Feb-2014 |
dim |
MFC r261902:
In r260111, in sys/conf/files, I disabled warning about unused functions for the wrong mcg.c, the one in ofed/drivers/infiniband/hw/mlx4. Disable the warning for ofed/drivers/net/mlx4/mcg.c instead.
|
#
262126 |
|
17-Feb-2014 |
dim |
MFC r261899:
Similar to r260026, disable warning about unused functions for ieee80211_adhoc.c, ieee80211_hostap.c and ieee80211_sta.c.
|
#
262093 |
|
17-Feb-2014 |
avg |
MFC r258717: MFV r258371,r258372: 4101 metaslab_debug should allow for fine-grained control
|
#
261965 |
|
16-Feb-2014 |
brueffer |
MFC: r261701
Allow iwn2000 and iwn2030 firmware to be linked into the kernel.
PR: 184631 Submitted by: Oliver Pinter
|
#
261509 |
|
05-Feb-2014 |
hselasky |
MFC r261260, r261262, r261315 and r261343: Add support for trackpads found in Apple MacBook products. While at it add some missing devd entries.
|
#
261078 |
|
23-Jan-2014 |
loos |
MFC r256959:
Add the Raspberry Pi BSC (I2C compliant) controller driver.
Reviewed by: rpaulo
MFC r256961:
Enable the build of OFW I2C bus for FDT systems.
MFC r258045:
As all the IIC controllers on system uses the same 'iichb' prefix we cannot rely only on checking the device unit to indentify the BSC unit we are attaching to. Make use of the device base address to identify our BSC unit.
MFC r259127:
Bring the RPi I2C driver in line with ti_i2c. Make it treat any slave address as a 7-bit address.
Approved by: adrian (mentor)
|
#
260489 |
|
09-Jan-2014 |
loos |
MFC r257064:
Add an OFW SPI compatible bus. Fix the spibus probe to return BUS_PROBE_GENERIC and not BUS_PROBE_SPECIFIC (0) so the OFW SPI bus can attach when enabled. Export the spibus devclass_t and driver_t declarations.
Submitted by: ray Approved by: adrian (mentor)
|
#
260297 |
|
04-Jan-2014 |
dim |
MFC r260111:
For sys/ofed/drivers/infiniband/hw/mlx4/mcg.c, disable warning about unused variables for now.
|
#
260293 |
|
04-Jan-2014 |
dim |
MFC r260104:
For sys/ofed/drivers/infiniband/core/cm.c, disable warning about unused functions for now.
|
#
260274 |
|
04-Jan-2014 |
dim |
MFC r260039:
Turn off warnings about unused variables for a bunch of files under contrib/ipfilter.
|
#
260273 |
|
04-Jan-2014 |
dim |
MFC r260026:
Disable warning about unused functions for ieee80211_crypto.c and ieee80211_mesh.c for now.
|
#
260272 |
|
04-Jan-2014 |
dim |
MFC r260025:
Disable warning about unused functions for ar9300_reset.c for now.
|
#
259980 |
|
27-Dec-2013 |
peter |
MFC r259109: allow ZFS to co-habitate with crypto / aesni
|
#
257457 |
|
31-Oct-2013 |
brooks |
MFC r256861:
MFP4: 223121 (FDT infrastructure portion)
Implement support for interrupt-parent nodes in simplebus. The current implementation requires that device declarations have an interrupt-parent node and that it point to a device that has registered itself as a interrupt controller in fdt_ic_list_head and implements the fdt_ic interface.
Sponsored by: DARPA/AFRL Approved by: re (gjb)
|
#
257456 |
|
31-Oct-2013 |
brooks |
MFC r256865
Remove the isf(4) driver. It was created by accident and is subset of the cfi(4) driver. It remained in the tree longer than would be ideal due to the time required to bring cfi(4) to feature parity.
Sponsored by: DARPA/AFRL Approved by: re (gjb)
|
#
256821 |
|
21-Oct-2013 |
gibbs |
MFC 256813:
The Xen userland event channel driver isn't complete. Disabled it from the kernel build until it is ready.
sys/conf/files: Remove the entry for xen/evtchn/evtchn_dev.c so it is not included in any kernel builds.
Noticed by: smh Approved by: re (hrs) ------------------------------------------------------------------------
|
#
256791 |
|
20-Oct-2013 |
np |
MFC r256459.
cxgbe(4): Update T4 and T5 firmwares to 1.9.12.0
Approved by: re (glebius)
|
#
256381 |
|
12-Oct-2013 |
markm |
Merge from project branch via main. Uninteresting commits are trimmed.
Refactor of /dev/random device. Main points include:
* Userland seeding is no longer used. This auto-seeds at boot time on PC/Desktop setups; this may need some tweeking and intelligence from those folks setting up embedded boxes, but the work is believed to be minimal.
* An entropy cache is written to /entropy (even during installation) and the kernel uses this at next boot.
* An entropy file written to /boot/entropy can be loaded by loader(8)
* Hardware sources such as rdrand are fed into Yarrow, and are no longer available raw.
------------------------------------------------------------------------ r256240 | des | 2013-10-09 21:14:16 +0100 (Wed, 09 Oct 2013) | 4 lines
Add a RANDOM_RWFILE option and hide the entropy cache code behind it. Rename YARROW_RNG and FORTUNA_RNG to RANDOM_YARROW and RANDOM_FORTUNA. Add the RANDOM_* options to LINT.
------------------------------------------------------------------------ r256239 | des | 2013-10-09 21:12:59 +0100 (Wed, 09 Oct 2013) | 2 lines
Define RANDOM_PURE_RNDTEST for rndtest(4).
------------------------------------------------------------------------ r256204 | des | 2013-10-09 18:51:38 +0100 (Wed, 09 Oct 2013) | 2 lines
staticize struct random_hardware_source
------------------------------------------------------------------------ r256203 | markm | 2013-10-09 18:50:36 +0100 (Wed, 09 Oct 2013) | 2 lines
Wrap some policy-rich code in 'if NOTYET' until we can thresh out what it really needs to do.
------------------------------------------------------------------------ r256184 | des | 2013-10-09 10:13:12 +0100 (Wed, 09 Oct 2013) | 2 lines
Re-add /dev/urandom for compatibility purposes.
------------------------------------------------------------------------ r256182 | des | 2013-10-09 10:11:14 +0100 (Wed, 09 Oct 2013) | 3 lines
Add missing include guards and move the existing ones out of the implementation namespace.
------------------------------------------------------------------------ r256168 | markm | 2013-10-08 23:14:07 +0100 (Tue, 08 Oct 2013) | 10 lines
Fix some just-noticed problems:
o Allow this to work with "nodevice random" by fixing where the MALLOC pool is defined.
o Fix the explicit reseed code. This was correct as submitted, but in the project branch doesn't need to set the "seeded" bit as this is done correctly in the "unblock" function.
o Remove some debug ifdeffing.
o Adjust comments.
------------------------------------------------------------------------ r256159 | markm | 2013-10-08 19:48:11 +0100 (Tue, 08 Oct 2013) | 6 lines
Time to eat crow for me.
I replaced the sx_* locks that Arthur used with regular mutexes; this turned out the be the wrong thing to do as the locks need to be sleepable. Revert this folly.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com> (In original diff)
------------------------------------------------------------------------ r256138 | des | 2013-10-08 12:05:26 +0100 (Tue, 08 Oct 2013) | 10 lines
Add YARROW_RNG and FORTUNA_RNG to sys/conf/options.
Add a SYSINIT that forces a reseed during proc0 setup, which happens fairly late in the boot process.
Add a RANDOM_DEBUG option which enables some debugging printf()s.
Add a new RANDOM_ATTACH entropy source which harvests entropy from the get_cyclecount() delta across each call to a device attach method.
------------------------------------------------------------------------ r256135 | markm | 2013-10-08 07:54:52 +0100 (Tue, 08 Oct 2013) | 8 lines
Debugging. My attempt at EVENTHANDLER(multiuser) was a failure; use EVENTHANDLER(mountroot) instead.
This means we can't count on /var being present, so something will need to be done about harvesting /var/db/entropy/... .
Some policy now needs to be sorted out, and a pre-sync cache needs to be written, but apart from that we are now ready to go.
Over to review.
------------------------------------------------------------------------ r256094 | markm | 2013-10-06 23:45:02 +0100 (Sun, 06 Oct 2013) | 8 lines
Snapshot.
Looking pretty good; this mostly works now. New code includes:
* Read cached entropy at startup, both from files and from loader(8) preloaded entropy. Failures are soft, but announced. Untested.
* Use EVENTHANDLER to do above just before we go multiuser. Untested.
------------------------------------------------------------------------ r256088 | markm | 2013-10-06 14:01:42 +0100 (Sun, 06 Oct 2013) | 2 lines
Fix up the man page for random(4). This mainly removes no-longer-relevant details about HW RNGs, reseeding explicitly and user-supplied entropy.
------------------------------------------------------------------------ r256087 | markm | 2013-10-06 13:43:42 +0100 (Sun, 06 Oct 2013) | 6 lines
As userland writing to /dev/random is no more, remove the "better than nothing" bootstrap mode.
Add SWI harvesting to the mix.
My box seeds Yarrow by itself in a few seconds! YMMV; more to follow.
------------------------------------------------------------------------ r256086 | markm | 2013-10-06 13:40:32 +0100 (Sun, 06 Oct 2013) | 11 lines
Debug run. This now works, except that the "live" sources haven't been tested. With all sources turned on, this unlocks itself in a couple of seconds! That is no my box, and there is no guarantee that this will be the case everywhere.
* Cut debug prints.
* Use the same locks/mutexes all the way through.
* Be a tad more conservative about entropy estimates.
------------------------------------------------------------------------ r256084 | markm | 2013-10-06 13:35:29 +0100 (Sun, 06 Oct 2013) | 5 lines
Don't use the "real" assembler mnemonics; older compilers may not understand them (like when building CURRENT on 9.x).
# Submitted by: Konstantin Belousov <kostikbel@gmail.com>
------------------------------------------------------------------------ r256081 | markm | 2013-10-06 10:55:28 +0100 (Sun, 06 Oct 2013) | 12 lines
SNAPSHOT.
Simplify the malloc pools; We only need one for this device.
Simplify the harvest queue.
Marginally improve the entropy pool hashing, making it a bit faster in the process.
Connect up the hardware "live" source harvesting. This is simplistic for now, and will need to be made rate-adaptive.
All of the above passes a compile test but needs to be debugged.
------------------------------------------------------------------------ r256042 | markm | 2013-10-04 07:55:06 +0100 (Fri, 04 Oct 2013) | 25 lines
Snapshot. This passes the build test, but has not yet been finished or debugged.
Contains:
* Refactor the hardware RNG CPU instruction sources to feed into the software mixer. This is unfinished. The actual harvesting needs to be sorted out. Modified by me (see below).
* Remove 'frac' parameter from random_harvest(). This was never used and adds extra code for no good reason.
* Remove device write entropy harvesting. This provided a weak attack vector, was not very good at bootstrapping the device. To follow will be a replacement explicit reseed knob.
* Separate out all the RANDOM_PURE sources into separate harvest entities. This adds some secuity in the case where more than one is present.
* Review all the code and fix anything obviously messy or inconsistent. Address som review concerns while I'm here, like rename the pseudo-rng to 'dummy'.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com> (the first item)
------------------------------------------------------------------------ r255319 | markm | 2013-09-06 18:51:52 +0100 (Fri, 06 Sep 2013) | 4 lines
Yarrow wants entropy estimations to be conservative; the usual idea is that if you are certain you have N bits of entropy, you declare N/2.
------------------------------------------------------------------------ r255075 | markm | 2013-08-30 18:47:53 +0100 (Fri, 30 Aug 2013) | 4 lines
Remove short-lived idea; thread to harvest (eg) RDRAND enropy into the usual harvest queues. It was a nifty idea, but too heavyweight.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com>
------------------------------------------------------------------------ r255071 | markm | 2013-08-30 12:42:57 +0100 (Fri, 30 Aug 2013) | 4 lines
Separate out the Software RNG entropy harvesting queue and thread into its own files.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com>
------------------------------------------------------------------------ r254934 | markm | 2013-08-26 20:07:03 +0100 (Mon, 26 Aug 2013) | 2 lines
Remove the short-lived namei experiment.
------------------------------------------------------------------------ r254928 | markm | 2013-08-26 19:35:21 +0100 (Mon, 26 Aug 2013) | 2 lines
Snapshot; Do some running repairs on entropy harvesting. More needs to follow.
------------------------------------------------------------------------ r254927 | markm | 2013-08-26 19:29:51 +0100 (Mon, 26 Aug 2013) | 15 lines
Snapshot of current work;
1) Clean up namespace; only use "Yarrow" where it is Yarrow-specific or close enough to the Yarrow algorithm. For the rest use a neutral name.
2) Tidy up headers; put private stuff in private places. More could be done here.
3) Streamline the hashing/encryption; no need for a 256-bit counter; 128 bits will last for long enough.
There are bits of debug code lying around; these will be removed at a later stage.
------------------------------------------------------------------------ r254784 | markm | 2013-08-24 14:54:56 +0100 (Sat, 24 Aug 2013) | 39 lines
1) example (partially humorous random_adaptor, that I call "EXAMPLE") * It's not meant to be used in a real system, it's there to show how the basics of how to create interfaces for random_adaptors. Perhaps it should belong in a manual page
2) Move probe.c's functionality in to random_adaptors.c * rename random_ident_hardware() to random_adaptor_choose()
3) Introduce a new way to choose (or select) random_adaptors via tunable "rngs_want" It's a list of comma separated names of adaptors, ordered by preferences. I.e.: rngs_want="yarrow,rdrand"
Such setting would cause yarrow to be preferred to rdrand. If neither of them are available (or registered), then system will default to something reasonable (currently yarrow). If yarrow is not present, then we fall back to the adaptor that's first on the list of registered adaptors.
4) Introduce a way where RNGs can play a role of entropy source. This is mostly useful for HW rngs.
The way I envision this is that every HW RNG will use this functionality by default. Functionality to disable this is also present. I have an example of how to use this in random_adaptor_example.c (see modload event, and init function)
5) fix kern.random.adaptors from kern.random.adaptors: yarrowpanicblock to kern.random.adaptors: yarrow,panic,block
6) add kern.random.active_adaptor to indicate currently selected adaptor: root@freebsd04:~ # sysctl kern.random.active_adaptor kern.random.active_adaptor: yarrow
# Submitted by: Arthur Mesh <arthurmesh@gmail.com>
Submitted by: Dag-Erling Smørgrav <des@FreeBSD.org>, Arthur Mesh <arthurmesh@gmail.com> Reviewed by: des@FreeBSD.org Approved by: re (delphij) Approved by: secteam (des,delphij)
|
#
288732 |
|
05-Oct-2015 |
mav |
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.
|
#
288720 |
|
05-Oct-2015 |
mav |
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.
|
#
288719 |
|
05-Oct-2015 |
mav |
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.
|
#
288681 |
|
04-Oct-2015 |
peter |
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)
|
#
288581 |
|
03-Oct-2015 |
mav |
MFC r286763: 5497 lock contention on arcs_mtx
Reviewed by: George Wilson <george.wilson@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Richard Elling <richard.elling@richardelling.com> Approved by: Dan McDonald <danmcd@omniti.com> Author: Prakash Surya <prakash.surya@delphix.com>
illumos/illumos-gate@244781f10dcd82684fd8163c016540667842f203
This patch attempts to reduce lock contention on the current arc_state_t mutexes. These mutexes are used liberally to protect the number of LRU lists within the ARC (e.g. ARC_mru, ARC_mfu, etc). The granularity at which these locks are acquired has been shown to greatly affect the performance of highly concurrent, cached workloads.
|
#
287016 |
|
22-Aug-2015 |
mav |
MFC r280451: Remove from legacy ata(4) driver support for hardware, supported by newer and more functional drivers ahci(4), siis(4) and mvs(4).
This removes about 3400 lines of code, unused since FreeBSD 9.0 release.
|
#
286895 |
|
18-Aug-2015 |
np |
MFC r285527 and r286338. This takes the firmware from 1.11.27.0 to 1.14.4.0.
r286338: cxgbe(4): Update T5 and T4 firmwares bundled with the driver to 1.14.4.0. The changes in the firmwares since 1.11.27.0 are listed here (straight copy-paste from the "Release Notes.txt" accompanying the Chelsio Unified Wire 2.11.1.0 release on the website).
22.1. T5 Firmware +++++++++++++++++++++++++++++++++
Version : 1.14.4.0 Date : 08/05/2015 ================================================================================
FIXES -----
BASE: - Fixes a potential data path hang by properly programming PMTX congestion threshold settings. - Fixes a potential initialization error when accessing a configuration file stored on the flash. - Fixes a regression where SGE resources can be miss-sized if iWARP is disabled.
ETH: - Fixes a timing issue that would prevent CR4 links from coming up with some switches.
FOFCoE: - Defers fcoe linkdown mailbox command handling till LOGO is sent. - Updates vlan prio for all outstanding IOs during dcbx update.
ENHANCEMENTS ------------
BASE: - Adds support for PAUSE OFF watchdog. - Reports devlog access information in PCIE_FW_PF register 7.
ETH: - Enhances segmentation offload to include VxLAN and Geneve. - Adds PTP support. - Adds new interface to allow the driver to query the VI rss table base addresses. - Allows the driver to program the SGE ingrext contxt CongDrop field.
OFLD: - Adds new interface for the driver to specify offloaded connections TCP snd and rcv scale factors.
iSCSI: - Adds support for iscsi segmentatation offload (ISO). - Adds support for iscsi t10-dif offload.
FOiSCSI: - Sets FORCE_BIT for cut through processing for FOiSCSI.
FOFCoE: - Adds support for FCoE BB6. - Improves WRITE performance.
================================================================================ ================================================================================
Version : 1.13.32.0 Date : 03/25/2015 ================================================================================
FIXES -----
BASE: - Fixes FW_CAPS_CONFIG_CMD return value on error (was positive instead of negative) - Fixes FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ indication (was wrong on certain adapter configurations) - Fixes config file based PL_TIMEOUT register programming
ETH: - Fixes a potential EO UDP SEG header corruption - Fixes an issue where 1000Base-X was not enabled correctly when using QSA modules
OFLD: - Fixes timeout issue with half-open connections - Fixes FW_FLOWC_WR processing when state is set to finwait1
FOFCoE: - Fixes fcoe xchg leaks in linkdown/peer down path - Fixes cleanup in FCoE linkdown and fixed buf timer flowid abuse - Fixes fw crash by clearing fcf flowc during bye
FOiSCSI: - Don't create a new tcp socket if ERL0 attempt has timed out.
ENHANCEMENTS ------------
BASE: - Adds support for VFs on PFs 4 to 7 - Adds support for QPs/CQs on any physical and virtual function
ETH: - Stops sending LACP frames on loopback interface - Adds an AUTOEQU indication to CPL_SGE_EGR_UPDATE - Adds support for CR4 links (BEAN/AEC on 40G TwinAx cables)
OFLD: - Improves default settings of LAN and CLUSTER TCP timer settings - Sends Negative Advice CPLs to software
FOISCSI: - Adds IPv6 support for foiscsi. Keeps backward compatibility with old foiscsi drivers which doesn't support ipv6.
FOFCoE: - Added fcoe debug support in flowc dump
================================================================================ ================================================================================
Version : 1.12.25.0 Date : 10/22/2014 ================================================================================
FIXES -----
BASE: - Improves precision of the Weight Round Robing Traffic Management Algorithm - Fixes an issue where the link would intermittently fail to come up - Fixes an issue where adapters with an external PHY couldn't run at 100Mbps - Fixes an issue where active optical cables were not recognized - Fixes link advertising issues on T520-BT (speed and pause frames) that would cause the link to negotiate unexpected settings - Forces link restart when auto-negotiation is disabled - Fix an issue where pause frames wouldn't be fully disabled even if requested
ETH: - Fixes NVGRE Segmentation Offload network header generation.
DCBX: - Fixes an issue where some settings were not being sent to the switch correctly - Fixes an issue where back-to-back DCBX port updates could get overwritten by FW - Fixes a firmware crash on DCBX APP information request before link up
FOiSCSI: - Fixes abort task leak in tmf response handling - Fixes TCP RST handling while in iSCSI ERL0 - Fixes a firmware crash on BYE without INIT
ENHANCEMENTS -------------
BASE: - Adds link partner settings reporting when available - Adds QSA support (in conjunction with QSA VPD) - Adds T520-BT LED support - Reports NOTSUPPORTED for modules with an unhandled identifier
DCBX: - Adds version reporting (indicating which version FW is trying to negotiate) - Adds IEEE support - Reports LLDP time outs
FOiSCSI: - Add support for multiple iSCSI DDP client - Sends DHCP renew request when lease expires
================================================================================
22.2. T4 Firmware +++++++++++++++++
Version : 1.14.4.0 Date : 08/05/2015 ================================================================================
FIXES -----
BASE: - Fixes a potential initialization error when accessing a configuration file stored on the flash. - Initialize PCIE_DBG_INDIR_REQ.Enable to 0, as hardware failed to do so and register dumps could result in errors.
ETH: - Fixes an issue that sometimes prevented the link from coming up in CR adapters.
ENHANCEMENTS ------------
BASE: - Adds support for PAUSE OFF watchdog. - Reports devlog access information in PCIE_FW_PF register 7.
ETH: - Adds new interface to allow the driver to query the VI rss table base addresses.
OFLD: - Adds new interface for the driver to specify offloaded connections TCP snd and rcv scale factors.
================================================================================ ================================================================================
Version : 1.13.32.0 Date : 03/25/2015 ================================================================================
FIXES -----
BASE: - Fixes FW_CAPS_CONFIG_CMD return value on error (was positive instead of negative) - Fixes FW_PARAMS_PARAM_DEV_FLOWC_BUFFIFO_SZ indication (was wrong on certain adapter configurations) - Fixes config file based PL_TIMEOUT register programming
ETH: - Fixes a potential EO UDP SEG header corruption
OFLD: - Fixes timeout issue with half-open connections - Fixes FW_FLOWC_WR processing when state is set to finwait1
FOiSCSI: - Don't create a new tcp socket if ERL0 attempt has timed out.
ENHANCEMENTS ------------
ETH: - Stops sending LACP frames on loopback interface - Adds an AUTOEQU indication to CPL_SGE_EGR_UPDATE
OFLD: - Improves default settings of LAN and CLUSTER TCP timer settings - Sends Negative Advice CPLs to software
================================================================================ ================================================================================
Version : 1.12.25.0 Date : 10/22/2014 ================================================================================
FIXES -----
BASE: - Improves precision of the Weight Round Robing Traffic Management Algorithm - Forces link restart when auto-negotiation is disabled - Fix an issue where pause frames wouldn't be fully disabled even if requested
DCBX: - Fixes an issue where some settings were not being sent to the switch correctly - Fixes an issue where back-to-back DCBX port updates could get overwritten by FW - Fixes a firmware crash on DCBX APP information request before link up
FOiSCSI: - Fixes abort task leak in tmf response handling - Fixes TCP RST handling while in iSCSI ERL0 - Fixes a firmware crash on BYE without INIT
ENHANCEMENTS ------------
BASE: - Adds link partner settings reporting when available - Firmware now reports NOTSUPPORTED for modules with an unhandled identifier
DCBX: - Adds version reporting (indicating which version FW is trying to negotiate) - Adds IEEE support - Reports LLDP time outs
FOiSCSI: - Adds support for multiple iSCSI DDP clients - Sends DHCP renew request when lease expires
================================================================================
Obtained from: Chelsio Communications Sponsored by: Chelsio Communications
|
#
285809 |
|
23-Jul-2015 |
scottl |
Merge driver for PMC Sierra's range of SAS/SATA HBAs.
Submitted by: Achim Leubner <Achim.Leubner@pmcs.com> Approved by: re
|
#
284555 |
|
18-Jun-2015 |
arybchik |
MFC: r283514
sfxge: add 7xxx NICs family support
Support 7xxx adapters including firmware-assisted TSO and VLAN tagging:
- Solarflare Flareon Ultra 7000 series 10/40G adapters: - Solarflare SFN7042Q QSFP+ Server Adapter - Solarflare SFN7142Q QSFP+ Server Adapter
- Solarflare Flareon Ultra 7000 series 10G adapters: - Solarflare SFN7022F SFP+ Server Adapter - Solarflare SFN7122F SFP+ Server Adapter - Solarflare SFN7322F Precision Time Synchronization Server Adapter
- Solarflare Flareon 7000 series 10G adapters: - Solarflare SFN7002F SFP+ Server Adapter
Support utilities to configure adapters and update firmware.
The work is done by Solarflare developers (Andy Moreton, Andrew Lee and many others), Artem V. Andreev <Artem.Andreev at oktetlabs.ru> and me.
Sponsored by: Solarflare Communications, Inc.
|
#
284365 |
|
14-Jun-2015 |
bryanv |
MFC r273331, r273371, r275851:
- Add vxlan interface
- Use the size of the Ethernet address, not the entire header, when copying into forwarding entry.
- Prefix all the vxlan ifconfig commands so they are unique
|
#
284066 |
|
06-Jun-2015 |
ae |
MFC r274246: Overhaul if_gre(4).
Split it into two modules: if_gre(4) for GRE encapsulation and if_me(4) for minimal encapsulation within IP.
gre(4) changes: * convert to if_transmit; * rework locking: protect access to softc with rmlock, protect from concurrent ioctls with sx lock; * correct interface accounting for outgoing datagramms (count only payload size); * implement generic support for using IPv6 as delivery header; * make implementation conform to the RFC 2784 and partially to RFC 2890; * add support for GRE checksums - calculate for outgoing datagramms and check for inconming datagramms; * add support for sending sequence number in GRE header; * remove support of cached routes. This fixes problem, when gre(4) doesn't work at system startup. But this also removes support for having tunnels with the same addresses for inner and outer header. * deprecate support for various GREXXX ioctls, that doesn't used in FreeBSD. Use our standard ioctls for tunnels.
me(4): * implementation conform to RFC 2004; * use if_transmit; * use the same locking model as gre(4);
PR: 164475
MFC r274289 (by bz): gcc requires variables to be initialised in two places. One of them is correctly used only under the same conditional though.
For module builds properly check if the kernel supports INET or INET6, as otherwise various mips kernels without IPv6 support would fail to build.
MFC r274964: Add ip_gre.h to ObsoleteFiles.inc.
|
#
284052 |
|
06-Jun-2015 |
np |
MFC r276480, r276485, r276498, r277225, r277226, r277227, r277230, r277637, and r283149 (by emaste@).
r276485 is the real change here, the rest deal with the fallout of mp_ring's reliance on 64b atomics.
Use the incorrectly spelled 'eigth' from struct pkthdr in this branch instead of MFC'ing r261733, which would have renamed the field of a public structure in a -STABLE branch. ---
r276480: Temporarily unplug cxgbe(4) from !amd64 builds.
r276485: cxgbe(4): major tx rework.
a) Front load as much work as possible in if_transmit, before any driver lock or software queue has to get involved.
b) Replace buf_ring with a brand new mp_ring (multiproducer ring). This is specifically for the tx multiqueue model where one of the if_transmit producer threads becomes the consumer and other producers carry on as usual. mp_ring is implemented as standalone code and it should be possible to use it in any driver with tx multiqueue. It also has: - the ability to enqueue/dequeue multiple items. This might become significant if packet batching is ever implemented. - an abdication mechanism to allow a thread to give up writing tx descriptors and have another if_transmit thread take over. A thread that's writing tx descriptors can end up doing so for an unbounded time period if a) there are other if_transmit threads continuously feeding the sofware queue, and b) the chip keeps up with whatever the thread is throwing at it. - accurate statistics about interesting events even when the stats come at the expense of additional branches/conditional code.
The NIC txq lock is uncontested on the fast path at this point. I've left it there for synchronization with the control events (interface up/down, modload/unload).
c) Add support for "type 1" coalescing work request in the normal NIC tx path. This work request is optimized for frames with a single item in the DMA gather list. These are very common when forwarding packets. Note that netmap tx in cxgbe already uses these "type 1" work requests.
d) Do not request automatic cidx updates every 32 descriptors. Instead, request updates via bits in individual work requests (still every 32 descriptors approximately). Also, request an automatic final update when the queue idles after activity. This means NIC tx reclaim is still performed lazily but it will catch up quickly as soon as the queue idles. This seems to be the best middle ground and I'll probably do something similar for netmap tx as well.
e) Implement a faster tx path for WRQs (used by TOE tx and control queues, _not_ by the normal NIC tx). Allow work requests to be written directly to the hardware descriptor ring if room is available. I will convert t4_tom and iw_cxgbe modules to this faster style gradually.
r276498: cxgbe(4): remove buf_ring specific restriction on the txq size.
r277225: Make cxgbe(4) buildable with the gcc in base.
r277226: Allow cxgbe(4) to be built on i386. Driver attach will succeed only on a subset of i386 systems.
r277227: Plug cxgbe(4) back into !powerpc && !arm builds, instead of building it on amd64 only.
r277230: Build cxgbe(4) on powerpc64 too.
r277637: Make sure the compiler flag to get cxgbe(4) to compile with gcc is used only when gcc is being used. This is what r277225 should have been.
|
#
283668 |
|
28-May-2015 |
erj |
Fix build issue and incompatibilites introduced by r283620.
- Re-introduce "device ixgbe" option for kernel configs. This allows users to continue using existing kernel configurations, while still letting if_ix and if_ixv exist to allow ifconfig magic to work. Though the amd64 GENERIC config has "device ix" and "device ixv" instead of "device ixgbe".
This is achieved by making the if_ixgbe module a stub that depends on if_ix and if_ixv.
- Replace if_baudrate assignment with if_initbaudrate() call.
Thanks to jhb@ for the stub module suggestion and pointing out the if_baudrate error.
Approved by: jfv (mentor)
|
#
283620 |
|
27-May-2015 |
erj |
MFC ixgbe commits for 10.2:
- r280182 - Split the driver into independent pf/vf loadables - r280197 - Resolve build issues - r280204 - Fix multiple same-name devclasses - r280228 - Fix i386 LINT build issues / remove unused variable - r280252 - Fix building ixgbe with gcc - r280962 - Make changes to busdma code similar to r257541 - r281772 & r281773 - Remove unused variable - partial r282280 - stats counter update (ix-only) - r282289 - Add X550 support - r282290 - Add X550 makefile updates - r282293 - Add ixgbe_x550.c to conf/files - r282299 - Fix gcc compile (extraneous extern declaration)
Finally, add ix_txrx.c to conf/files because it's required for compile in stable/10.
Approved by: jfv (mentor)
|
#
282826 |
|
12-May-2015 |
gnn |
MFC: 282215
Make it possible to statically link SIFTR into the kernel as a new option.
Reviewed by: bz Discussed with: lstewart
|
#
281841 |
|
21-Apr-2015 |
pfg |
MFC r281670, r281703: Drop experimental ext2fs dir_index support.
The htree directory index is a highly desirable feature for research purposes and was meant to improve performance in our ext2/3 driver. Unfortunately our implementation has two problems:
- It never really delivered any performance improvement. - It appears to corrupt the filesystem in undetermined circumstances.
Strictly speaking dir_index is not required for read/write support in ext2/3 and our limited ext4 support still works fine without it.
Regain stability in the ext2 driver by removing it. We may need it back (fixed) if we want to support encrypted ext4 support but thanks to the wonders of version control we can always revert this change and bring it back.
PR: 191895 PR: 198731 PR: 199309
|
#
281075 |
|
04-Apr-2015 |
dim |
MFC r272444 (by jkim):
Merge ACPICA 20140926.
MFC r278970 (by jkim):
Merge ACPICA 20141107 and 20150204.
Approved by: jkim Relnotes: yes
|
#
280900 |
|
31-Mar-2015 |
arybchik |
MFC: 279268
sfxge: add to config files
Sponsored by: Solarflare Communications, Inc.
|
#
279918 |
|
12-Mar-2015 |
mav |
MFC r271146,271201,271207,271261,271457,272606,277100,277126,278034,279320, 279573: Sync AHCI driver with HEAD.
Due to code reorganization in r271146 and many previous reordered merges it is problematic to merge those revisions separately.
|
#
279470 |
|
01-Mar-2015 |
rstone |
MFC r264007,r264008,r264009,r264011,r264012,r264013
MFC support for PCI Alternate RID Interpretation. ARI is an optional PCIe feature that allows PCI devices to present up to 256 functions on a bus. This is effectively a prerequisite for PCI SR-IOV support.
r264007: Add a method to get the PCI RID for a device.
Reviewed by: kib MFC after: 2 months Sponsored by: Sandvine Inc.
r264008: Re-implement the DMAR I/O MMU code in terms of PCI RIDs
Under the hood the VT-d spec is really implemented in terms of PCI RIDs instead of bus/slot/function, even though the spec makes pains to convert back to bus/slot/function in examples. However working with bus/slot/function is not correct when PCI ARI is in use, so convert to using RIDs in most cases. bus/slot/function will only be used when reporting errors to a user.
Reviewed by: kib MFC after: 2 months Sponsored by: Sandvine Inc.
r264009: Re-write bhyve's I/O MMU handling in terms of PCI RID.
Reviewed by: neel MFC after: 2 months Sponsored by: Sandvine Inc.
r264011: Add support for PCIe ARI
PCIe Alternate RID Interpretation (ARI) is an optional feature that allows devices to have up to 256 different functions. It is implemented by always setting the PCI slot number to 0 and re-purposing the 5 bits used to encode the slot number to instead contain the function number. Combined with the original 3 bits allocated for the function number, this allows for 256 functions.
This is enabled by default, but it's expected to be a no-op on currently supported hardware. It's a prerequisite for supporting PCI SR-IOV, and I want the ARI support to go in early to help shake out any bugs in it. ARI can be disabled by setting the tunable hw.pci.enable_ari=0.
Reviewed by: kib MFC after: 2 months Sponsored by: Sandvine Inc.
r264012: Print status of ARI capability in pciconf -c
Teach pciconf how to print out the status (enabled/disabled) of the ARI capability on PCI Root Complexes and Downstream Ports.
MFC after: 2 months Sponsored by: Sandvine Inc.
r264013: Add missing copyright date.
MFC after: 2 months
|
#
276686 |
|
05-Jan-2015 |
kib |
Merge reaper facility.
MFC r270443 (by mjg): Properly reparent traced processes when the tracer dies.
MFC r273452 (by mjg): Plug unnecessary PRS_NEW check in kern_procctl.
MFC 275800: Add a facility for non-init process to declare itself the reaper of the orphaned descendants.
MFC r275821: Add missed break.
MFC r275846 (by mckusick): Add some additional clarification and fix a few gammer nits.
MFC r275847 (by bdrewery): Bump Dd for r275846.
|
#
276149 |
|
23-Dec-2014 |
ae |
MFC r273087 (with modifications): Overhaul if_gif(4): o convert to if_transmit; o use rmlock to protect access to gif_softc; o use sx lock to protect from concurrent ioctls; o remove a lot of unneeded and duplicated code; o remove cached route support (it won't work with concurrent io); o style fixes.
MFC r273090: Move memset under ifdef INET6.
MFC r273091: Add more ifdefs. SIOC*_IN6 are defined only with INET6.
MFC r273121: Add inet/inet6 to the dependency list. Without them if_gif is useless.
MFC r273209 by bz: After r273087,r273090,r273091,r273121 changes to gif(4) try to fix NOIP builds for real.
MFC r273587: Remove redundant check and m_pullup() call.
|
#
274486 |
|
13-Nov-2014 |
gnn |
MFC: 272906
Change the PF hash from Jenkins to Murmur3. In forwarding tests this showed a conservative 3% incrase in PPS.
Original Differential Revision: https://reviews.freebsd.org/D461 Submitted by: des Reviewed by: emaste
|
#
273882 |
|
31-Oct-2014 |
hselasky |
MFC r271159, r271168 and r271680: Add USB LED driver for the Dream Cheeky WebMail Notifier.
|
#
273715 |
|
26-Oct-2014 |
ian |
MFC r262626, r262626, r264979, r265154, r265162, r265163, r267319, r270863, r270991, r271045:
Enhancements related to compiling FDT data...
- Use proper include path for dtc as well as cpp. - Call cpp with -P to avoid printing line markings. - Allow FDT_DTS_FILE to be a list, either in the makedtb target, or in a kernel config file. - Add the dts include directory to the -I list when doing arm builds. - Invoke make_dtb with MACHINE defined for cross building friendliness. - Allow the make_dtb script to work outside of a "make buildkernel" context by setting MACHINE from uname -m if it's not set already. - Use sh -c '...' to launch the dtb build scripts with env prepended, otherwise it tries to treat the env var stuff as a script file name.
|
#
273669 |
|
26-Oct-2014 |
ian |
MFC 271546:
Create an interface and support routines for drivers that handle IO pin multiplexing and configuration based on FDT data.
|
#
273668 |
|
26-Oct-2014 |
ian |
MFC r271535:
Make inclusion of fdt clock support conditional on fdt_clock, not just fdt.
|
#
273657 |
|
26-Oct-2014 |
ian |
MFC r270957, r270959:
Create an interface for drivers to enable or disable their clocks as listed in the clocks=<...> properties of their FDT data.
|
#
272967 |
|
11-Oct-2014 |
adrian |
MFC r271649 - Disable flow-director support until it's been debugged and verified.
The flowdirector feature shares on-chip memory with other things such as the RX buffers. In theory it should be configured in a way that doesn't interfere with the rest of operation. In practice, the RX buffer calculation didn't take the flow-director allocation into account and there'd be overlap. This lead to various garbage frames being received containing what looks like internal NIC state.
What _I_ saw was traffic ending up in the wrong RX queues. If I was doing a UDP traffic test with only one NIC ring receiving traffic, everything is fine. If I fired up a second UDP stream which came in on another ring, there'd be a few percent of traffic from both rings ending up in the wrong ring. Ie, the RSS hash would indicate it was supposed to come in ring X, but it'd come in ring Y.
However, when the allocation was fixed up, the developers at Verisign still saw traffic stalls.
The flowdirector feature ends up fiddling with the NIC to do various attempts at load balancing connections by populating flow table rules based on sampled traffic. It's likely that all of that has to be carefully reviewed and made less "magic".
So for now the flow director feature is disabled (which fixes both what I was seeing and what they were seeing) until it's all much more debugged and verified.
Tested:
* (me) 82599EB 2x10G NIC, RSS UDP testing. * (verisign) not sure on the NIC (but likely 82599), 100k-200k/sec TCP transaction tests.
Submitted by: Marc De La Gueronniere <mdelagueronniere@verisign.com> Sponsored by: Verisign, Inc.
|
#
272877 |
|
09-Oct-2014 |
smh |
MFC r271802: Add dtrace probe support for zfs SET_ERROR(..)
MFC r271873: Fix static kernel build with options ZFS
MFC r271819: Remove sys/types.h include as per style (9)
Sponsored by: Multiplay
|
#
272407 |
|
02-Oct-2014 |
hselasky |
MFC r272027:
Hardware driver update from Mellanox Technologies, including: - improved performance - better stability - new features - bugfixes
Supported HCAs: - ConnectX-2 - ConnectX-3 - ConnectX-3 Pro
NOTE: - TSO feature needs r271946, which is not yet merged.
Sponsored by: Mellanox Technologies Approved by: re, glebius
|
#
270892 |
|
31-Aug-2014 |
trasz |
MFC r270096:
Bring in the new automounter, similar to what's provided in most other UNIX systems, eg. MacOS X and Solaris. It uses Sun-compatible map format, has proper kernel support, and LDAP integration.
There are still a few outstanding problems; they will be fixed shortly.
Reviewed by: allanjude@, emaste@, kib@, wblock@ (earlier versions) Phabric: D523 Relnotes: yes Sponsored by: The FreeBSD Foundation
|
#
270631 |
|
25-Aug-2014 |
jfv |
MFC of the Intel Base driver for the Intel XL710 Ethernet Controller Family - It was decided to change the driver name to if_ixl for FreeBSD - This release adds the VF Driver to the tree, it can be built into the kernel or as the if_ixlv module - The VF driver is independent for the first time, this will be desireable when full SRIOV capability is added to the OS.
Submitted by: jack.vogel@intel.com and eric.joyner@intel.com
|
#
270297 |
|
21-Aug-2014 |
np |
MFC r266571, r266757, r268536, r269076, r269364, r269366, r269411, r269413, r269428, r269440, r269537, r269644, r269731, and the cxgbe portion of r270063.
r266571: cxgbe(4): Remove stray if_up from the code that creates the tracing ifnet.
r266757: cxgbe(4): netmap support for Terminator 5 (T5) based 10G/40G cards. Netmap gets its own hardware-assisted virtual interface and won't take over or disrupt the "normal" interface in any way. You can use both simultaneously.
For kernels with DEV_NETMAP, cxgbe(4) carves out an ncxl<N> interface (note the 'n' prefix) in the hardware to accompany each cxl<N> interface. These two ifnet's per port share the same wire but really are separate interfaces in the hardware and software. Each gets its own L2 MAC addresses (unicast and multicast), MTU, checksum caps, etc. You should run netmap on the 'n' interfaces only, that's what they are for.
With this, pkt-gen is able to transmit > 45Mpps out of a single 40G port of a T580 card. 2 port tx is at ~56Mpps total (28M + 28M) as of now. Single port receive is at 33Mpps but this is very much a work in progress. I expect it to be closer to 40Mpps once done. In any case the current effort can already saturate multiple 10G ports of a T5 card at the smallest legal packet size. T4 gear is totally untested.
trantor:~# ./pkt-gen -i ncxl0 -f tx -D 00:07:43:ab:cd:ef 881.952141 main [1621] interface is ncxl0 881.952250 extract_ip_range [275] range is 10.0.0.1:0 to 10.0.0.1:0 881.952253 extract_ip_range [275] range is 10.1.0.1:0 to 10.1.0.1:0 881.962540 main [1804] mapped 334980KB at 0x801dff000 Sending on netmap:ncxl0: 4 queues, 1 threads and 1 cpus. 10.0.0.1 -> 10.1.0.1 (00:00:00:00:00:00 -> 00:07:43:ab:cd:ef) 881.962562 main [1882] Sending 512 packets every 0.000000000 s 881.962563 main [1884] Wait 2 secs for phy reset 884.088516 main [1886] Ready... 884.088535 nm_open [457] overriding ifname ncxl0 ringid 0x0 flags 0x1 884.088607 sender_body [996] start 884.093246 sender_body [1064] drop copy 885.090435 main_thread [1418] 45206353 pps (45289533 pkts in 1001840 usec) 886.091600 main_thread [1418] 45322792 pps (45375593 pkts in 1001165 usec) 887.092435 main_thread [1418] 45313992 pps (45351784 pkts in 1000834 usec) 888.094434 main_thread [1418] 45315765 pps (45406397 pkts in 1002000 usec) 889.095434 main_thread [1418] 45333218 pps (45378551 pkts in 1001000 usec) 890.097434 main_thread [1418] 45315247 pps (45405877 pkts in 1002000 usec) 891.099434 main_thread [1418] 45326515 pps (45417168 pkts in 1002000 usec) 892.101434 main_thread [1418] 45333039 pps (45423705 pkts in 1002000 usec) 893.103434 main_thread [1418] 45324105 pps (45414708 pkts in 1001999 usec) 894.105434 main_thread [1418] 45318042 pps (45408723 pkts in 1002001 usec) 895.106434 main_thread [1418] 45332430 pps (45377762 pkts in 1001000 usec) 896.107434 main_thread [1418] 45338072 pps (45383410 pkts in 1001000 usec) ...
r268536: cxgbe(4): Add an iSCSI softc to the adapter structure.
r269076: Some hooks in cxgbe(4) for the offloaded iSCSI driver.
r269364: Improve compliance with style.Makefile(5).
r269366: List one file per line in the Makefiles. This makes it easier to read diffs when a file is added or removed.
r269411: cxgbe(4): minor optimizations in ingress queue processing.
Reorganize struct sge_iq. Make the iq entry size a compile time constant. While here, eliminate RX_FL_ESIZE and use EQ_ESIZE directly.
r269413: cxgbe(4): Fix an off by one error when looking for the BAR2 doorbell address of an egress queue.
r269428: cxgbe(4): some optimizations in freelist handling.
r269440: cxgbe(4): Remove an unused version of t4_enable_vi.
r269537: cxgbe(4): Do not run any sleepable code in the SIOCSIFFLAGS handler when IFF_PROMISC or IFF_ALLMULTI is being flipped. bpf(4) holds its global mutex around ifpromisc in at least the bpf_dtor path.
r269644: cxgbe(4): Let caller specify whether it's ok to sleep in t4_sched_config and t4_sched_params.
r269731: cxgbe(4): Do not poke T4-only registers on a T5 (and vice versa).
Relnotes: Yes (native netmap support for Chelsio T4/T5 cards)
|
#
270284 |
|
21-Aug-2014 |
ian |
MFC r260401
Remove aicasm as a build dependency. It made sense when the ahc and ahd drivers and their firmware were under active development, but those days have passed. The firmware now exists in pre-compiled form, no longer dependent on it's sources or on aicasm. If you wish to rebuild the firmware from source, the glue still exists under the 'make firmware' target in sys/modules/aic7xxx.
This also fixes the problem introduced with r257777 et al with building kernels the old fashioned way in sys/$arch/compile/$CONFIG when the ahc/ahd drivers were included.
|
#
270274 |
|
21-Aug-2014 |
ian |
MFC r257637, r257730, r257734, r257777, r257825, r257838, r257873:
Changes to how the aicasm tool is built. This series of changes results in the aicasm tool being built as part of the tools stages of world and kernel builds.
Most of these changes will ultimately be undone when r260401 is MFC'd, but it will leave in place the new kernel-build-tool machinery (KTMAKE stuff) in case a new special kernel tool ever comes along.
|
#
270252 |
|
20-Aug-2014 |
luigi |
MFC 270063: update of netmap code (vtnet and cxgbe not merged yet because we need some other mfc first)
|
#
269922 |
|
13-Aug-2014 |
hselasky |
MFC r269567: Add new USB phone descriptor template for USB device side mode.
|
#
269398 |
|
01-Aug-2014 |
rmacklem |
MFC: r268115 Merge the NFSv4.1 server code in projects/nfsv4.1-server over into head. The code is not believed to have any effect on the semantics of non-NFSv4.1 server behaviour. It is a rather large merge, but I am hoping that there will not be any regressions for the NFS server.
|
#
269296 |
|
30-Jul-2014 |
mav |
MFC r268767: Add support for VMWare dialect of EXTENDED COPY command, aka VAAI Clone.
This allows to clone VMs and move them between LUNs inside one storage host without generating extra network traffic to the initiator and back, and without being limited by network bandwidth.
LUNs participating in copy operation should have UNIQUE NAA or EUI IDs set. For LUNs without these IDs VMWare will use traditional copy operations.
Beware: the above LUN IDs explicitly set to values non-unique from the VM cluster point of view may cause data corruption if wrong LUN is addressed!
Sponsored by: iXsystems, Inc.
|
#
268649 |
|
15-Jul-2014 |
delphij |
MFC r268075: MFV r267565:
4757 ZFS embedded-data block pointers ("zero block compression") 4913 zfs release should not be subject to space checks
|
#
268371 |
|
07-Jul-2014 |
ray |
MFC of r263873.
Pointed by: Ivan Klymenko <fidaj@ukr.net>
Sponsored by: The FreeBSD Foundation
|
#
268366 |
|
07-Jul-2014 |
ray |
267622 Log: Rename vt(4) vga module to dismiss interference with syscons(4) vga module. 267623 Log: Remove stale link to deleted vt(4) xboxfb driver. 267624 Log: syscons(4) and vt(4) can be built together now. 267625 Log: Allow to disable syscons(4) if "hw.syscons.disable" kenv is set. 267626 Log: Suspend vt(4) initialization if "kern.vt.disable" kenv is set. 267965 by emaste@ Log: Use a common tunable to choose between vt(4)/sc(4) With this change and previous work from ray@ it will be possible to put both in GENERIC, and have one enabled by default, but allow the other to be selected via the loader. (The previous implementation had separate kern.vt.disable and hw.syscons.disable tunables, and would panic if both drivers were compiled in and neither was explicitly disabled.) 268175 by emaste@ Log: Fix vt(4) detection in kbdcontrol and vidcontrol As sc(4) and vt(4) coexist and are both enabled in GENERIC, the existence of a vt(4) sysctl is not sufficient to determine that vt(4) is in use. Reported by: Trond Endrestøl 268045 by emaste@ Log: 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 .
Sponsored by: The FreeBSD Foundation
|
#
268091 |
|
01-Jul-2014 |
ae |
MFC r267355: Add UUIDs for DragonFlyBSD's partition types.
MFC r267356: Add DragonFlyBSD's Hammer FS types and type names.
MFC r267357: Add aliases for DragonFlyBSD's partition types.
MFC r267358: Allow dumping to DragonFlyBSD's swap partition.
MFC r267359: Add disklabel64 support to GEOM_PART class.
This partitioning scheme is used in DragonFlyBSD. It is similar to BSD disklabel, but has the following improvements: * metadata has own dedicated place and isn't accessible through partitions; * all offsets are 64-bit; * supports 16 partitions by default (has reserved place for more); * has reserved place for backup label (but not yet implemented); * has UUIDs for partitions and partition types;
MFC r267360: Add disklabel64 support
Relnotes: yes
|
#
267849 |
|
25-Jun-2014 |
np |
MFC r267757:
cxgbe(4): Update the bundled T4 and T5 firmwares to versions 1.11.27.0
Obtained from: Chelsio
|
#
267494 |
|
15-Jun-2014 |
kib |
MFC r267226: Initialize the pbuf counter for directio using SYSINIT. Mark ffs_rawread.c as requiring both ffs and directio options to be compiled into the kernel. Add ffs_rawread.c to the list of ufs.ko module' sources.
|
#
266578 |
|
23-May-2014 |
hselasky |
MFC r257543, r264912, r264972, r264982 and r266472: - Add preliminary support for the Realtek RTL8188EUS and RTL8188ETV chipsets. - Add device ID for 'Sanoxy 802.11N' USB - Initialize rssi variable. - Fix gcc build, initialize off variable. - The DELAY() should not be used in USB drivers. - The usb_pause_mtx() function takes ticks and not milliseconds as last argument.
|
#
266251 |
|
16-May-2014 |
ian |
MFC 262614, 262625, 262626, 262627, 262682, 262714, 262725, 262736
Integrate device-tree upstream files into the build process: (1) Invoke cpp to bring in files via #include (although the old /include/ stuff is supported still). (2) bring in files from either vendor tree or freebsd-custom files when building. (3) move all dts* files from sys/boot/fdt/dts to sys/boot/fdt/dts/${MACHINE} as appropriate. (4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh so that the different places in the tree use the exact same logic. (5) switch back to gpl dtc by default. the bsdl one in the tree has significant issues not easily addressed by those unfamiliar with the code.
Only try to build the static dtb when we're building a static dtb.
Use proper include path for dtc as well as cpp.
Fix syntax errors (missing ; other minor glitches) in existing dts files.
|
#
266160 |
|
15-May-2014 |
ian |
MFC r261423, r261424, r261516, r261513, r261562, r261563, r261564, r261565, r261596, r261606
Add the imx sdhci controller.
Move Open Firmware device root on PowerPC, ARM, and MIPS systems to a sub-node of nexus (ofwbus) rather than direct attach under nexus. This fixes FDT on x86 and will make coexistence with ACPI on ARM systems easier. SPARC is unchanged.
Add the missing ')' at end of sentence. Reword it to use a more common idiom.
Pass the kernel physical address to initarm through the boot param struct.
Make functions only used in vfp.c static, and remove vfp_enable.
Fix __syscall on armeb EABI. As it returns a 64-bit value it needs to place 32-bit data in r1, not r0. 64-bit data is already packed correctly.
Use abp_physaddr for the physical address over KERNPHYSADDR. This helps us remove the need to load the kernel at a fixed address.
Remove references to PHYSADDR where it's used only in debugging output.
Dynamically generate the page table. This will allow us to detect the physical address we are loaded at to change the mapping.
|
#
266128 |
|
15-May-2014 |
ian |
MFC r261351, r261352, r261355, r261396, r261397, r261398, r261403, r261404, r261405
Open Firmware interrupt specifiers can consist of arbitrary-length byte strings and include arbitrary information (IRQ line/domain/sense). When the ofw_bus_map_intr() API was introduced, it assumed that, as on most systems, these were either 1 cell, containing an interrupt line, or 2, containing a line number plus a sense code. It turns out a non-negligible number of ARM systems use 3 (or even 4!) cells for interrupts, so make this more general.
Provide a simpler and more standards-compliant simplebus implementation to get the Routerboard 800 up and running with the vendor device tree. This does not implement some BERI-specific features (which hopefully won't be necessary soon), so move the old code to mips/beri, with a higher attach priority when built, until MIPS interrupt domain support is rearranged.
Allow nesting of simplebuses.
Add a set of helpers (ofw_bus_get_status() and ofw_bus_status_okay()) to process "status" properties of OF nodes.
Fix one remnant endian flaw in nexus.
|
#
266105 |
|
14-May-2014 |
loos |
MFC r258046, r258047, r258050, r259035, r259036, r259037, r261842, r261843, r261844, r261845, r261846, r262194, r262522, r262559
r258046: Fix a typo on a comment in ofw_bus_if.m, the default method will return -1 when a node doesn't exist.
r258047: Move the KASSERT() check to the point before the increase of number of pins.
r258050: Fix gpiobus to return BUS_PROBE_GENERIC insted of BUS_PROBE_SPECIFIC (0) so it can be overriden by its OFW/FDT version.
Give a chance for GPIO devices that implement the device_identify method to attach.
r259035: Remove unnecessary includes and an unused softc variable. While here apply two minor style(9) fixes.
r259036: Move the GPIOBUS_SET_PINFLAGS(..., ..., pin, GPIO_PIN_OUTPUT) to led(4) control callback function. This makes gpioled(4) works even if the pin is accidentally set to an input.
r259037: Fix the pin value reading on AM335x. Because of the inverted logic it was always returning '0' for all the reads, even for the outputs. It is now known to work with gpioiic(4) and gpioled(4).
r261842: Add an OFW GPIO compatible bus. This allows the use of the DTS files to describe GPIO bindings in the system.
Move the GPIOBUS lock macros to gpiobusvar.h as they are now shared between the OFW and the non OFW versions of GPIO bus.
Export gpiobus_print_pins() so it can also be used on the OFW GPIO bus.
r261843: Add OFW support to the in tree gpio compatible devices: gpioiic(4) and gpioled(4).
Tested on RPi and BBB (using the hardware I2C controller and gpioiic(4) for the I2C tests). It was also verified for regressions on RSPRO (MIPS/ar71xx) used as reference for a non OFW-based system.
Update the gpioled(4) and gpioiic(4) man pages with some details and examples about the FDT/OFW support.
Some compatibility details pointed out by imp@ will follow in subsequent commits.
r261844: Allow the use of OFW I2C bus together with iicbb(4) on OFW-based systems.
This change makes ofw_iicbus attach to iicbb(4) controllers in addition to the already supported i2c host bridges (iichb).
On iicbb(4) allow the direct access of the OFW parent node by its children, so they can be directly attached to iicbb(4) node on the DTS without the need of describing the i2c bus.
r261845: Allow the use of the OFW GPIO bus for ti_gpio and bcm2835_gpio. With this change the gpio children can be described as directly connected to the GPIO controller without the need of describing the OFW GPIO bus itself on the DTS file.
With this commit the OFW GPIO bus is fully functional on BBB and RPi.
GPIO controllers which want to use the OFW GPIO bus will need similar changes.
r261846: Make the gpioled(4) work out of the box on BBB.
Add gpioled(4) to BEAGLEBONE kernel and add the description of the four on-board leds of beaglebone-black to its DTS file.
r262194: Remove an unnecessary header.
r262522: Fix make depend for iicbus.
r262559: Inspired by r262522, fix make depend. This fixes the build of gpio modules.
|
#
266084 |
|
14-May-2014 |
ian |
MFC r257738, r259202, r258410, r260288, r260292, r260294, r260320, r260323, r260326, r260327, r260331, r260333, r260340, r260371, r260372, r260373, r260374, r260375
Add common bus_space tag definition shared for most supported ARMv6/v7 SoCs. Correct license statements to reflect the fact that these files were all derived from sys/arm/mv/bus_space.c.
In pmap_unmapdev(), remember the size, and use that as an argument to kva_free(), or we'd end up always passing it a size of 0
In pmap_mapdev(), first check whether a static mapping exists,
Convert TI static device mapping to use the new arm_devmap_add_entry(),
Use the common armv6 fdt_bus_tag defintion for tegra instead of a local copy.
Eliminate use of fdt_immr_addr(), it's not needed for tegra
Convert lpc from using fdt_immr style to arm_devmap_add_entry() to make static device mappings.
Retire machine/fdt.h as a header used by MI code, as its function is now obsolete. This involves the following pieces: - Remove it entirely on PowerPC, where it is not used by MD code either - Remove all references to machine/fdt.h in non-architecture-specific code (aside from uart_cpu_fdt.c, shared by ARM and MIPS, and so is somewhat non-arch-specific). - Fix code relying on header pollution from machine/fdt.h includes - Legacy fdtbus.c (still used on x86 FDT systems) now passes resource requests to its parent (nexus). This allows x86 FDT devices to allocate both memory and IO requests and removes the last notionally MI use of fdtbus_bs_tag. - On those architectures that retain a machine/fdt.h, unused bits like FDT_MAP_IRQ and FDT_INTR_MAX have been removed.
Add #include <machine/fdt.h> to a few files that used to get it via pollution
Enable the mv cesa security/crypto device by providing the required property in the dts source, and adding the right devices to the kernel config.
Remove dev/fdt/fdt_pci.c, which was code specific to Marvell ARM SoCs, related to setting up static device mappings. Since it was only used by arm/mv/mv_pci.c, it's now just static functions within that file, plus one public function that gets called only from arm/mv/mv_machdep.c.
Switch RPi to using arm_devmap_add_entry() to set up static device mapping.
Allow 'no static device mappings' to potentially work.
Don't try to find a static mapping before calling pmap_mapdev(), that logic is now part of pmap_mapdev() and doesn't need to be duplicated here.
Switch a10 to using arm_devmap_add_entry() to set up static device mapping.
|
#
266000 |
|
14-May-2014 |
ian |
MFC r257702, r257745, r257746, r257747, r257751, r257791, r257793, r257794, r257795, r257992
Teach nexus(4) about Open Firmware (e.g. FDT) on ARM and MIPS, retiring fdtbus in most cases.
Make OF_nextprop() work correctly for FDT by using the libfdt fdt_next_property_offset() API.
Do not panic if pmap_mincore() is called.
An addendum: it is possible, though of questionable utility, for a node to have no properties at all. Add definition for the Atheros 8021 gigabit PHY.
Consolidate Apple firmware hacks and improve them by switching on the presence of mac-io devices in the tree, which uniquely identifies Apple hardware.
Allow OF_decode_addr() to also be able to map resources on big-endian devices.
Make tsec work with the device tree present on the RB800.
Be more flexible about which compatible strings to accept. This brings up the PCI Express bus on the RB800 using the firmware device tree.
Rename the "bare" platform "mpc85xx", which is what it actually is, and add actual platform probing based on PVR.
|
#
265971 |
|
13-May-2014 |
ian |
MFC r257114, r257118
Use common OFW root code to set up fdtbus. This is an almost purely negative diff that should improve reliability somewhat. There should be no differences in behavior -- please report any that crop up. This has been tested on ARM and PPC systems.
Make sure to get the right node when looking up #interrupt-cells.
|
#
265922 |
|
12-May-2014 |
ambrisko |
MFC 265555
dd mrsas(4) driver from LSI official support of newer MegaRAID SAS cards. LSI has been maintaining this driver outside of the FreeBSD tree. It overlaps support of ThunderBolt and Invader cards that mfi(4) supports. By default mfi(4) will attach to cards. If the tunable: hw.mfi.mrsas_enable=1 is set then mfi(4) will not probe and attach to these newer cards and allow mrsas(4) to attach. So by default this driver will not effect a FreeBSD system unless mfi(4) is removed from the kernel or the tunable is enabled.
mrsas(4) attaches disks to the CAM layer so it depends on CAM and devices show up as /dev/daX. mfiutil(8) does not work with mrsas. The FreeBSD version of MegaCli and StorCli from LSI do work with mrsas. It appears that StorCli only works with mrsas. MegaCli appears to work with mfi(4) and mrsas(4).
It would be good to add mfiutil(4) support to mrsas, emulations modes, kernel logging, device aliases to ease the transition between mfi(4) and mrsas(4).
Style issues should be resolved by LSI when they get committers approved. The plan is get this driver in FreeBSD 9.3 to improve HW support.
Thanks to LSI for developing, testing and working with FreeBSD to make this driver co-exist in FreeBSD. This improves the overall support of MegaRAID SAS.
Submitted by: Kashyap Desai <Kashyap.Desai@lsi.com> Sponsored by: LSI
|
#
265536 |
|
07-May-2014 |
marius |
MFC: r265248
Allow GEOM_VINUM to be statically compiled into the kernel.
Submitted by: gleb
|
#
265491 |
|
07-May-2014 |
trasz |
MFC r263811:
Remove ctl_mem_pool.{c,h}.
Sponsored by: The FreeBSD Foundation
|
#
265388 |
|
05-May-2014 |
ken |
MFC the mpr(4) driver for LSI's 12Gb SAS cards.
This includes r265236, r265237, r265241 and r265261:
------------------------------------------------------------------------ r265236 | ken | 2014-05-02 14:25:09 -0600 (Fri, 02 May 2014) | 51 lines
Bring in the mpr(4) driver for LSI's MPT3 12Gb SAS controllers.
This is derived from the mps(4) driver, but it supports only the 12Gb IT and IR hardware including the SAS 3004, SAS 3008 and SAS 3108.
Some notes about this driver: o The 12Gb hardware can do "FastPath" I/O, and that capability is included in this driver.
o WarpDrive functionality has been removed, since it isn't supported in the 12Gb driver interface.
o The Scatter/Gather list handling code is significantly different between the 6Gb and 12Gb hardware. The 12Gb boards support IEEE Scatter/Gather lists.
Thanks to LSI for developing and testing this driver for FreeBSD.
share/man/man4/mpr.4: mpr(4) man page.
sys/dev/mpr/*: mpr(4) driver files.
sys/modules/Makefile, sys/modules/mpr/Makefile: Add a module Makefile for the mpr(4) driver.
sys/conf/files: Add the mpr(4) driver.
sys/amd64/conf/GENERIC, sys/i386/conf/GENERIC, sys/mips/conf/OCTEON1, sys/sparc64/conf/GENERIC: Add the mpr(4) driver to all config files that currently have the mps(4) driver.
sys/ia64/conf/GENERIC: Add the mps(4) and mpr(4) drivers to the ia64 GENERIC config file.
sys/i386/conf/XEN: Exclude the mpr module from building here.
Submitted by: Steve McConnell <Stephen.McConnell@lsi.com> Tested by: Chris Reeves <chrisr@spectralogic.com> Sponsored by: LSI, Spectra Logic Relnotes: LSI 12Gb SAS driver mpr(4) added
------------------------------------------------------------------------ ------------------------------------------------------------------------ r265237 | ken | 2014-05-02 14:36:20 -0600 (Fri, 02 May 2014) | 8 lines
Add the mpr(4) man page to the man4 Makefile.
This should have been included in r265236.
Submitted by: Steve McConnell <Stephen.McConnell@lsi.com> MFC after: 3 days Sponsored by: LSI, Spectra Logic
------------------------------------------------------------------------ ------------------------------------------------------------------------ r265241 | brueffer | 2014-05-02 15:14:28 -0600 (Fri, 02 May 2014) | 2 lines
Use our standard SYNOPSIS wording; perform some cleanup while here.
------------------------------------------------------------------------ ------------------------------------------------------------------------ r265261 | brueffer | 2014-05-03 05:15:28 -0600 (Sat, 03 May 2014) | 2 lines
Add a missing colon.
------------------------------------------------------------------------
Submitted by: Steve McConnell <Stephen.McConnell@lsi.com> Tested by: Chris Reeves <chrisr@spectralogic.com> Sponsored by: LSI, Spectra Logic Relnotes: LSI 12Gb SAS driver mpr(4) added
|
#
263407 |
|
19-Mar-2014 |
delphij |
MFC r260183: MFV r260154 + 260182:
4369 implement zfs bookmarks 4368 zfs send filesystems from readonly pools
Illumos/illumos-gate@78f171005391b928aaf1642b3206c534ed644332
|
#
262861 |
|
06-Mar-2014 |
jhb |
MFC 259016,259019,259049,259071,259102,259110,259129,259130,259178,259179, 259203,259221,259261,259532,259615,259650,259651,259667,259680,259727, 259761,259772,259776,259777,259830,259882,259915,260160,260449,260450, 260688,260888,260953,261269,261547,261551,261552,261553,261585: Merge the vt(4) driver (newcons) to stable/10.
Approved by: ray
|
#
262363 |
|
23-Feb-2014 |
hselasky |
MFC r261541, r261543 and r261544: Import USB RNDIS driver to FreeBSD from OpenBSD. Useful for so-called USB tethering. - Imported code from OpenBSD - Adapted code to FreeBSD - Removed some unused functions - Fixed some buffer encoding and decoding issues - Optimised data transport path a bit, by sending multiple packets at a time - Increased receive buffer to 16K
|
#
262151 |
|
18-Feb-2014 |
luigi |
MFH: sync the netmap code with the one in HEAD (enhanced VALE switch, netmap pipes, emulated netmap mode). See details in the log for svn 261909.
|
#
262137 |
|
17-Feb-2014 |
markj |
MFC r258036: Add IDs for the ASIX 88179 and 88178A USB to GigE adapters.
MFC r258331: Import the axge(4) driver for the ASIX AX88178A and AX88179 USB Ethernet adapters. Both devices support Gigabit Ethernet and USB 2.0, and the AX88179 supports USB 3.0.
MFC r258617 (by lwhsu): Also note to add xhci(4) to kernel configuration to utilize USB 3.0
MFC r258618 (by lwhsu): Mention axge(4)
|
#
262131 |
|
17-Feb-2014 |
dim |
MFC r261903:
Disable warning about unused static const variables for sys/pci/ncr.c.
|
#
262130 |
|
17-Feb-2014 |
dim |
MFC r261902:
In r260111, in sys/conf/files, I disabled warning about unused functions for the wrong mcg.c, the one in ofed/drivers/infiniband/hw/mlx4. Disable the warning for ofed/drivers/net/mlx4/mcg.c instead.
|
#
262126 |
|
17-Feb-2014 |
dim |
MFC r261899:
Similar to r260026, disable warning about unused functions for ieee80211_adhoc.c, ieee80211_hostap.c and ieee80211_sta.c.
|
#
262093 |
|
17-Feb-2014 |
avg |
MFC r258717: MFV r258371,r258372: 4101 metaslab_debug should allow for fine-grained control
|
#
261965 |
|
16-Feb-2014 |
brueffer |
MFC: r261701
Allow iwn2000 and iwn2030 firmware to be linked into the kernel.
PR: 184631 Submitted by: Oliver Pinter
|
#
261509 |
|
05-Feb-2014 |
hselasky |
MFC r261260, r261262, r261315 and r261343: Add support for trackpads found in Apple MacBook products. While at it add some missing devd entries.
|
#
261078 |
|
23-Jan-2014 |
loos |
MFC r256959:
Add the Raspberry Pi BSC (I2C compliant) controller driver.
Reviewed by: rpaulo
MFC r256961:
Enable the build of OFW I2C bus for FDT systems.
MFC r258045:
As all the IIC controllers on system uses the same 'iichb' prefix we cannot rely only on checking the device unit to indentify the BSC unit we are attaching to. Make use of the device base address to identify our BSC unit.
MFC r259127:
Bring the RPi I2C driver in line with ti_i2c. Make it treat any slave address as a 7-bit address.
Approved by: adrian (mentor)
|
#
260489 |
|
09-Jan-2014 |
loos |
MFC r257064:
Add an OFW SPI compatible bus. Fix the spibus probe to return BUS_PROBE_GENERIC and not BUS_PROBE_SPECIFIC (0) so the OFW SPI bus can attach when enabled. Export the spibus devclass_t and driver_t declarations.
Submitted by: ray Approved by: adrian (mentor)
|
#
260297 |
|
04-Jan-2014 |
dim |
MFC r260111:
For sys/ofed/drivers/infiniband/hw/mlx4/mcg.c, disable warning about unused variables for now.
|
#
260293 |
|
04-Jan-2014 |
dim |
MFC r260104:
For sys/ofed/drivers/infiniband/core/cm.c, disable warning about unused functions for now.
|
#
260274 |
|
04-Jan-2014 |
dim |
MFC r260039:
Turn off warnings about unused variables for a bunch of files under contrib/ipfilter.
|
#
260273 |
|
04-Jan-2014 |
dim |
MFC r260026:
Disable warning about unused functions for ieee80211_crypto.c and ieee80211_mesh.c for now.
|
#
260272 |
|
04-Jan-2014 |
dim |
MFC r260025:
Disable warning about unused functions for ar9300_reset.c for now.
|
#
259980 |
|
27-Dec-2013 |
peter |
MFC r259109: allow ZFS to co-habitate with crypto / aesni
|
#
257457 |
|
31-Oct-2013 |
brooks |
MFC r256861:
MFP4: 223121 (FDT infrastructure portion)
Implement support for interrupt-parent nodes in simplebus. The current implementation requires that device declarations have an interrupt-parent node and that it point to a device that has registered itself as a interrupt controller in fdt_ic_list_head and implements the fdt_ic interface.
Sponsored by: DARPA/AFRL Approved by: re (gjb)
|
#
257456 |
|
31-Oct-2013 |
brooks |
MFC r256865
Remove the isf(4) driver. It was created by accident and is subset of the cfi(4) driver. It remained in the tree longer than would be ideal due to the time required to bring cfi(4) to feature parity.
Sponsored by: DARPA/AFRL Approved by: re (gjb)
|
#
256821 |
|
21-Oct-2013 |
gibbs |
MFC 256813:
The Xen userland event channel driver isn't complete. Disabled it from the kernel build until it is ready.
sys/conf/files: Remove the entry for xen/evtchn/evtchn_dev.c so it is not included in any kernel builds.
Noticed by: smh Approved by: re (hrs) ------------------------------------------------------------------------
|
#
256791 |
|
20-Oct-2013 |
np |
MFC r256459.
cxgbe(4): Update T4 and T5 firmwares to 1.9.12.0
Approved by: re (glebius)
|
#
256381 |
|
12-Oct-2013 |
markm |
Merge from project branch via main. Uninteresting commits are trimmed.
Refactor of /dev/random device. Main points include:
* Userland seeding is no longer used. This auto-seeds at boot time on PC/Desktop setups; this may need some tweeking and intelligence from those folks setting up embedded boxes, but the work is believed to be minimal.
* An entropy cache is written to /entropy (even during installation) and the kernel uses this at next boot.
* An entropy file written to /boot/entropy can be loaded by loader(8)
* Hardware sources such as rdrand are fed into Yarrow, and are no longer available raw.
------------------------------------------------------------------------ r256240 | des | 2013-10-09 21:14:16 +0100 (Wed, 09 Oct 2013) | 4 lines
Add a RANDOM_RWFILE option and hide the entropy cache code behind it. Rename YARROW_RNG and FORTUNA_RNG to RANDOM_YARROW and RANDOM_FORTUNA. Add the RANDOM_* options to LINT.
------------------------------------------------------------------------ r256239 | des | 2013-10-09 21:12:59 +0100 (Wed, 09 Oct 2013) | 2 lines
Define RANDOM_PURE_RNDTEST for rndtest(4).
------------------------------------------------------------------------ r256204 | des | 2013-10-09 18:51:38 +0100 (Wed, 09 Oct 2013) | 2 lines
staticize struct random_hardware_source
------------------------------------------------------------------------ r256203 | markm | 2013-10-09 18:50:36 +0100 (Wed, 09 Oct 2013) | 2 lines
Wrap some policy-rich code in 'if NOTYET' until we can thresh out what it really needs to do.
------------------------------------------------------------------------ r256184 | des | 2013-10-09 10:13:12 +0100 (Wed, 09 Oct 2013) | 2 lines
Re-add /dev/urandom for compatibility purposes.
------------------------------------------------------------------------ r256182 | des | 2013-10-09 10:11:14 +0100 (Wed, 09 Oct 2013) | 3 lines
Add missing include guards and move the existing ones out of the implementation namespace.
------------------------------------------------------------------------ r256168 | markm | 2013-10-08 23:14:07 +0100 (Tue, 08 Oct 2013) | 10 lines
Fix some just-noticed problems:
o Allow this to work with "nodevice random" by fixing where the MALLOC pool is defined.
o Fix the explicit reseed code. This was correct as submitted, but in the project branch doesn't need to set the "seeded" bit as this is done correctly in the "unblock" function.
o Remove some debug ifdeffing.
o Adjust comments.
------------------------------------------------------------------------ r256159 | markm | 2013-10-08 19:48:11 +0100 (Tue, 08 Oct 2013) | 6 lines
Time to eat crow for me.
I replaced the sx_* locks that Arthur used with regular mutexes; this turned out the be the wrong thing to do as the locks need to be sleepable. Revert this folly.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com> (In original diff)
------------------------------------------------------------------------ r256138 | des | 2013-10-08 12:05:26 +0100 (Tue, 08 Oct 2013) | 10 lines
Add YARROW_RNG and FORTUNA_RNG to sys/conf/options.
Add a SYSINIT that forces a reseed during proc0 setup, which happens fairly late in the boot process.
Add a RANDOM_DEBUG option which enables some debugging printf()s.
Add a new RANDOM_ATTACH entropy source which harvests entropy from the get_cyclecount() delta across each call to a device attach method.
------------------------------------------------------------------------ r256135 | markm | 2013-10-08 07:54:52 +0100 (Tue, 08 Oct 2013) | 8 lines
Debugging. My attempt at EVENTHANDLER(multiuser) was a failure; use EVENTHANDLER(mountroot) instead.
This means we can't count on /var being present, so something will need to be done about harvesting /var/db/entropy/... .
Some policy now needs to be sorted out, and a pre-sync cache needs to be written, but apart from that we are now ready to go.
Over to review.
------------------------------------------------------------------------ r256094 | markm | 2013-10-06 23:45:02 +0100 (Sun, 06 Oct 2013) | 8 lines
Snapshot.
Looking pretty good; this mostly works now. New code includes:
* Read cached entropy at startup, both from files and from loader(8) preloaded entropy. Failures are soft, but announced. Untested.
* Use EVENTHANDLER to do above just before we go multiuser. Untested.
------------------------------------------------------------------------ r256088 | markm | 2013-10-06 14:01:42 +0100 (Sun, 06 Oct 2013) | 2 lines
Fix up the man page for random(4). This mainly removes no-longer-relevant details about HW RNGs, reseeding explicitly and user-supplied entropy.
------------------------------------------------------------------------ r256087 | markm | 2013-10-06 13:43:42 +0100 (Sun, 06 Oct 2013) | 6 lines
As userland writing to /dev/random is no more, remove the "better than nothing" bootstrap mode.
Add SWI harvesting to the mix.
My box seeds Yarrow by itself in a few seconds! YMMV; more to follow.
------------------------------------------------------------------------ r256086 | markm | 2013-10-06 13:40:32 +0100 (Sun, 06 Oct 2013) | 11 lines
Debug run. This now works, except that the "live" sources haven't been tested. With all sources turned on, this unlocks itself in a couple of seconds! That is no my box, and there is no guarantee that this will be the case everywhere.
* Cut debug prints.
* Use the same locks/mutexes all the way through.
* Be a tad more conservative about entropy estimates.
------------------------------------------------------------------------ r256084 | markm | 2013-10-06 13:35:29 +0100 (Sun, 06 Oct 2013) | 5 lines
Don't use the "real" assembler mnemonics; older compilers may not understand them (like when building CURRENT on 9.x).
# Submitted by: Konstantin Belousov <kostikbel@gmail.com>
------------------------------------------------------------------------ r256081 | markm | 2013-10-06 10:55:28 +0100 (Sun, 06 Oct 2013) | 12 lines
SNAPSHOT.
Simplify the malloc pools; We only need one for this device.
Simplify the harvest queue.
Marginally improve the entropy pool hashing, making it a bit faster in the process.
Connect up the hardware "live" source harvesting. This is simplistic for now, and will need to be made rate-adaptive.
All of the above passes a compile test but needs to be debugged.
------------------------------------------------------------------------ r256042 | markm | 2013-10-04 07:55:06 +0100 (Fri, 04 Oct 2013) | 25 lines
Snapshot. This passes the build test, but has not yet been finished or debugged.
Contains:
* Refactor the hardware RNG CPU instruction sources to feed into the software mixer. This is unfinished. The actual harvesting needs to be sorted out. Modified by me (see below).
* Remove 'frac' parameter from random_harvest(). This was never used and adds extra code for no good reason.
* Remove device write entropy harvesting. This provided a weak attack vector, was not very good at bootstrapping the device. To follow will be a replacement explicit reseed knob.
* Separate out all the RANDOM_PURE sources into separate harvest entities. This adds some secuity in the case where more than one is present.
* Review all the code and fix anything obviously messy or inconsistent. Address som review concerns while I'm here, like rename the pseudo-rng to 'dummy'.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com> (the first item)
------------------------------------------------------------------------ r255319 | markm | 2013-09-06 18:51:52 +0100 (Fri, 06 Sep 2013) | 4 lines
Yarrow wants entropy estimations to be conservative; the usual idea is that if you are certain you have N bits of entropy, you declare N/2.
------------------------------------------------------------------------ r255075 | markm | 2013-08-30 18:47:53 +0100 (Fri, 30 Aug 2013) | 4 lines
Remove short-lived idea; thread to harvest (eg) RDRAND enropy into the usual harvest queues. It was a nifty idea, but too heavyweight.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com>
------------------------------------------------------------------------ r255071 | markm | 2013-08-30 12:42:57 +0100 (Fri, 30 Aug 2013) | 4 lines
Separate out the Software RNG entropy harvesting queue and thread into its own files.
# Submitted by: Arthur Mesh <arthurmesh@gmail.com>
------------------------------------------------------------------------ r254934 | markm | 2013-08-26 20:07:03 +0100 (Mon, 26 Aug 2013) | 2 lines
Remove the short-lived namei experiment.
------------------------------------------------------------------------ r254928 | markm | 2013-08-26 19:35:21 +0100 (Mon, 26 Aug 2013) | 2 lines
Snapshot; Do some running repairs on entropy harvesting. More needs to follow.
------------------------------------------------------------------------ r254927 | markm | 2013-08-26 19:29:51 +0100 (Mon, 26 Aug 2013) | 15 lines
Snapshot of current work;
1) Clean up namespace; only use "Yarrow" where it is Yarrow-specific or close enough to the Yarrow algorithm. For the rest use a neutral name.
2) Tidy up headers; put private stuff in private places. More could be done here.
3) Streamline the hashing/encryption; no need for a 256-bit counter; 128 bits will last for long enough.
There are bits of debug code lying around; these will be removed at a later stage.
------------------------------------------------------------------------ r254784 | markm | 2013-08-24 14:54:56 +0100 (Sat, 24 Aug 2013) | 39 lines
1) example (partially humorous random_adaptor, that I call "EXAMPLE") * It's not meant to be used in a real system, it's there to show how the basics of how to create interfaces for random_adaptors. Perhaps it should belong in a manual page
2) Move probe.c's functionality in to random_adaptors.c * rename random_ident_hardware() to random_adaptor_choose()
3) Introduce a new way to choose (or select) random_adaptors via tunable "rngs_want" It's a list of comma separated names of adaptors, ordered by preferences. I.e.: rngs_want="yarrow,rdrand"
Such setting would cause yarrow to be preferred to rdrand. If neither of them are available (or registered), then system will default to something reasonable (currently yarrow). If yarrow is not present, then we fall back to the adaptor that's first on the list of registered adaptors.
4) Introduce a way where RNGs can play a role of entropy source. This is mostly useful for HW rngs.
The way I envision this is that every HW RNG will use this functionality by default. Functionality to disable this is also present. I have an example of how to use this in random_adaptor_example.c (see modload event, and init function)
5) fix kern.random.adaptors from kern.random.adaptors: yarrowpanicblock to kern.random.adaptors: yarrow,panic,block
6) add kern.random.active_adaptor to indicate currently selected adaptor: root@freebsd04:~ # sysctl kern.random.active_adaptor kern.random.active_adaptor: yarrow
# Submitted by: Arthur Mesh <arthurmesh@gmail.com>
Submitted by: Dag-Erling Smørgrav <des@FreeBSD.org>, Arthur Mesh <arthurmesh@gmail.com> Reviewed by: des@FreeBSD.org Approved by: re (delphij) Approved by: secteam (des,delphij)
|