Use management queue for parallelized management operations

When IO queues are used for parallelized management operations,
e.g. changing cleaning policy, a deadlock may occur due to global
metadata lock interfering with taking request from IO queue,
as they might be run on the same thread. As a workaround using
a management queue specifically for such operations eliminates
this problem.

Signed-off-by: Rafal Stefanowski <rafal.stefanowski@huawei.com>
This commit is contained in:
Rafal Stefanowski
2024-09-23 12:13:33 +02:00
parent d8994e886e
commit 97ee3af8f7
7 changed files with 15 additions and 9 deletions

View File

@@ -672,7 +672,7 @@ static void ocf_mngt_rebuild_metadata(ocf_cache_t cache,
result = ocf_parallelize_create(&parallelize, cache,
OCF_MNGT_REBUILD_METADATA_SHARDS_CNT,
sizeof(*context), ocf_mngt_rebuild_metadata_handle,
ocf_mngt_rebuild_metadata_finish);
ocf_mngt_rebuild_metadata_finish, false);
if (result) {
cmpl(priv, result);
return;