首页 > 其他分享 >cpu亲和性相关函数和宏 基础讲解[cpu_set_t]

cpu亲和性相关函数和宏 基础讲解[cpu_set_t]

时间:2023-10-15 17:22:59浏览次数:41  
标签:set 亲和性 CPU srcset1 集合 srcset2 cpu

cpu亲和性相关函数和宏讲解:

写在前面:

  1. 我在查找关于linux cpu宏函数没看到有对宏函数基础的、详细的讲解,笔者便通过官方文档入手,对次进行的翻译和理解希望能帮到对这方面宏有疑惑的读者
  2. explain: /elem/ 表示为elem变量,这样子便于区分

P.S:#include <sched.h>

  1. 动态范围cpu设置
    /**
    * @description: 因为某些应用程序需要动态大小的cpu集合;如今GLIBC提供了一套宏支持这一点
    *  以下函数用来分发和释放cpu集合
    */
           cpu_set_t *CPU_ALLOC(int num_cpus);
                  分配足够大的 CPU 集以容纳该(动态)范围内的 CPU
                  该动态集合范围为: 0 到 num_cpus-1
    ​
           size_t CPU_ALLOC_SIZE(int num_cpus);
                  返回cpu集合的大小,但前提范围是合法的【0 to num_cpus-1】,
                  这个宏提供了能够设置CPU _*_ s()宏中的参数etsize的值 
    ​
           void CPU_FREE(cpu_set_t *set);
                  释放cpu集 CPU_ALLOC().
  2. 基础宏设置
     1 /**
     2 * @description: 这些宏被用来提供对CPU集合 set 的设置
     3 */
     4        void CPU_ZERO(cpu_set_t *set);
     5               清除设置,让/set/集合不包含cpu
     6 ​
     7        void CPU_SET(int cpu, cpu_set_t *set);
     8               添加/cpu/到/set/集合
     9 ​
    10        void CPU_CLR(int cpu, cpu_set_t *set);
    11               从集合/set/中 移除指定/cpu/ 
    12 ​
    13        int  CPU_ISSET(int cpu, cpu_set_t *set);
    14               测试以查看CPU /cpu/是否是集合/set/的成员
    15 ​
    16        int  CPU_COUNT(cpu_set_t *set);
    17               返回集合/set/中有多少个cpu【应该是cpu的数量?】
    18         /**系统中第一个cpu对应的/cpu/值为0,第二个cpu的索引/cpu/值为1,以此类推
    19          *不应该对 特定的CPU值的可用 或者 CPU连续的集合是连续 进行假设,因为CPU可以动态脱机或以其他方式不存在
    20 /**
    21 * @description: 这些宏被用来提供对CPU集合 set 的逻辑操作
    22 */ 
    23        void CPU_AND(cpu_set_t *destset,
    24                     cpu_set_t *srcset1, cpu_set_t *srcset2);
    25               将/srcset1/和/srcset2/的 交集 存储在/destset/【可能是源集之一(当srcset1 == srcset2)】
    26 ​
    27        void CPU_OR(cpu_set_t *destset,
    28                     cpu_set_t *srcset1, cpu_set_t *srcset2);
    29               将/srcset1/和/srcset2/的 并集 存储在/destset/【可能是源集之一(当
    30 ​
    31        void CPU_XOR(cpu_set_t *destset,
    32                     cpu_set_t *srcset1, cpu_set_t *srcset2);
    33              将/srcset1/和/srcset2/的 异或集【XOR】 存储在/destset/ 
    34              XOR意思是,/srcset1/和/srcset2/中有其中一个(集合)存在的信息,另一个(集合)不存在的信息,所有符合这些的信息将被存放于接收集合/destset/ 
    35 ​
    36        int  CPU_EQUAL(cpu_set_t *set1, cpu_set_t *set2);
    37               测试两个集合/set1/和/set2/中是否有相同的CPU
    38               // return 1 it mean equal, 0 for unequal
  3. 带_s 的宏多用于对指定函数的扩展,文档里面没有仔细说明,但基础思路应该并无二致,有需要的可在此基础阅读查阅

    source:源码

标签:set,亲和性,CPU,srcset1,集合,srcset2,cpu
From: https://www.cnblogs.com/io-T-T/p/17765836.html

相关文章

  • 完美解决XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root‘
    完美解决XDG_RUNTIME_DIRnotset,defaultingto‘/tmp/runtime-root‘源代码杀手已于2023-01-1112:53:46修改阅读量4.1w收藏49点赞数13分类专栏:报错记录文章标签:linux版权报错记录专栏收录该内容19篇文章0订阅订阅专栏警告:对Linux不熟悉的人慎重使用,为了保险起......
  • mysql报错:You must reset your password using ALTER USER statement before executin
    新安装mysql后,登录后,执行任何命令都会报错:YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement.【解决办法】MySQL版本5.7.6版本以前用户可以使用如下命令:mysql>SETPASSWORD=PASSWORD('Admin2022!');MySQL版本5.7.6版本开始的用户可以使......
  • <script setup> 语法糖作用
    <scriptsetup>constmsg='信息详情'constclickMsg=()=>{console.log(2223323)}</script><template><div>{{msg}}</div><br><button@click="clickMsg">按钮</button></tem......
  • 6.7集合set
      ......
  • 6.8集合set练习题
      ......
  • Python 集合(Sets)3
    Python-合并集合在Python中,有几种方法可以合并两个或多个集合。您可以使用union()方法,该方法返回一个包含两个集合中所有项的新集合,或使用update()方法,将一个集合中的所有项插入另一个集合中:示例,union()方法返回一个包含两个集合中所有项的新集合:set1={"a","b","c"}se......
  • elasticsearch通过Java class类的@Setting和@Mapping来定义索引index
    今天就来和大家讲讲如何将es索引中的mapping和setting在索引index和class联系起来,其实在这个问题也困扰我好久了,一直没有解决,在elasticsearch7.x版本的时候貌似好像可以用request在程序中来建立索引,像Stringindex=“{“mapping”:...}”之类的操作,干起来比较复杂,在elasticsear......
  • 5771: 小明的账单 multiset
    描述  小明在一次聚会中,不慎遗失了自己的钱包,在接下来的日子,面对小明的将是一系列的补卡手续和堆积的账单…在小明的百般恳求下,老板最终同意延缓账单的支付时间。可老板又提出,必须从目前还没有支付的所有账单中选出面额最大和最小的两张,并把他们付清。还没有支付的账单会被......
  • hashcat charsets文件夹下 .hcchr自定义字符集
    说明通常我们使用的是英文字符,abc123这些,但是如果遇到俄文、阿拉伯等一些非ASCII码的字符集,每次手动输入不现实。所以就可以保存到.hcchr文件中一、先看看,hashcat提供內建字符集?l=abcdefghijklmnopqrstuvwxyz?u=ABCDEFGHIJKLMNOPQRSTUVWXYZ?d=0123456789?s=......
  • 资源调度 —— StatefulSet(针对部署的有状态应用)
    三、StatefulSet(针对部署的有状态应用)有状态很依赖本地文件、网络资源等。不像无状态应用想扩容就扩容。一)功能1、创建2、扩容缩容3、镜像更新RollingUpdate4、灰度发布OnDelete5、删除6、删除pvc二)配置文件---apiVersion:v1kind:Servicemetadata:name:ng......