免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1610 | 回复: 5

[内核同步] 求问__per_cpu_offset [复制链接]

论坛徽章:
0
发表于 2014-04-02 14:49 |显示全部楼层
static void __init setup_per_cpu_areas(void)
{
        unsigned long size, i;
        char *ptr;
        unsigned long nr_possible_cpus = num_possible_cpus();

        /* Copy section for each CPU (we discard the original) */
        size = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES);
#ifdef CONFIG_MODULES
        if (size < PERCPU_ENOUGH_ROOM)
                size = PERCPU_ENOUGH_ROOM;
#endif
        ptr = alloc_bootmem(size * nr_possible_cpus);

        for_each_possible_cpu(i) {
                __per_cpu_offset[i] = ptr - __per_cpu_start;
                memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
                ptr += size;
        }
}

实在不明白__per_cpu_offset[i] = ptr - __per_cpu_start;是什么意思..

论坛徽章:
0
发表于 2014-04-02 14:53 |显示全部楼层
这个__per_cpu_start和__per_cpu_end之间内容不是会被free_initmem释放吗

论坛徽章:
0
发表于 2014-04-02 14:57 |显示全部楼层
书上说其中CPU n 对应的专有数据区的首地址为__per_cpu_offset[n]。为什么我觉得是偏移量,两个地址相减能减出首地址出来??

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2014-04-02 20:27 |显示全部楼层
回复 2# 黎明748


    哪里看到释放了?应该没释放。

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
发表于 2014-04-02 20:35 |显示全部楼层
本帖最后由 kiongf 于 2014-04-02 20:51 编辑

回复 1# 黎明748


          for_each_possible_cpu(i) {
                __per_cpu_offset = ptr - __per_cpu_start;
                memcpy(ptr, __per_cpu_start, __per_cpu_end - __per_cpu_start);
                ptr += size;
        }
  
      是偏移量。cpu 0: 偏移为0.  cpu 1: 偏移为size. cpu n: 偏移为 (n-1)*size

       percpu变量的存放,是这样一种形式:  变量A - |[cpu0][cpu1][cpu2]..| 变量B|[cpu0][cpu1][cpu2]..|

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
发表于 2014-04-03 08:45 |显示全部楼层
应该偏移量~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP