FD.io VPP  v18.10-34-gcce845e
Vector Packet Processing
threads.c File Reference
+ Include dependency graph for threads.c:

Go to the source code of this file.

Macros

#define FRAME_QUEUE_NELTS   64
 
#define BARRIER_MINIMUM_OPEN_LIMIT   0.001
 
#define BARRIER_MINIMUM_OPEN_FACTOR   3
 

Functions

u32 vl (void *p)
 
u32 elog_global_id_for_msg_name (const char *msg_name)
 
static void barrier_trace_sync (f64 t_entry, f64 t_open, f64 t_closed)
 
static void barrier_trace_sync_rec (f64 t_entry)
 
static void barrier_trace_release_rec (f64 t_entry)
 
static void barrier_trace_release (f64 t_entry, f64 t_closed_total, f64 t_update_main)
 
uword os_get_nthreads (void)
 
void vlib_set_thread_name (char *name)
 
static int sort_registrations_by_no_clone (void *a0, void *a1)
 
static uwordclib_sysfs_list_to_bitmap (char *filename)
 
clib_error_tvlib_thread_init (vlib_main_t *vm)
 
vlib_frame_queue_tvlib_frame_queue_alloc (int nelts)
 
void vl_msg_api_handler_no_free (void *)
 
void vlib_worker_thread_init (vlib_worker_thread_t *w)
 
void * vlib_worker_thread_bootstrap_fn (void *arg)
 
static void vlib_get_thread_core_socket (vlib_worker_thread_t *w, unsigned cpu_id)
 
static clib_error_tvlib_launch_thread_int (void *fp, vlib_worker_thread_t *w, unsigned cpu_id)
 
static clib_error_tstart_workers (vlib_main_t *vm)
 
static void worker_thread_node_runtime_update_internal (void)
 
void vlib_worker_thread_node_refork (void)
 
void vlib_worker_thread_node_runtime_update (void)
 
u32 unformat_sched_policy (unformat_input_t *input, va_list *args)
 
static clib_error_tcpu_config (vlib_main_t *vm, unformat_input_t *input)
 
void vnet_main_fixup (vlib_fork_fixup_t which)
 
void vlib_worker_thread_fork_fixup (vlib_fork_fixup_t which)
 
void vlib_worker_thread_barrier_sync_int (vlib_main_t *vm)
 
void vlib_stat_segment_lock (void)
 
void vlib_stat_segment_unlock (void)
 
void vlib_worker_thread_barrier_release (vlib_main_t *vm)
 
int vlib_frame_queue_dequeue (vlib_main_t *vm, vlib_frame_queue_main_t *fqm)
 
void vlib_worker_thread_fn (void *arg)
 
 VLIB_REGISTER_THREAD (worker_thread_reg, static)
 
u32 vlib_frame_queue_main_init (u32 node_index, u32 frame_queue_nelts)
 
int vlib_thread_cb_register (struct vlib_main_t *vm, vlib_thread_callbacks_t *cb)
 
void vlib_process_signal_event_mt_helper (vlib_process_signal_event_mt_args_t *args)
 
void vlib_rpc_call_main_thread (void *callback, u8 *args, u32 arg_size)
 
clib_error_tthreads_init (vlib_main_t *vm)
 

Variables

 DECLARE_CJ_GLOBAL_LOG
 
vlib_worker_thread_tvlib_worker_threads
 
vlib_thread_main_t vlib_thread_main
 
void * rpc_call_main_thread_cb_fn
 

Macro Definition Documentation

#define BARRIER_MINIMUM_OPEN_FACTOR   3

Definition at line 1370 of file threads.c.

#define BARRIER_MINIMUM_OPEN_LIMIT   0.001

Definition at line 1366 of file threads.c.

#define FRAME_QUEUE_NELTS   64

Definition at line 28 of file threads.c.

Function Documentation

static void barrier_trace_release ( f64  t_entry,
f64  t_closed_total,
f64  t_update_main 
)
inlinestatic

Definition at line 142 of file threads.c.

+ Here is the caller graph for this function:

static void barrier_trace_release_rec ( f64  t_entry)
inlinestatic

Definition at line 120 of file threads.c.

+ Here is the caller graph for this function:

static void barrier_trace_sync ( f64  t_entry,
f64  t_open,
f64  t_closed 
)
inlinestatic

Definition at line 69 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void barrier_trace_sync_rec ( f64  t_entry)
inlinestatic

Definition at line 96 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static uword* clib_sysfs_list_to_bitmap ( char *  filename)
static

