Commit 586face8 authored by Mark Bloch's avatar Mark Bloch Committed by Jakub Kicinski
Browse files

net/mlx5: fs, retry insertion to hash table on EBUSY



When inserting into an rhashtable faster than it can grow, an -EBUSY error
may be encountered. Modify the insertion logic to retry on -EBUSY until
either a successful insertion or a genuine error is returned.

Signed-off-by: default avatarMark Bloch <mbloch@nvidia.com>
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Link: https://patch.msgid.link/20241219175841.1094544-6-tariqt@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 31d1356b
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -821,11 +821,17 @@ static int insert_fte(struct mlx5_flow_group *fg, struct fs_fte *fte)
		return index;

	fte->index = index + fg->start_index;
retry_insert:
	ret = rhashtable_insert_fast(&fg->ftes_hash,
				     &fte->hash,
				     rhash_fte);
	if (ret)
	if (ret) {
		if (ret == -EBUSY) {
			cond_resched();
			goto retry_insert;
		}
		goto err_ida_remove;
	}

	tree_add_node(&fte->node, &fg->node);
	list_add_tail(&fte->node.list, &fg->node.children);