#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
e8d1145d |
|
19-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
cxgbe: Remove unused devclass arguments to *DRIVER_MODULE(). Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D34964
|
#
a727d953 |
|
13-Jan-2022 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Fix bad races between sysctl and driver detach. The default sysctl context setup by newbus for a device is eventually freed by device_sysctl_fini, which runs after the device driver's detach routine. sysctl nodes associated with this context must not use any resources (like driver locks, hardware access, counters, etc.) that are released by driver detach. There are a lot of sysctl nodes like this in cxgbe(4) and the fix is to hang them off a context that is explicitly freed by the driver before it releases any resource that might be used by a sysctl. This fixes panics when running "sysctl dev.t6nex dev.cc" in a tight loop and loading/unloading the driver in parallel. Reported by: Suhas Lokesha MFC after: 1 week Sponsored by: Chelsio Communications
|
#
fae028dd |
|
18-Feb-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Break up t4_read_chip_settings. Read the PF-only hardware settings directly in get_params__post_init. Split the rest into two routines used by both the PF and VF drivers: one that reads the SGE rx buffer configuration and another that verifies miscellaneous hardware configuration. MFC after: 1 week Sponsored by: Chelsio Communications
|
#
3447df8b |
|
01-Feb-2021 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Fixes to tx coalescing. - The behavior implemented in r362905 resulted in delayed transmission of packets in some cases, causing performance issues. Use a different heuristic to predict tx requests. - Add a tunable/sysctl (hw.cxgbe.tx_coalesce) to disable tx coalescing entirely. It can be changed at any time. There is no change in default behavior.
|
#
f14d7c95 |
|
11-Nov-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Make sure that the iq/eq map sizes are correct for VFs. This should have been part of r366929. MFC after: 3 days Sponsored by: Chelsio Communications
|
#
dc0800a9 |
|
08-Nov-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Use the MAC address set by the the PF if there is one. Query the firmware for the MAC address set by the PF for the VF and use it instead of the firmware generated MAC if it's available. MFC after: 2 weeks Sponsored by: Chelsio Communications
|
#
d735920d |
|
02-Jul-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): changes in the Tx path to help increase tx coalescing. - Ask the firmware for the number of frames that can be stuffed in one work request. - Modify mp_ring to increase the likelihood of tx coalescing when there are just one or two threads that are doing most of the tx. Add teeth to the abdication mechanism by pushing the consumer lock into mp_ring. This reduces the likelihood that a consumer will get stuck with all the work even though it is above its budget. - Add support for coalesced tx WR to the VF driver. This, with the changes above, results in a 7x improvement in the tx pps of the VF driver for some common cases. The firmware vets the L2 headers submitted by the VF driver and it's a big win if the checks are performed for a batch of packets and not each one individually. Reviewed by: jhb@ MFC after: 2 weeks Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D25454
|
#
7c228be3 |
|
25-Jun-2020 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Add a pointer to the adapter softc in vi_info. There were quite a few places where port_info was being accessed only to get to the adapter. Reviewed by: jhb@ MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D25432
|
#
5877e649 |
|
15-Nov-2019 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Catch up with the pciids in the PF driver. MFC after: 3 days Sponsored by: Chelsio Communications
|
#
b43e2d7d |
|
01-Mar-2019 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Enable 32b port capabilities in the VF driver. MFC after: 1 week Sponsored by: Chelsio Communications
|
#
c0a248ef |
|
07-Feb-2019 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Initialize debug_flags from the environment like in the PF driver.
|
#
b8bfcb71 |
|
22-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbev(4): Updates to the VF driver to cope with recent ifmedia and ctrlq changes in the base driver. MFC after: 1 week Sponsored by: Chelsio Communications
|
#
37310a98 |
|
11-Aug-2018 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Move all control queues to the adapter. There used to be one control queue per adapter (the mgmtq) that was initialized during adapter init and one per port that was initialized later during port init. This change moves all the control queues (one per port/channel) to the adapter so that they are initialized during adapter init and are available before any port is up. This allows the driver to issue ctrlq work requests over any channel without having to bring up any port. MFH: 2 weeks Sponsored by: Chelsio Communications
|
#
f549e352 |
|
22-Dec-2017 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Do not forward interrupts to queues with freelists. This leaves the firmware event queue (fwq) as the only queue that can take interrupts for others. This simplifies cfg_itype_and_nqueues and queue allocation in the driver at the cost of a little (never?) used configuration. It also allows service_iq to be split into two specialized variants in the future. MFC after: 2 months Sponsored by: Chelsio Communications
|
#
8c61c6bb |
|
15-Nov-2017 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Combine all _10g and _1g tunables and drop the suffix from their names. The finer-grained knobs weren't practically useful. Sponsored by: Chelsio Communications
|
#
49c0beb6 |
|
05-May-2017 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Update the VF device ids too. This should have been part of r317820. Reported by: jhb@ MFC after: 1 week Sponsored by: Chelsio Communications
|
#
2204b427 |
|
02-May-2017 |
Navdeep Parhar <np@FreeBSD.org> |
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. MFC after: 1 month Sponsored by: Chelsio Communications
|
#
358bca3b |
|
30-Dec-2016 |
Navdeep Parhar <np@FreeBSD.org> |
cxgbe(4): Updates to link configuration. - Update struct link_settings and associated shared code. - Add tunables to control FEC and autonegotiation. All ports inherit these values as their initial settings. hw.cxgbe.fec hw.cxgbe.autoneg - Add per-port sysctls to control FEC and autonegotiation. These can be modified at any time. dev.<port>.<n>.fec dev.<port>.<n>.autoneg MFC after: 3 days Sponsored by: Chelsio Communications
|
#
788f3c06 |
|
24-Sep-2016 |
Navdeep Parhar <np@FreeBSD.org> |
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.
|
#
e6b81479 |
|
15-Sep-2016 |
Navdeep Parhar <np@FreeBSD.org> |
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. Sponsored by: Chelsio Communications
|
#
83a202ca |
|
15-Sep-2016 |
Navdeep Parhar <np@FreeBSD.org> |
Whitespace nits.
|
#
6af45170 |
|
07-Sep-2016 |
John Baldwin <jhb@FreeBSD.org> |
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. Reviewed by: np MFC after: 2 months Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D7599
|