On 7/23/19 4:06 PM, David Miller wrote:
From: Shannon Nelson <snel...@pensando.io>
Date: Tue, 23 Jul 2019 15:50:43 -0700

On 7/23/19 2:33 PM, David Miller wrote:
Generally interface address changes are expected to be synchronous.
Yeah, this bothers me a bit as well, but the address change calls come
in under spin_lock_bh(), and I'm reluctant to make an AdminQ call
under the _bh that could block for a few seconds.
So it's not about memory allocation but rather the fact that the device
might take a while to complete?

Memory allocation may or may not be involved, but yes, mainly we're doing another spin_lock on a firmware command that waits for an ACK or ERROR answer, and in extreme cases could possibly timeout on a dead firmware.  I know that i40e and ice do much the same thing, and I believe mlx5 as well, for the same reasons.  I suspect others do as well.

Can you start the operation synchronously yet complete it async?

This could be possible, but would likely require a bunch more messy logic to track async AdminQ requests, that otherwise is unnecessary.

sln

Reply via email to