鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

代码实现

本特性主要新增类如表1所示。

表1 新增类的名称及其说明

类名

说明

Sched_affinity_manager

调度管理器接口。

  • 方法register_thread用于线程启动时向调度管理器注册自身,之后其调度由后者管理。
  • 方法unregister_thread用于线程销毁前向调度管理器注销自身。
  • 方法rebalance_group用于CPU core(s)相关参数变更时,更新调度管理器内部状态,以及存量线程的调度状态。
  • 方法update_numa_aware用于sched_affinity_numa_aware参数变更时,更新调度管理器内部状态,以及存量线程的调度状态。
  • 方法take_group_snapshot用于返回调度管理器内部状态的快照,字符串形式,由用户查询。
  • 方法get_total_node_number用于返回系统NUMA node总数。
  • 方法get_cpu_number_per_node用于返回系统每个NUMA node中的core数量。
  • 方法check_cpu_string用于检查用户传入的CPU core(s)参数的合法性。

Sched_affinity_manager_numa

调度管理器的实现。

Sched_affinity_manager_dummy

备份管理器的实现,所有接口的实现仅为返回符合调用者预期的值。

当Sched_affinity_manager_numa不可用时(如libnuma依赖不满足),启用Sched_affinity_manager_dummy。