HomeFreeBSD

cxgbe tom: Call t4_rcvd_locked from do_rx_data to return RX credits

Description

cxgbe tom: Call t4_rcvd_locked from do_rx_data to return RX credits

In particular, the kernel RPC layer used by the NFS client never
invokes pru_rcvd since it always reads data from the socket upcall
via MSG_SOCALLBCK which avoids calling pru_rcvd. As a result, on an
NFS client connection managed by t4_tom, RX credits were never
returned to the TOE connection to open the TCP window resulting in
connection hangs.

To fix, expand the set of conditions in do_rx_data where RX credits
are returned to match those in t4_rcvd_locked by calling the function
directly.

Reviewed by: np
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D41688

(cherry picked from commit dcfddc8dc091e7688abc8488a0307eba425fa7a2)
(cherry picked from commit bd8cecc466adeca0763cca674f83bfcc3a751356)

Approved by: re (karels)

Details

Provenance
jhbAuthored on Sep 8 2023, 11:30 PM
Reviewer
np
Differential Revision
D41688: cxgbe tom: Call t4_rcvd_locked from do_rx_data to return RX credits
Parents
rG7ca80c7f4bf7: gic_acpi: Limit the number of CPUs to GIC_MAXCPU
Branches
Unknown
Tags
Unknown