Chinaunix首页 | 论坛 | 博客
  • 博客访问: 795413
  • 博文数量: 264
  • 博客积分: 592
  • 博客等级: 中士
  • 技术积分: 1574
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-24 22:02
文章分类

全部博文(264)

文章存档

2019年(2)

2018年(1)

2017年(1)

2016年(4)

2015年(14)

2014年(57)

2013年(88)

2012年(97)

分类: LINUX

2014-02-12 15:35:02

转:http://blog.csdn.net/nerdx/article/details/12312325
  1. //ip子系统初始化  
  2. //调用路径inet_init->ip_init  
  3. //包括路由子系统的初始化,inet_peer缓存的初始化  
  4. 1.1 void __init ip_init(void)  
  5. {  
  6.     dev_add_pack(&ip_packet_type);//添加l3协议处理函数  
  7.     ip_rt_init(); //路由子系统初始化  
  8.     inet_initpeers();//inet_peer缓存  
  9. }  
  10.   
  11. //调用路径ip_init->inet_initpeers  
  12. //inet_peer缓存初始化  
  13. //  1.每一个与linux通过inet协议交换过数据的主机,都会被认为是一个ip peer,linux为每个peer分配一个inet_peer结构。  
  14. //  2.inet_peer的主要目的,使不同ip使用不同的ip id生成器。  
  15. //  3.系统中所有的inet_peer实例组织成一课avl树,方便查找。  
  16. 1.2 void __init inet_initpeers(void)  
  17. {  
  18.     struct sysinfo si;  
  19.   
  20.     //获取系统内存信息  
  21.     si_meminfo(&si);  
  22.     //系统中inet_peer数量的阀值  
  23.     if (si.totalram <= (32768*1024)/PAGE_SIZE)  
  24.         inet_peer_threshold >>= 1; /* max pool size about 1MB on IA32 */  
  25.     if (si.totalram <= (16384*1024)/PAGE_SIZE)  
  26.         inet_peer_threshold >>= 1; /* about 512KB */  
  27.     if (si.totalram <= (8192*1024)/PAGE_SIZE)  
  28.         inet_peer_threshold >>= 2; /* about 128KB */  
  29.     //inet_peer SLAB cache  
  30.     peer_cachep = kmem_cache_create("inet_peer_cache",  
  31.             sizeof(struct inet_peer),  
  32.             0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,  
  33.             NULL);  
  34.     //垃圾回收  
  35.     peer_periodic_timer.expires = jiffies  
  36.         + net_random() % inet_peer_gc_maxtime  
  37.         + inet_peer_gc_maxtime;  
  38.     add_timer(&peer_periodic_timer);  
  39. }  
阅读(455) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~