Thread (13 messages) 13 messages, 2 authors, 2021-12-08

Re: [PATCH net-next 0/6] Allow parallel devlink execution

From: Jakub Kicinski <kuba@kernel.org>
Date: 2021-12-08 04:21:24
Also in: lkml

On Tue, 7 Dec 2021 09:29:03 +0200 Leon Romanovsky wrote:
On Mon, Dec 06, 2021 at 06:00:27PM -0800, Jakub Kicinski wrote:
quoted
On Sun,  5 Dec 2021 10:22:00 +0200 Leon Romanovsky wrote:  
quoted
This is final piece of devlink locking puzzle, where I remove global
mutex lock (devlink_mutex), so we can run devlink commands in parallel.

The series starts with addition of port_list_lock, which is needed to
prevent locking dependency between netdevsim sysfs and devlink. It
follows by the patch that adds context aware locking primitives. Such
primitives allow us to make sure that devlink instance is locked and
stays locked even during reload operation. The last patches opens
devlink to parallel commands.  
I'm not okay with assuming that all sub-objects are added when devlink
is not registered.  
But none of the patches in this series assume that.

In devlink_nested_lock() patch [1], I added new marker just to make sure
that we don't lock if this specific command is called in locked context.

+#define DEVLINK_NESTED_LOCK XA_MARK_2

[1] https://lore.kernel.org/all/2b64a2a81995b56fec0231751ff6075020058584.1638690564.git.leonro@nvidia.com/ (local)
You skip locking if the marker is set. So a register operation can race
with a user space operation, right?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help