Definition at line 207 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* cpu_config ( vlib_main_t vm,
unformat_input_t input 
)
static

Definition at line 1200 of file threads.c.

+ Here is the call graph for this function:

u32 elog_global_id_for_msg_name ( const char *  msg_name)

Definition at line 47 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword os_get_nthreads ( void  )

Definition at line 170 of file threads.c.

+ Here is the caller graph for this function:

static int sort_registrations_by_no_clone ( void *  a0,
void *  a1 
)
static

Definition at line 197 of file threads.c.

+ Here is the caller graph for this function:

static clib_error_t* start_workers ( vlib_main_t vm)
static

Definition at line 654 of file threads.c.

+ Here is the call graph for this function:

clib_error_t* threads_init ( vlib_main_t vm)

Definition at line 1795 of file threads.c.

+ Here is the caller graph for this function:

u32 unformat_sched_policy ( unformat_input_t input,
va_list *  args 
)

Definition at line 1186 of file threads.c.

+ Here is the caller graph for this function:

u32 vl ( void *  p)

Definition at line 31 of file threads.c.

+ Here is the caller graph for this function:

void vl_msg_api_handler_no_free ( void *  v)

Definition at line 425 of file threads.c.

+ Here is the caller graph for this function:

vlib_frame_queue_t* vlib_frame_queue_alloc ( int  nelts)

Definition at line 391 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int vlib_frame_queue_dequeue ( vlib_main_t vm,
vlib_frame_queue_main_t fqm 
)

Definition at line 1558 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u32 vlib_frame_queue_main_init ( u32  node_index,
u32  frame_queue_nelts 
)

Definition at line 1720 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void vlib_get_thread_core_socket ( vlib_worker_thread_t w,
unsigned  cpu_id 
)
static

Definition at line 607 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* vlib_launch_thread_int ( void *  fp,
vlib_worker_thread_t w,
unsigned  cpu_id 
)
static

Definition at line 627 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_process_signal_event_mt_helper ( vlib_process_signal_event_mt_args_t args)

Definition at line 1772 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VLIB_REGISTER_THREAD ( worker_thread_reg  ,
static   
)

+ Here is the caller graph for this function:

void vlib_rpc_call_main_thread ( void *  callback,
u8 args,
u32  arg_size 
)

Definition at line 1783 of file threads.c.

+ Here is the caller graph for this function:

void vlib_set_thread_name ( char *  name)

Definition at line 182 of file threads.c.

+ Here is the caller graph for this function:

void vlib_stat_segment_lock ( void  )

Definition at line 1444 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_stat_segment_unlock ( void  )

Definition at line 1450 of file threads.c.

+ Here is the caller graph for this function:

int vlib_thread_cb_register ( struct vlib_main_t vm,
vlib_thread_callbacks_t cb 
)

Definition at line 1759 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vlib_thread_init ( vlib_main_t vm)

Definition at line 237 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_worker_thread_barrier_release ( vlib_main_t vm)

Definition at line 1455 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_worker_thread_barrier_sync_int ( vlib_main_t vm)

Definition at line 1374 of file threads.c.

+ Here is the call graph for this function:

void* vlib_worker_thread_bootstrap_fn ( void *  arg)

Definition at line 589 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_worker_thread_fn ( void *  arg)

Definition at line 1686 of file threads.c.

+ Here is the call graph for this function:

void vlib_worker_thread_fork_fixup ( vlib_fork_fixup_t  which)

Definition at line 1336 of file threads.c.

+ Here is the call graph for this function:

void vlib_worker_thread_init ( vlib_worker_thread_t w)

Definition at line 552 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_worker_thread_node_refork ( void  )

Definition at line 1021 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void vlib_worker_thread_node_runtime_update ( void  )

Definition at line 1176 of file threads.c.

+ Here is the caller graph for this function:

void vnet_main_fixup ( vlib_fork_fixup_t  which)

Definition at line 1331 of file threads.c.

+ Here is the caller graph for this function:

static void worker_thread_node_runtime_update_internal ( void  )
inlinestatic

Definition at line 969 of file threads.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

DECLARE_CJ_GLOBAL_LOG

Definition at line 26 of file threads.c.

void* rpc_call_main_thread_cb_fn

Definition at line 1780 of file threads.c.

vlib_thread_main_t vlib_thread_main

Definition at line 37 of file threads.c.

vlib_worker_thread_t* vlib_worker_threads

Definition at line 36 of file threads.c.