sfc: add and use efx_tx_send_pending in tx.c
Instead of using efx_tx_queue_partner(), which relies on the assumption that tx_queues_per_channel is 2, efx_tx_send_pending() iterates over txqs with efx_for_each_channel_tx_queue(). We unconditionally set tx_queue->xmit_pending (renamed from xmit_more_available), then condition on xmit_more for the call to efx_tx_send_pending(), which will clear xmit_pending. Thus, after an xmit_more TX, the doorbell is un-rung and xmit_pending is true. Signed-off-by: Edward Cree <ecree@solarflare.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:

committed by
Jakub Kicinski

parent
44a8c4f33c
commit
1c0544d249
@@ -244,7 +244,7 @@ struct efx_tx_buffer {
|
||||
* @tso_fallbacks: Number of times TSO fallback used
|
||||
* @pushes: Number of times the TX push feature has been used
|
||||
* @pio_packets: Number of times the TX PIO feature has been used
|
||||
* @xmit_more_available: Are any packets waiting to be pushed to the NIC
|
||||
* @xmit_pending: Are any packets waiting to be pushed to the NIC
|
||||
* @cb_packets: Number of times the TX copybreak feature has been used
|
||||
* @notify_count: Count of notified descriptors to the NIC
|
||||
* @empty_read_count: If the completion path has seen the queue as empty
|
||||
@@ -292,7 +292,7 @@ struct efx_tx_queue {
|
||||
unsigned int tso_fallbacks;
|
||||
unsigned int pushes;
|
||||
unsigned int pio_packets;
|
||||
bool xmit_more_available;
|
||||
bool xmit_pending;
|
||||
unsigned int cb_packets;
|
||||
unsigned int notify_count;
|
||||
/* Statistics to supplement MAC stats */
|
||||
|
Reference in New Issue
Block a user