#
1bae9dc5 |
| 14-Oct-2024 |
Mark Johnston <markj@FreeBSD.org> |
netmap: Make memory pools NUMA-aware
Each netmap adapter associated with a physical adapter is attached to a netmap memory pool. contigmalloc() is used to allocate physically contiguous memory for
netmap: Make memory pools NUMA-aware
Each netmap adapter associated with a physical adapter is attached to a netmap memory pool. contigmalloc() is used to allocate physically contiguous memory for the pool, but ideally we would ensure that all such memory is allocated from the NUMA domain local to the adapter.
Augment netmap's memory pools with a NUMA domain ID, similar to how IOMMU groups are handled in the Linux port. That is, when attaching to a physical adapter, ensure that the associated memory pools are local to the adapter's associated memory domain, creating new pools as needed.
Some types of ifnets do not have any defined NUMA affinity; in this case the domain ID in question is the sentinel value -1.
Add a sysctl, dev.netmap.port_numa_affinity, which can be used to enable the new behaviour. Keep it disabled by now to avoid surprises in case netmap applications are relying on zero-copy optimizations to forward packets between ports belonging to different NUMA domains.
Reviewed by: vmaffione MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D46666
show more ...
|
#
1ae4951b |
| 19-Sep-2024 |
Mark Johnston <markj@FreeBSD.org> |
netmap: Make the memory ops function pointer table const
No functional change intended.
Reviewed by: vmaffione MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.fr
netmap: Make the memory ops function pointer table const
No functional change intended.
Reviewed by: vmaffione MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D46664
show more ...
|
Revision tags: release/13.4.0 |
|
#
d1bdc282 |
| 23-Jul-2024 |
Bjoern A. Zeeb <bz@FreeBSD.org> |
Deprecate contigfree(9) in favour of free(9)
As of 9e6544dd6e02c46b805d11ab925c4f3b18ad7a4b contigfree(9) is no longer needed and should not be used anymore. We leave a wrapper for 3rd party code i
Deprecate contigfree(9) in favour of free(9)
As of 9e6544dd6e02c46b805d11ab925c4f3b18ad7a4b contigfree(9) is no longer needed and should not be used anymore. We leave a wrapper for 3rd party code in at least 15.x but remove (almost) all other cases from the tree.
This leaves one use of contigfree(9) untouched; that was the original trigger for 9e6544dd6e02 and is handled in D45813 (to be committed seperately later).
Sponsored by: The FreeBSD Foundation Reviewed by: markj, kib Tested by: pho (10h stress test run) Differential Revision: https://reviews.freebsd.org/D46099
show more ...
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
Revision tags: release/13.2.0 |
|
#
e330262f |
| 12-Jan-2023 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Mechanically convert netmap(4) to IfAPI
Reviewed by: vmaffione, zlei Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D37814
|
Revision tags: release/12.4.0, release/13.1.0 |
|
#
09a18933 |
| 06-Mar-2022 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: fix refcount bug in netmap allocator
Symptom: when a single extmem memory region is provided to netmap multiple times, for multiple interfaces, the memory region is never released by netmap
netmap: fix refcount bug in netmap allocator
Symptom: when a single extmem memory region is provided to netmap multiple times, for multiple interfaces, the memory region is never released by netmap once all the existing file descriptors are closed.
Fix the relevant condition in netmap_mem_drop(): release the memory when the last user of netmap_adapter is gone, rather then when the last user of netmap_mem_d is gone.
MFC after: 2 weeks
show more ...
|
Revision tags: release/12.3.0 |
|
#
3e3314a8 |
| 26-Sep-2021 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: fix uint32_t overflow in pool size calculation
MFC after: 1 week
|
#
98399ab0 |
| 22-Aug-2021 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: import changes from upstream
- make sure rings are disabled during resets - introduce netmap_update_hostrings_mode(), with support for multiple host rings - always initialize ni_bufs_h
netmap: import changes from upstream
- make sure rings are disabled during resets - introduce netmap_update_hostrings_mode(), with support for multiple host rings - always initialize ni_bufs_head in netmap_if ni_bufs_head was not properly initialized when no external buffers were requestedx and contained the ni_bufs_head from the last request. This was causing spurious buffer frees when alternating between apps that used external buffers and apps that did not use them. - check na validitity under lock on detach - netmap_mem: fix leak on error path - nm_dispatch: fix compilation on Raspberry Pi
MFC after: 2 weeks
show more ...
|
#
70275a67 |
| 11-Apr-2021 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: don't use linux type struct device *
Such type cannot be used in code that is in common between FreeBSD and Linux. Use the FreeBSD type instead.
MFC after: 3 days Reported by: markj Differe
netmap: don't use linux type struct device *
Such type cannot be used in code that is in common between FreeBSD and Linux. Use the FreeBSD type instead.
MFC after: 3 days Reported by: markj Differential Revision: https://reviews.freebsd.org/D29677
show more ...
|
Revision tags: release/13.0.0 |
|
#
45c67e8f |
| 02-Apr-2021 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: several typo fixes
No functional changes intended.
|
#
a6d768d8 |
| 29-Mar-2021 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: add kernel support for the "offsets" feature
This feature enables applications to ask netmap to transmit or receive packets starting at a user-specified offset from the beginning of the netm
netmap: add kernel support for the "offsets" feature
This feature enables applications to ask netmap to transmit or receive packets starting at a user-specified offset from the beginning of the netmap buffer. This is meant to ease those packet manipulation operations such as pushing or popping packet headers, that may be useful to implement software switches, routers and other packet processors. To use the feature, drivers (e.g., iflib, vtnet, etc.) must have explicit support. This change does not add support for any driver, but introduces the necessary kernel changes. However, offsets support is already included for VALE ports and pipes.
show more ...
|
Revision tags: release/12.2.0 |
|
#
174f809d |
| 22-Oct-2020 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: fix mutex double unlock bug
https://github.com/luigirizzo/netmap/pull/733
Submitted by: brian90013 MFC after: 3 days
|
Revision tags: release/11.4.0 |
|
#
773bec08 |
| 27-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357119 through r357178.
|
#
de27b303 |
| 26-Jan-2020 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap_mem_unmap: fix NULL pointer dereference
MFC after: 3 days
|
Revision tags: release/12.1.0 |
|
#
760fa2ab |
| 20-Oct-2019 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: minor misc improvements
- use ring->head rather than ring->cur in lb(8) - use strlcat() rather than strncat() - fix bandwidth computation in pkt-gen(8)
MFC after: 1 week
|
#
c5c3ba6b |
| 03-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r351317 through r351731.
|
#
253b2ec1 |
| 01-Sep-2019 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: import changes from upstream (SHA 137f537eae513)
- Rework option processing. - Use larger integers for memory size values in the memory management code.
MFC after: 2 weeks
|
#
a63915c2 |
| 28-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @r350386
Sponsored by: The FreeBSD Foundation
|
Revision tags: release/11.3.0 |
|
#
5d47236b |
| 04-Jul-2019 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: Remove pointer leakage in netmap_mem2.c
PR: 238641 Submitted by: Fuqian Huang <huangfq.daxian@gmail.com> Reviewed by: vmaffione MFC after: 1 week
|
#
2aaf9152 |
| 18-Mar-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead@r345275
|
#
d12354a5 |
| 18-Mar-2019 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: add support for multiple host rings
Some applications forward from/to host rings most or all the traffic received or sent on a physical interface. In this cases it is desirable to have more
netmap: add support for multiple host rings
Some applications forward from/to host rings most or all the traffic received or sent on a physical interface. In this cases it is desirable to have more than a pair of RX/TX host rings, and use multiple threads to speed up forwarding. This change adds support for multiple host rings. On registering a netmap port, the user can specify the number of desired receive and transmit host rings in the nr_host_tx_rings and nr_host_rx_rings fields of the nmreq_register structure.
MFC after: 2 weeks
show more ...
|
#
8e69ae1c |
| 05-Feb-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r343712 through r343806.
|
#
75f4f3ed |
| 05-Feb-2019 |
Vincenzo Maffione <vmaffione@FreeBSD.org> |
netmap: refactor logging macros and pipes
Changelist: - Replace ND, D and RD macros with nm_prdis, nm_prinf, nm_prerr and nm_prlim, to avoid possible naming conflicts. - Add netmap_kri
netmap: refactor logging macros and pipes
Changelist: - Replace ND, D and RD macros with nm_prdis, nm_prinf, nm_prerr and nm_prlim, to avoid possible naming conflicts. - Add netmap_krings_mode_commit() helper function and use that to reduce code duplication. - Refactor pipes control code to export some functions that can be reused by the veth driver (on Linux) and epair(4). - Add check to reject API requests with version less than 11. - Small code refactoring for the null adapter.
MFC after: 1 week
show more ...
|
#
67350cb5 |
| 09-Dec-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340918 through r341763.
|