Move flush containers sort & submit outside metadata lock
Moving _ocf_mngt_flush_containers outside global metadata critical section. All this function does is sort core lines and add queue request. This fixes stalls reported by Linux scheduler due to IO threads waiting on global metadata RW semaprhore for several minutes. Signed-off-by: Adam Rutkowski <adam.j.rutkowski@intel.com>
This commit is contained in:
parent
22bdb8b004
commit
61983c946c
@ -517,9 +517,9 @@ static void _ocf_mngt_flush_core(
|
||||
fc->core_id = core_id;
|
||||
fc->iter = 0;
|
||||
|
||||
_ocf_mngt_flush_containers(context, fc, 1, complete);
|
||||
|
||||
ocf_metadata_end_exclusive_access(&cache->metadata.lock);
|
||||
|
||||
_ocf_mngt_flush_containers(context, fc, 1, complete);
|
||||
}
|
||||
|
||||
static void _ocf_mngt_flush_all_cores(
|
||||
@ -550,9 +550,9 @@ static void _ocf_mngt_flush_all_cores(
|
||||
return;
|
||||
}
|
||||
|
||||
_ocf_mngt_flush_containers(context, fctbl, fcnum, complete);
|
||||
|
||||
ocf_metadata_end_exclusive_access(&cache->metadata.lock);
|
||||
|
||||
_ocf_mngt_flush_containers(context, fctbl, fcnum, complete);
|
||||
}
|
||||
|
||||
static void _ocf_mngt_flush_all_cores_complete(
|
||||
|
Loading…
Reference in New Issue
Block a user