From: Max Yuan <maxyuan@google.com>
This patch series updates the gve driver to improve Queue Page List (QPL)
management and enable support for larger ring sizes when using the DQO-QPL
queue format.
Previously, the driver used hardcoded multipliers to determine the number
of pages to register for QPLs (e.g., 2x ring size for RX). This rigid
approach made it difficult to support larger ring sizes without potentially
exceeding the "max_registered_pages" limit reported by the device.
The first patch introduces a unified and flexible logic for calculating QPL
page requirements. It balances TX and RX page allocations based on the
configured ring sizes and scales the total count down proportionally if it
would otherwise exceed the device's global registration limit.
The second patch leverages this new flexibility to stop ignoring the
maximum ring size supported by the device in DQO-QPL mode. Users can now
configure ring sizes up to the device-reported maximum, as the driver will
automatically adjust the QPL size to stay within allowed memory bounds.
Matt Olson (2):
gve: Update QPL page registration logic
gve: Enable reading max ring size from the device in DQO-QPL mode
drivers/net/ethernet/google/gve/gve.h | 18 ++++++--------
drivers/net/ethernet/google/gve/gve_adminq.c | 18 ++++----------
drivers/net/ethernet/google/gve/gve_buffer_mgmt_dqo.c | 2 +-
drivers/net/ethernet/google/gve/gve_main.c | 40 ++++++++++++++++++++++++++++++++
drivers/net/ethernet/google/gve/gve_rx.c | 5 +---
drivers/net/ethernet/google/gve/gve_rx_dqo.c | 6 ++---
drivers/net/ethernet/google/gve/gve_tx.c | 5 +---
drivers/net/ethernet/google/gve/gve_tx_dqo.c | 4 +---
8 files changed, 57 insertions(+), 41 deletions(-)
--
2.53.0.239.g8d8fc8a987-goog