diff options
author | Bud Grise <griseb@cisco.com> | 2016-02-12 10:36:11 -0500 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2016-04-25 13:27:45 +0000 |
commit | 68adab9267e6194e96d3ca4c325a9f8dae2e3120 (patch) | |
tree | a51edcc6b65b88bcbc9324a0baa6c80345a78c84 /vlib | |
parent | a30d40d33c308c254414835e116db1d72c204b50 (diff) |
Allow the number of elements in a frame queue to be specified per thread.
Change-Id: I026a61a943960dc52539565968a942fbd851da93
Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
Diffstat (limited to 'vlib')
-rw-r--r-- | vlib/vlib/threads.c | 7 | ||||
-rw-r--r-- | vlib/vlib/threads.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/vlib/vlib/threads.c b/vlib/vlib/threads.c index a2ab0d84750..32ebdfe761d 100644 --- a/vlib/vlib/threads.c +++ b/vlib/vlib/threads.c @@ -631,7 +631,12 @@ static clib_error_t * start_workers (vlib_main_t * vm) continue; /* Allocate "to-worker-N" frame queue */ - fq = vlib_frame_queue_alloc (FRAME_QUEUE_NELTS); + if (tr->frame_queue_nelts) { + fq = vlib_frame_queue_alloc (tr->frame_queue_nelts); + } else { + fq = vlib_frame_queue_alloc (FRAME_QUEUE_NELTS); + } + vec_validate (vlib_frame_queues, worker_thread_index); vlib_frame_queues[worker_thread_index] = fq; diff --git a/vlib/vlib/threads.h b/vlib/vlib/threads.h index ce93b2c67cb..f13d3768e42 100644 --- a/vlib/vlib/threads.h +++ b/vlib/vlib/threads.h @@ -37,6 +37,8 @@ typedef struct vlib_thread_registration_ { int fixed_count; u32 count; int no_data_structure_clone; + u32 frame_queue_nelts; + /* All threads of this type run on pthreads */ int use_pthreads; u32 first_index; |