Per-queue multi-stream sequential cutoff

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
Robert Baldyga
2020-12-28 16:46:22 +01:00
parent ac9bd5b094
commit 3ee253cc4e
13 changed files with 354 additions and 60 deletions

View File

@@ -44,6 +44,13 @@ int ocf_queue_create(ocf_cache_t cache, ocf_queue_t *queue,
tmp_queue->cache = cache;
tmp_queue->ops = ops;
result = ocf_queue_seq_cutoff_init(tmp_queue);
if (result) {
ocf_mngt_cache_put(cache);
env_free(tmp_queue);
return result;
}
list_add(&tmp_queue->list, &cache->io_queues);
*queue = tmp_queue;
@@ -65,6 +72,7 @@ void ocf_queue_put(ocf_queue_t queue)
if (env_atomic_dec_return(&queue->ref_count) == 0) {
list_del(&queue->list);
queue->ops->stop(queue);
ocf_queue_seq_cutoff_deinit(queue);
ocf_mngt_cache_put(queue->cache);
env_spinlock_destroy(&queue->io_list_lock);
env_free(queue);