FD.io VPP  v18.07.1-19-g511ce25
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   32
 
#define BARRIER_MINIMUM_OPEN_LIMIT   0.001
 
#define BARRIER_MINIMUM_OPEN_FACTOR   3
 

Functions

u32 vl (void *p)
 
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 clib_error_tvlib_launch_thread_int (void *fp, vlib_worker_thread_t *w, unsigned lcore_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)
 
static clib_error_tshow_clock_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
 

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
 
static vlib_cli_command_t f_command
 (constructor) VLIB_CLI_COMMAND (f_command) More...
 

Macro Definition Documentation

#define BARRIER_MINIMUM_OPEN_FACTOR   3

Definition at line 1440 of file threads.c.

#define BARRIER_MINIMUM_OPEN_LIMIT   0.001

Definition at line 1436 of file threads.c.

#define FRAME_QUEUE_NELTS   32

Definition at line 27 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 249 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 244 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 234 of file threads.c.

+ Here is the caller graph for this function:

static void barrier_trace_sync_rec ( f64  t_entry)
inlinestatic

Definition at line 239 of file threads.c.

+ Here is the caller graph for this function:

static uword* clib_sysfs_list_to_bitmap ( char *  filename)
static

Definition at line 292 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 1254 of file threads.c.

+ Here is the call graph for this function:

uword os_get_nthreads ( void  )

Definition at line 255 of file threads.c.

+ Here is the caller graph for this function:

static clib_error_t* show_clock_command_fn ( vlib_main_t vm,
unformat_input_t input,
vlib_cli_command_t cmd 
)
static

Definition at line 1889 of file threads.c.

+ Here is the call graph for this function:

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

Definition at line 282 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 718 of file threads.c.

+ Here is the call graph for this function:

clib_error_t* threads_init ( vlib_main_t vm)

Definition at line 1880 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 1240 of file threads.c.

+ Here is the caller graph for this function:

u32 vl ( void *  p)

Definition at line 30 of file threads.c.

+ Here is the caller graph for this function:

void vl_msg_api_handler_no_free ( void *  v)

Definition at line 510 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 476 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 1656 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 1818 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  lcore_id 
)
static

Definition at line 692 of file threads.c.

+ 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 1857 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 1868 of file threads.c.

+ Here is the caller graph for this function:

void vlib_set_thread_name ( char *  name)

Definition at line 267 of file threads.c.

+ Here is the caller graph for this function:

void vlib_stat_segment_lock ( void  )

Definition at line 1534 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 1540 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 1844 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 322 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 1545 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 1444 of file threads.c.

+ Here is the call graph for this function:

void* vlib_worker_thread_bootstrap_fn ( void *  arg)

Definition at line 674 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 1784 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 1406 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 637 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 1075 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 1230 of file threads.c.

+ Here is the caller graph for this function:

void vnet_main_fixup ( vlib_fork_fixup_t  which)

Definition at line 1401 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 1023 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 25 of file threads.c.

vlib_cli_command_t f_command
static
Initial value:
=
{
.path = "show clock",
.short_help = "show clock",
.function = show_clock_command_fn,
}
static clib_error_t * show_clock_command_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd)
Definition: threads.c:1889

(constructor) VLIB_CLI_COMMAND (f_command)

Definition at line 1918 of file threads.c.

void* rpc_call_main_thread_cb_fn

Definition at line 1865 of file threads.c.

vlib_thread_main_t vlib_thread_main

Definition at line 36 of file threads.c.

vlib_worker_thread_t* vlib_worker_threads

Definition at line 35 of file threads.c.