新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
稍有积蓄, 积分 469, 距离下一级还需 31 积分
论坛徽章:0
#if NR_CPUS & 1
#define num_online_cpus()& & cpus_weight(cpu_online_map)
#define num_possible_cpus()& & cpus_weight(cpu_possible_map)
#define num_present_cpus()& & cpus_weight(cpu_present_map)
#define cpu_online(cpu)& && &&&cpu_isset((cpu), cpu_online_map)
#define cpu_possible(cpu)& & cpu_isset((cpu), cpu_possible_map)
#define cpu_present(cpu)& & cpu_isset((cpu), cpu_present_map)
#define num_online_cpus()& & 1
#define num_possible_cpus()& & 1
#define num_present_cpus()& & 1
#define cpu_online(cpu)& && &&&((cpu) == 0)
#define cpu_possible(cpu)& & ((cpu) == 0)
#define cpu_present(cpu)& & ((cpu) == 0)
#ifdef CONFIG_SMP
extern int nr_cpu_ids;
#define any_online_cpu(mask) __any_online_cpu(&(mask))
int __any_online_cpu(const cpumask_t *mask);
#define nr_cpu_ids& && && && &1
#define any_online_cpu(mask)& && &&&0
NR_CPUS 应该是配置内核的时候配置的cpu数量, nr_cpu_ids感觉是当前正在使用的cpu内核数量,不知道对不对
那num_online_cpus() num_possible_cpus() num_present_cpus() 这几个都是什么意思呢
因为看slub.c的时候,看到kmem_cache_init的时候,里面对kmem_cache结构体的大小重新进行了计算,使用的是nr_cpu_ids,
& & kmem_size = offsetof(struct kmem_cache, cpu_slab) +
& && && && && & nr_cpu_ids * sizeof(struct page *);
比较糊涂,这几个表示cpu数量的表达式究竟怎么用.谢谢
& |& & |& & |& & |& 
白手起家, 积分 2, 距离下一级还需 198 积分
论坛徽章:0
你理解了吗?顺便给我说说。回复
论坛徽章:36
num_online_cpus() 这个应该指的是活动的 CPU 的数目。、
白手起家, 积分 17, 距离下一级还需 183 积分
论坛徽章:0
#define num_online_cpus()& & cpus_weight(cpu_online_map)& && && &处理器Online个数,有多少CPU可以参与中断处理, 童工CPU UP/DOWN改变
#define num_possible_cpus()& & cpus_weight(cpu_possible_map)&&系统present的cpu个数,仅仅是present并非是ONLINE在有CPU热插拔支持的情况下num_possible_cpus=num_present_cpus,一般情况等于
#define num_present_cpus()& & cpus_weight(cpu_present_map)
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处