The RX path allocates the QPL page pool at queue creation, and
tries to reuse these pages through page recycling. This patch
ensures that on refill no non-QPL pages are posted to the device.
When the driver is running low on free buffers, an ondemand
allocation step kicks in that allocates a non-qpl page for
SKB business to free up the QPL page in use.
gve_try_recycle_buf was moved to gve_rx_append_frags so that driver does
not attempt to mark buffer as used if a non-qpl page was allocated
ondemand.
Signed-off-by: Rushil Gupta <email address hidden>
Reviewed-by: Willem de Bruijn <email address hidden>
Signed-off-by: Praveen Kaligineedi <email address hidden>
Signed-off-by: Bailey Forrest <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit e7075ab4fb6b39730dfbfbfa3a5505d678f01d2c)
Signed-off-by: John Cabaj <email address hidden>
Each QPL page is divided into GVE_TX_BUFS_PER_PAGE_DQO buffers.
When a packet needs to be transmitted, we break the packet into max
GVE_TX_BUF_SIZE_DQO sized chunks and transmit each chunk using a TX
descriptor.
We allocate the TX buffers from the free list in dqo_tx.
We store these TX buffer indices in an array in the pending_packet
structure.
The TX buffers are returned to the free list in dqo_compl after
receiving packet completion or when removing packets from miss
completions list.
Signed-off-by: Rushil Gupta <email address hidden>
Reviewed-by: Willem de Bruijn <email address hidden>
Signed-off-by: Praveen Kaligineedi <email address hidden>
Signed-off-by: Bailey Forrest <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit a6fb8d5a8b6925f1e635818d3dd2d89531d4a058)
Signed-off-by: John Cabaj <email address hidden>
GVE supports QPL ("queue-page-list") mode where
all data is communicated through a set of pre-registered
pages. Adding this mode to DQO descriptor format.
Add checks, abi-changes and device options to support
QPL mode for DQO in addition to GQI. Also, use
pages-per-qpl supplied by device-option to control the
size of the "queue-page-list".
Signed-off-by: Rushil Gupta <email address hidden>
Reviewed-by: Willem de Bruijn <email address hidden>
Signed-off-by: Praveen Kaligineedi <email address hidden>
Signed-off-by: Bailey Forrest <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 66ce8e6b49df401854f0c98bed50a65e4167825b)
Signed-off-by: John Cabaj <email address hidden>
633b396...
by
Jakub Kicinski <email address hidden>
Spotted this trivial spell mistake while casually reading
the google GVE driver code.
Signed-off-by: Jesper Dangaard Brouer <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
(cherry picked from commit 68af900072c157c0cdce0256968edd15067e1e5a)
Signed-off-by: John Cabaj <email address hidden>