kswapd_init()函数详解



kswapd进程就是专司定期将页面换出的守护神,它使用的是内核的地址空间

static int __init kswapd_init(void)
{
    int nid;

    swap_setup();//根据物理内存大小设置设定全局量page_cluster,磁盘读道是个费时操作,每次读一个页面过于浪费,每次多读几个,这个量就要根据实际物理内存大小来确定
    /*UMA结构中,循环一次,创建内核线程kswapd,做页面换出*/
    for_each_node_state(nid, N_MEMORY)
         kswapd_run(nid);

/*这是和cpu热插拔选项相关的一个宏.主要是定义了一个结构体notifier_block变量,然后调用register_cpu_notifier()将给定的参数(一般是个函数))注册.相当于一个CPU插拔动作的回调函数.例如kswapd线程初始化前,就注册了cpu_swap_callback函数.2.6内核中,每个节点都有一个kswapd线程.该函数的意思是当某个节点的cpu被拔下来以后,要将该CPU在内核中的私有数组(pagevec)里面的pages加入LRU队列.*/

    hotcpu_notifier(cpu_callback, 0);
    return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值