USB: u_ether: Submit requests from rx_complete until limit reached
RX complete (completion callback of RX reqs) defers processing of received skbs and requeuing of RX requests to workqueue. Also, in workqueue function it pushes skb to network first and then queues expty RX requests to hardware. During high throughput or stressed testing there is possiblity of USB hardware running out of RX requests for a while due to delayed workqueue scheduling. This affects TCP TX (downlink) as TCP ACKs for DL traffic are sent from PC to device (or RX for u_ether). To workaround this queues RX requests from rx_complete itself until pending skbs for network stack (that are still processed by wq) reach a limit defined by a newly introduced module param: 'u_ether_rx_pending_thl'. Its default value is 500. Change-Id: I83b355d3dd3989cc425663e5b219c45661904f75 Signed-off-by:Manu Gautam <mgautam@codeaurora.org> Signed-off-by:
Ajay Agarwal <ajaya@codeaurora.org>
Loading
Please register or sign in to comment