]> www.infradead.org Git - users/dwmw2/linux.git/commit
fbnic: Improve responsiveness of fbnic_mbx_poll_tx_ready
authorAlexander Duyck <alexanderduyck@fb.com>
Tue, 6 May 2025 16:00:12 +0000 (09:00 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 8 May 2025 09:33:30 +0000 (11:33 +0200)
commitab064f6005973d456f95ae99cd9ea0d8ab676cce
tree6259d69d05f080868435ff2c3a7cfe1a78063e2b
parentcdbb2dc3996a60ed3d7431c1239a8ca98c778e04
fbnic: Improve responsiveness of fbnic_mbx_poll_tx_ready

There were a couple different issues found in fbnic_mbx_poll_tx_ready.
Among them were the fact that we were sleeping much longer than we actually
needed to as the actual FW could respond in under 20ms. The other issue was
that we would just keep polling the mailbox even if the device itself had
gone away.

To address the responsiveness issues we can decrease the sleeps to 20ms and
use a jiffies based timeout value rather than just counting the number of
times we slept and then polled.

To address the hardware going away we can move the check for the firmware
BAR being present from where it was and place it inside the loop after the
mailbox descriptor ring is initialized and before we sleep so that we just
abort and return an error if the device went away during initialization.

With these two changes we see a significant improvement in boot times for
the driver.

Fixes: da3cde08209e ("eth: fbnic: Add FW communication mechanism")
Signed-off-by: Alexander Duyck <alexanderduyck@fb.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/174654721224.499179.2698616208976624755.stgit@ahduyck-xeon-server.home.arpa
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/meta/fbnic/fbnic_fw.c