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?