Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
acl-plugin: implement an optional session reclassification when ACL is (re-)applied
[vpp.git]
/
src
/
vlib
/
main.h
diff --git
a/src/vlib/main.h
b/src/vlib/main.h
index
fb67334
..
57b1efb
100644
(file)
--- a/
src/vlib/main.h
+++ b/
src/vlib/main.h
@@
-58,6
+58,7
@@
typedef struct vlib_main_t
{
typedef struct vlib_main_t
{
+ CLIB_CACHE_LINE_ALIGN_MARK (cacheline0);
/* Instruction level timing state. */
clib_time_t clib_time;
/* Instruction level timing state. */
clib_time_t clib_time;
@@
-85,6
+86,8
@@
typedef struct vlib_main_t
/* Jump target to exit main loop with given code. */
u32 main_loop_exit_set;
/* Jump target to exit main loop with given code. */
u32 main_loop_exit_set;
+ /* Set e.g. in the SIGTERM signal handler, checked in a safe place... */
+ volatile u32 main_loop_exit_now;
clib_longjmp_t main_loop_exit;
#define VLIB_MAIN_LOOP_EXIT_NONE 0
#define VLIB_MAIN_LOOP_EXIT_PANIC 1
clib_longjmp_t main_loop_exit;
#define VLIB_MAIN_LOOP_EXIT_NONE 0
#define VLIB_MAIN_LOOP_EXIT_PANIC 1
@@
-101,9
+104,11
@@
typedef struct vlib_main_t
void *heap_base;
uword heap_size;
void *heap_base;
uword heap_size;
- vlib_buffer_main_t *buffer_main;
+ /* Pool of buffer free lists. */
+ vlib_buffer_free_list_t *buffer_free_list_pool;
- vlib_physmem_main_t physmem_main;
+ /* List of free-lists needing Blue Light Special announcements */
+ vlib_buffer_free_list_t **buffer_announce_list;
/* Allocate/free buffer memory for DMA transfers, descriptor rings, etc.
buffer memory is guaranteed to be cache-aligned. */
/* Allocate/free buffer memory for DMA transfers, descriptor rings, etc.
buffer memory is guaranteed to be cache-aligned. */
@@
-208,6
+213,9
@@
typedef struct vlib_main_t
/* Earliest barrier can be closed again */
f64 barrier_no_close_before;
/* Earliest barrier can be closed again */
f64 barrier_no_close_before;
+ /* Vector of pending RPC requests */
+ uword *pending_rpc_requests;
+
} vlib_main_t;
/* Global main structure. */
} vlib_main_t;
/* Global main structure. */
@@
-340,6
+348,9
@@
vlib_increment_main_loop_counter (vlib_main_t * vm)
vm->main_loop_nodes_processed = 0;
vm->vector_counts_per_main_loop[i] = v;
vm->node_counts_per_main_loop[i] = n;
vm->main_loop_nodes_processed = 0;
vm->vector_counts_per_main_loop[i] = v;
vm->node_counts_per_main_loop[i] = n;
+
+ if (PREDICT_FALSE (vm->main_loop_exit_now))
+ clib_longjmp (&vm->main_loop_exit, VLIB_MAIN_LOOP_EXIT_CLI);
}
always_inline void vlib_set_queue_signal_callback
}
always_inline void vlib_set_queue_signal_callback