#
f7594707 |
| 01-May-2018 |
Andrew Gallatin <gallatin@FreeBSD.org> |
Fix iflib_encap() EFBIG handling bugs
1) Don't give up if m_collapse() fails. Rather than giving up, try m_defrag() immediately.
2) Fix a leak where, if the NIC driver rejected the defrag'ed chain
Fix iflib_encap() EFBIG handling bugs
1) Don't give up if m_collapse() fails. Rather than giving up, try m_defrag() immediately.
2) Fix a leak where, if the NIC driver rejected the defrag'ed chain as having too many segments, we would fail to free the chain.
Reviewed by: Matthew Macy <mmacy@mattmacy.io> (this version of patch) Submitted by: Matthew Macy <mmacy@mattmacy.io> (early version of leak fix)
show more ...
|
#
0b75ac77 |
| 18-Apr-2018 |
Stephen Hurd <shurd@FreeBSD.org> |
iflib: Fix queue distribution when there are no threads
Previously, if there are no threads, all queues which targeted cores that share an L2 cache were bound to a single core. The intent is to dist
iflib: Fix queue distribution when there are no threads
Previously, if there are no threads, all queues which targeted cores that share an L2 cache were bound to a single core. The intent is to distribute them across these cores.
Reported by: olivier Reviewed by: sbruno Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D15120
show more ...
|
#
7b610b60 |
| 12-Apr-2018 |
Sean Bruno <sbruno@FreeBSD.org> |
Restore r332389 after resolution of locking fixes.
Add one extra lock initialization to iflib_register() that was missed in the git<->phab conversion.
Split out flag manipulation from general conte
Restore r332389 after resolution of locking fixes.
Add one extra lock initialization to iflib_register() that was missed in the git<->phab conversion.
Split out flag manipulation from general context manipulation in iflib
To avoid blocking on the context lock in the swi thread and risk potential deadlocks, this change protects lighter weight updates that only need to be consistent with each other with their own lock.
Submitted by: Matthew Macy <mmacy@mattmacy.io> Reviewed by: shurd Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14967
show more ...
|
#
2ff91c17 |
| 12-Apr-2018 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: align codebase to the current upstream (commit id 3fb001303718146)
Changelist: - Turn tx_rings and rx_rings arrays into arrays of pointers to kring structs. This patch includes fix
netmap: align codebase to the current upstream (commit id 3fb001303718146)
Changelist: - Turn tx_rings and rx_rings arrays into arrays of pointers to kring structs. This patch includes fixes for ixv, ixl, ix, re, cxgbe, iflib, vtnet and ptnet drivers to cope with the change. - Generalize the nm_config() callback to accept a struct containing many parameters. - Introduce NKR_FAKERING to support buffers sharing (used for netmap pipes) - Improved API for external VALE modules. - Various bug fixes and improvements to the netmap memory allocator, including support for externally (userspace) allocated memory. - Refactoring of netmap pipes: now linked rings share the same netmap buffers, with a separate set of kring pointers (rhead, rcur, rtail). Buffer swapping does not need to happen anymore. - Large refactoring of the control API towards an extensible solution; the goal is to allow the addition of more commands and extension of existing ones (with new options) without the need of hacks or the risk of running out of configuration space. A new NIOCCTRL ioctl has been added to handle all the requests of the new control API, which cover all the functionalities so far supported. The netmap API bumps from 11 to 12 with this patch. Full backward compatibility is provided for the old control command (NIOCREGIF), by means of a new netmap_legacy module. Many parts of the old netmap.h header has now been moved to netmap_legacy.h (included by netmap.h).
Approved by: hrs (mentor)
show more ...
|
#
66def526 |
| 12-Apr-2018 |
Mateusz Guzik <mjg@FreeBSD.org> |
iflib: fix up a mismerge in r332419
Lead to crashes on boot while in ifconfig.
Submitted by: Matthew Macy <mmacy@mattmacy.io>
|
#
90d72813 |
| 11-Apr-2018 |
Stephen Hurd <shurd@FreeBSD.org> |
Properly initialize ifc_nhwtxqs.
Also, since ifc_nhwrxqs is only used in one place, remove it from the struct. This was preventing iflib_dma_free() from being called via iflib_device_detach().
Subm
Properly initialize ifc_nhwtxqs.
Also, since ifc_nhwrxqs is only used in one place, remove it from the struct. This was preventing iflib_dma_free() from being called via iflib_device_detach().
Submitted by: Matthew Macy <mmacy@mattmacy.io> Reviewed by: shurd Sponsored by: Limelight Networks
show more ...
|
#
7feb8819 |
| 11-Apr-2018 |
Sean Bruno <sbruno@FreeBSD.org> |
Revert r332389 as it is causing panics for various users and we need to add some more test cases.
|
#
5c1d8c4b |
| 10-Apr-2018 |
Stephen Hurd <shurd@FreeBSD.org> |
Split out flag manipulation from general context manipulation in iflib
To avoid blocking on the context lock in the swi thread and risk potential deadlocks, this change protects lighter weight updat
Split out flag manipulation from general context manipulation in iflib
To avoid blocking on the context lock in the swi thread and risk potential deadlocks, this change protects lighter weight updates that only need to be consistent with each other with their own lock.
Submitted by: Matthew Macy <mmacy@mattmacy.io> Reviewed by: shurd Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14967
show more ...
|
#
541d96aa |
| 30-Mar-2018 |
Brooks Davis <brooks@FreeBSD.org> |
Use an accessor function to access ifr_data.
This fixes 32-bit compat (no ioctl command defintions are required as struct ifreq is the same size). This is believed to be sufficent to fully support
Use an accessor function to access ifr_data.
This fixes 32-bit compat (no ioctl command defintions are required as struct ifreq is the same size). This is believed to be sufficent to fully support ifconfig on 32-bit systems.
Reviewed by: kib Obtained from: CheriBSD MFC after: 1 week Relnotes: yes Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D14900
show more ...
|
#
18628b74 |
| 26-Mar-2018 |
Mark Johnston <markj@FreeBSD.org> |
Clamp IFLIB_RX_COPY_THRESH to MHLEN in iflib_rxd_pkt_get().
If one has added fields to struct mbuf such that MHLEN is smaller than this threshold (128), iflib_rxd_pkt_get() may otherwise overrun the
Clamp IFLIB_RX_COPY_THRESH to MHLEN in iflib_rxd_pkt_get().
If one has added fields to struct mbuf such that MHLEN is smaller than this threshold (128), iflib_rxd_pkt_get() may otherwise overrun the internal mbuf buffer while copying.
Reviewed by: mmacy MFC after: 3 days Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D14843
show more ...
|
#
226fb85d |
| 02-Mar-2018 |
Stephen Hurd <shurd@FreeBSD.org> |
iflib: stop timer callout when stopping
iflib_timer has been seen running after the interface had been removed. This change prevents that.
Submitted by: matt.macy@joyent.com
|
#
7cb7c6e3 |
| 20-Feb-2018 |
Navdeep Parhar <np@FreeBSD.org> |
Catch up with the removal of nktr_slot_flags from upstream netmap. No functional impact intended.
Submitted by: Vincenzo Maffione <v.maffione@gmail.com>
|
#
a4e59607 |
| 20-Feb-2018 |
Stephen Hurd <shurd@FreeBSD.org> |
IFLIB: do not remove dmamap on buffer unload
Dmamap is created only on IFC attach. If we remove it on buffer release, we won't be able to do ifconfig down&up. Only destroy when in detach.
Reported
IFLIB: do not remove dmamap on buffer unload
Dmamap is created only on IFC attach. If we remove it on buffer release, we won't be able to do ifconfig down&up. Only destroy when in detach.
Reported by: wma Reviewed by: wma Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D14060
show more ...
|
#
ac2fffa4 |
| 21-Jan-2018 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
Revert r327828, r327949, r327953, r328016-r328026, r328041: Uses of mallocarray(9).
The use of mallocarray(9) has rocketed the required swap to build FreeBSD. This is likely caused by the allocation
Revert r327828, r327949, r327953, r328016-r328026, r328041: Uses of mallocarray(9).
The use of mallocarray(9) has rocketed the required swap to build FreeBSD. This is likely caused by the allocation size attributes which put extra pressure on the compiler.
Given that most of these checks are superfluous we have to choose better where to use mallocarray(9). We still have more uses of mallocarray(9) but hopefully this is enough to bring swap usage to a reasonable level.
Reported by: wosch PR: 225197
show more ...
|
#
44313341 |
| 15-Jan-2018 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
net*: make some use of mallocarray(9).
Focus on code where we are doing multiplications within malloc(9). None of these ire likely to overflow, however the change is still useful as some static chec
net*: make some use of mallocarray(9).
Focus on code where we are doing multiplications within malloc(9). None of these ire likely to overflow, however the change is still useful as some static checkers can benefit from the allocation attributes we use for mallocarray.
This initial sweep only covers malloc(9) calls with M_NOWAIT. No good reason but I started doing the changes before r327796 and at that time it was convenient to make sure the sorrounding code could handle NULL values.
X-Differential revision: https://reviews.freebsd.org/D13837
show more ...
|
#
4fc74049 |
| 29-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327169 through r327340.
|
#
9c58cafa |
| 27-Dec-2017 |
Stephen Hurd <shurd@FreeBSD.org> |
Don't pass rids to taskqgroup_attach()
As everywhere else, we want to pass rman_get_start(irq->ii_res). This caused set affinity errors when not using MSI-X vectors (legacy and MSI interrupts).
Re
Don't pass rids to taskqgroup_attach()
As everywhere else, we want to pass rman_get_start(irq->ii_res). This caused set affinity errors when not using MSI-X vectors (legacy and MSI interrupts).
Reported by: sbruno Sponsored by: Limelight Networks
show more ...
|
#
ca03863c |
| 27-Dec-2017 |
Stephen Hurd <shurd@FreeBSD.org> |
Remove assertion that's not true for !EARLY_AP_STARTUP
gtask->gt_taskqueue is NULL when EARLY_AP_STARTUP is not enabled. Remove assertion to allow this config to work.
Reported by: oleg Sponsored b
Remove assertion that's not true for !EARLY_AP_STARTUP
gtask->gt_taskqueue is NULL when EARLY_AP_STARTUP is not enabled. Remove assertion to allow this config to work.
Reported by: oleg Sponsored by: Limelight Networks
show more ...
|
#
de130954 |
| 27-Dec-2017 |
Stephen Hurd <shurd@FreeBSD.org> |
Fix indentation.
Sponsored by: Limelight Networks
|
#
54b4b13c |
| 24-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r326936 through r327149.
|
#
97755e83 |
| 22-Dec-2017 |
Konstantin Belousov <kib@FreeBSD.org> |
Fix build for kernels with SCHED_4BSD.
Sponsored by: The FreeBSD Foundation
|
#
25ac1dd5 |
| 21-Dec-2017 |
Stephen Hurd <shurd@FreeBSD.org> |
Don't call tcp_lro_rx() unless hardware verified TCP/UDP csum
It seems that tcp_lro_rx() doesn't verify TCP checksums, so if there are bad checksums in the packets caused by invalid data, the invali
Don't call tcp_lro_rx() unless hardware verified TCP/UDP csum
It seems that tcp_lro_rx() doesn't verify TCP checksums, so if there are bad checksums in the packets caused by invalid data, the invalid data will pass through without errors.
This was noticed with the igb driver and a specific internet host: fetch http://www.mpfr.org/mpfr-current/mpfr-3.1.6.tar.xz -o test.bin && sha256 test.bin Would result in a different value sometimes.
This ends up making LRO require RXCSUM to be enabled, and RXCSUM to support TCP and UDP checksums.
PR: 224346 Reported by: gjb Reviewed by: sbruno Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D13561
show more ...
|
#
40cf51c4 |
| 20-Dec-2017 |
Li-Wen Hsu <lwhsu@FreeBSD.org> |
Add missing `;`
Approved by: kevlo
|
#
b103855e |
| 20-Dec-2017 |
Stephen Hurd <shurd@FreeBSD.org> |
Support attaching tx queues to cpus
This will attempt to use a different thread/core on the same L2 cache when possible, or use the same cpu as the rx thread when not. If SMP isn't enabled, don't go
Support attaching tx queues to cpus
This will attempt to use a different thread/core on the same L2 cache when possible, or use the same cpu as the rx thread when not. If SMP isn't enabled, don't go looking for cores to use. This is mostly useful when using shared TX/RX queues.
Reviewed by: sbruno Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D12446
show more ...
|
#
96fc97c8 |
| 19-Dec-2017 |
Stephen Hurd <shurd@FreeBSD.org> |
Update Matthew Macy contact info
Email address has changed, uses consistent name (Matthew, not Matt)
Reported by: Matthew Macy <mmacy@mattmacy.io> Differential Revision: https://reviews.freebsd.org
Update Matthew Macy contact info
Email address has changed, uses consistent name (Matthew, not Matt)
Reported by: Matthew Macy <mmacy@mattmacy.io> Differential Revision: https://reviews.freebsd.org/D13537
show more ...
|