[PATCH net-next v2 0/2] gve: Support larger ring sizes in DQO-QPL mode
From: Joshua Washington
Date: Wed Feb 25 2026 - 13:23:59 EST
From: Max Yuan <maxyuan@xxxxxxxxxx>
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.
Changes in v2:
- Fixed 32-bit compilation issue by using div64_u64 and div_u64 instead
of division operator. (Paolo Abeni)
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 | 41 ++++++++++++++++++++++++++++++++
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, 58 insertions(+), 41 deletions(-)
--
2.53.0.273.g2a3d683680-goog