Dynamic I/O queue management

- Queue allocation is now separated from starting cache.
- Queue can be created and destroyed in runtime.
- All queue ops accept queue handle instead of queue id.
- Cache stores queues as list instead of array.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
Michal Mielewczyk
2019-02-15 08:12:00 -05:00
committed by Robert Baldyga
parent 1771228a46
commit e53944d472
38 changed files with 379 additions and 445 deletions

View File

@@ -120,7 +120,7 @@ struct ocf_request {
env_atomic master_remaining;
/*!< Atomic counter for core device */
struct ocf_cache *cache;
ocf_cache_t cache;
/*!< Handle to cache instance */
const struct ocf_io_if *io_if;
@@ -165,8 +165,8 @@ struct ocf_request {
uint32_t alloc_core_line_count;
/*! Core line count for which request was initially allocated */
uint32_t io_queue;
/*!< I/O queue id for which request should be submitted */
ocf_queue_t io_queue;
/*!< I/O queue handle for which request should be submitted */
int error;
/*!< This filed indicates an error for OCF request */