vpp框架中的结构体分析

vlib_main_t

typedef struct vlib_main_t

{

  CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); //指定结构体按照64字节对齐,提高缓存命中

  /*指令级别的时间. */

  clib_time_t clib_time;

  /*主线程时间偏移*/

  f64 time_offset;

  f64 time_last_barrier_release;

 

  /*最后一个节点调度的时间戳. */

  u64 cpu_time_last_node_dispatch;

 

  /* 开启主线程时的时间戳. */

  u64 cpu_time_main_loop_start;

 

  /* 主循环递增次数. */

  u32 main_loop_count;

 

  /*主循环中vectorsnodes计数. */

  u32 main_loop_vectors_processed;

  u32 main_loop_nodes_processed;

 

  /* 内部节点vectorscalls*/

  u64 internal_node_vectors;

  u64 internal_node_calls;

  u64 internal_node_vectors_last_clear;

  u64 internal_node_calls_last_clear;

 

  /* 即时向量速率 */

  u32 internal_node_last_vectors_per_main_loop;

 

  /* 主循环 hw/sw 性能计数器*/

  void (**vlib_node_runtime_perf_counter_cbs) (struct vlib_main_t *,

                                                      u64 *, u64 *,

                                                      vlib_node_runtime_t *,

                                                      vlib_frame_t *, int);

  void (**vlib_node_runtime_perf_counter_cb_tmp) (struct vlib_main_t *,

                                                          u64 *, u64 *,

                                                          vlib_node_runtime_t *,

                                                          vlib_frame_t *, int);

  /* Every so often we switch to the next counter. */

#define VLIB_LOG2_MAIN_LOOPS_PER_STATS_UPDATE 7

 

  /*跳转退出主循环. */

  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

  /* Exit via CLI. */

#define VLIB_MAIN_LOOP_EXIT_CLI 2

 

  /*退出主循环时候的出错标记. */

  clib_error_t *main_loop_error;

 

  /*名称,例如:syslog. */

  char *name;

 

  /* 堆的开始. */

  void *heap_base;

 

  /* 截断版本,帧的索引*/

  void *heap_aligned_base;

 

  /* 堆的大小 */

  uword heap_size;

 

  /* 缓存区主体结构. */

  vlib_buffer_main_t *buffer_main;

 

  /* 物理内存主体结构. */

  vlib_physmem_main_t physmem_main;

 

  /*

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值