gve: Cache link_speed value from device
authorJoshua Washington <joshwash@google.com>
Tue, 21 Mar 2023 17:23:32 +0000 (10:23 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 23 Mar 2023 05:03:21 +0000 (22:03 -0700)
commit68c3e4fc8628b1487c965aabb29207249657eb5f
tree9d14c6f10b4bcf34e607d17e58f2dbbd412a6a83
parent758d29fb3a8b3c756b4e4e0aa9b32ca8cfaf3feb
gve: Cache link_speed value from device

The link speed is never changed for the uptime of a VM, and the current
implementation sends an admin queue command for each call. Admin queue
command invocations have nontrivial overhead (e.g., VM exits), which can
be disruptive to users if triggered frequently. Our telemetry data shows
that there are VMs that make frequent calls to this admin queue command.
Caching the result of the original admin queue command would eliminate
the need to send multiple admin queue commands on subsequent calls to
retrieve link speed.

Fixes: 7e074d5a76ca ("gve: Enable Link Speed Reporting in the driver.")
Signed-off-by: Joshua Washington <joshwash@google.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/r/20230321172332.91678-1-joshwash@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/google/gve/gve_ethtool.c