Go to the source code of this file.
Data Structures | |
| struct | ocs_hal_qtop_entry_t |
| struct | ocs_hal_rqs_info_t |
| struct | ocs_hal_rqs_info_t::rq_config |
| struct | ocs_hal_mrq_info_t |
| struct | ocs_hal_qtop_t |
Macros | |
| #define | OCS_HAL_EQ_ENTRIES_MIN 1024 |
| #define | OCS_HAL_EQ_ENTRIES_DEF 1024 |
| #define | OCS_HAL_EQ_ENTRIES_MAX 4096 |
| #define | OCS_HAL_CQ_ENTRIES_MIN 256 |
| #define | OCS_HAL_CQ_ENTRIES_DEF 4096 |
| #define | OCS_HAL_CQ_ENTRIES_MAX 4096 |
| #define | OCS_HAL_WQ_ENTRIES_MIN 64 |
| #define | OCS_HAL_WQ_ENTRIES_DEF 2048 |
| #define | OCS_HAL_WQ_ENTRIES_MAX 2048 |
| #define | OCS_HAL_RQ_ENTRIES_MIN 512 |
| #define | OCS_HAL_RQ_ENTRIES_DEF 1024 |
| #define | OCS_HAL_RQ_ENTRIES_MAX 4096 |
| #define | OCS_HAL_MQ_ENTRIES_MIN 16 |
| #define | OCS_HAL_MQ_ENTRIES_DEF 128 |
| #define | OCS_HAL_MQ_ENTRIES_MAX 128 |
| #define | MAX_TOKENS 256 |
| #define | OCS_HAL_MAX_QTOP_ENTRIES 200 |
Enumerations | |
| enum | ocs_hal_qtop_entry_e { QTOP_EQ = 0, QTOP_CQ, QTOP_WQ, QTOP_RQ, QTOP_MQ, QTOP_LAST } |
Functions | |
| ocs_hal_qtop_t * | ocs_hal_qtop_parse (ocs_hal_t *hal, const char *qtop_string) |
| Parse queue topology string. More... | |
| void | ocs_hal_qtop_free (ocs_hal_qtop_t *qtop) |
| free queue topology object More... | |
| const char * | ocs_hal_qtop_entry_name (ocs_hal_qtop_entry_e entry) |
| uint32_t | ocs_hal_qtop_eq_count (ocs_hal_t *hal) |
| Return count of EQs for a queue topology object. More... | |
| ocs_hal_rtn_e | ocs_hal_init_queues (ocs_hal_t *hal, ocs_hal_qtop_t *qtop) |
| Initialize queues. More... | |
| void | hal_thread_eq_handler (ocs_hal_t *hal, hal_eq_t *eq, uint32_t max_isr_time_msec) |
| void | hal_thread_cq_handler (ocs_hal_t *hal, hal_cq_t *cq) |
| hal_wq_t * | ocs_hal_queue_next_wq (ocs_hal_t *hal, ocs_hal_io_t *io) |
| Allocate a WQ to an IO object. More... | |
| static bool | ocs_power_of_2 (size_t len) |
| static bool | ocs_qlen_valid (uint32_t qlen, uint32_t min, uint32_t max) |
| #define MAX_TOKENS 256 |
Definition at line 112 of file ocs_hal_queues.h.
| #define OCS_HAL_CQ_ENTRIES_DEF 4096 |
Definition at line 46 of file ocs_hal_queues.h.
| #define OCS_HAL_CQ_ENTRIES_MAX 4096 |
Definition at line 47 of file ocs_hal_queues.h.
| #define OCS_HAL_CQ_ENTRIES_MIN 256 |
Definition at line 45 of file ocs_hal_queues.h.
| #define OCS_HAL_EQ_ENTRIES_DEF 1024 |
Definition at line 42 of file ocs_hal_queues.h.
| #define OCS_HAL_EQ_ENTRIES_MAX 4096 |
Definition at line 43 of file ocs_hal_queues.h.
| #define OCS_HAL_EQ_ENTRIES_MIN 1024 |
Definition at line 41 of file ocs_hal_queues.h.
| #define OCS_HAL_MAX_QTOP_ENTRIES 200 |
Definition at line 113 of file ocs_hal_queues.h.
| #define OCS_HAL_MQ_ENTRIES_DEF 128 |
Definition at line 58 of file ocs_hal_queues.h.
| #define OCS_HAL_MQ_ENTRIES_MAX 128 |
Definition at line 59 of file ocs_hal_queues.h.
| #define OCS_HAL_MQ_ENTRIES_MIN 16 |
Definition at line 57 of file ocs_hal_queues.h.
| #define OCS_HAL_RQ_ENTRIES_DEF 1024 |
Definition at line 54 of file ocs_hal_queues.h.
| #define OCS_HAL_RQ_ENTRIES_MAX 4096 |
Definition at line 55 of file ocs_hal_queues.h.
| #define OCS_HAL_RQ_ENTRIES_MIN 512 |
Definition at line 53 of file ocs_hal_queues.h.
| #define OCS_HAL_WQ_ENTRIES_DEF 2048 |
Definition at line 50 of file ocs_hal_queues.h.
| #define OCS_HAL_WQ_ENTRIES_MAX 2048 |
Definition at line 51 of file ocs_hal_queues.h.
| #define OCS_HAL_WQ_ENTRIES_MIN 64 |
Definition at line 49 of file ocs_hal_queues.h.
| enum ocs_hal_qtop_entry_e |
| Enumerator | |
|---|---|
| QTOP_EQ | |
| QTOP_CQ | |
| QTOP_WQ | |
| QTOP_RQ | |
| QTOP_MQ | |
| QTOP_LAST | |
Definition at line 61 of file ocs_hal_queues.h.
| void hal_thread_cq_handler | ( | ocs_hal_t * | hal, |
| hal_cq_t * | cq | ||
| ) |
| void hal_thread_eq_handler | ( | ocs_hal_t * | hal, |
| hal_eq_t * | eq, | ||
| uint32_t | max_isr_time_msec | ||
| ) |
| ocs_hal_rtn_e ocs_hal_init_queues | ( | ocs_hal_t * | hal, |
| ocs_hal_qtop_t * | qtop | ||
| ) |
Initialize queues.
Given the parsed queue topology spec, the SLI queues are created and initialized
| hal | pointer to HAL object |
| qtop | pointer to queue topology |
Definition at line 56 of file ocs_hal_queues.c.
| const char* ocs_hal_qtop_entry_name | ( | ocs_hal_qtop_entry_e | entry | ) |
| uint32_t ocs_hal_qtop_eq_count | ( | ocs_hal_t * | hal | ) |
Return count of EQs for a queue topology object.
The EQ count for in the HALs queue topology (hal->qtop) object is returned
| hal | pointer to HAL object |
Definition at line 1097 of file ocs_hal_queues.c.
| void ocs_hal_qtop_free | ( | ocs_hal_qtop_t * | qtop | ) |
free queue topology object
| qtop | pointer to QTOP object |
Definition at line 1765 of file ocs_hal_queues.c.
| ocs_hal_qtop_t* ocs_hal_qtop_parse | ( | ocs_hal_t * | hal, |
| const char * | qtop_string | ||
| ) |
Parse queue topology string.
The queue topology object is allocated, and filled with the results of parsing the passed in queue topology string
| hal | pointer to HAL object |
| qtop_string | input queue topology string |
Definition at line 1687 of file ocs_hal_queues.c.
| hal_wq_t* ocs_hal_queue_next_wq | ( | ocs_hal_t * | hal, |
| ocs_hal_io_t * | io | ||
| ) |
Allocate a WQ to an IO object.
The next work queue index is used to assign a WQ to an IO.
If wq_steering is OCS_HAL_WQ_STEERING_CLASS, a WQ from io->wq_class is selected.
If wq_steering is OCS_HAL_WQ_STEERING_REQUEST, then a WQ from the EQ that the IO request came in on is selected.
If wq_steering is OCS_HAL_WQ_STEERING_CPU, then a WQ associted with the CPU the request is made on is selected.
| hal | pointer to HAL object |
| io | pointer to IO object |
Definition at line 1053 of file ocs_hal_queues.c.
|
inlinestatic |
Definition at line 136 of file ocs_hal_queues.h.
|
inlinestatic |
Definition at line 142 of file ocs_hal_queues.h.