linux内核中CONFIG_HZ的修改方法

转载:http://blog.sina.com.cn/s/blog_dc8ea1b00101k2ai.html

CONFIG_HZ 决定了jiffies一次的时钟滴答,影响系统的调度和性能。

一般在内核中固定好的,不能在.config中强制修改,因为不会生效,一旦执行了menuconfig又会变为内核默认的。

在param.h文件中这样定义

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. #ifndef __ASM_PARAM_H   
  2. #define __ASM_PARAM_H   
  3.   
  4. #ifdef __KERNEL__   
  5. # define HZ     CONFIG_HZ      
  6. # define USER_HZ    100        
  7. # define CLOCKS_PER_SEC (USER_HZ)      
  8. #else   
  9. # define HZ     100   
  10. #endif   
  11.   
  12. #define EXEC_PAGESIZE   4096   
  13.   
  14. #ifndef NOGROUP   
  15. #define NOGROUP         (-1)   
  16. #endif   
  17.   
  18.   
  19. #define MAXHOSTNAMELEN  64   
  20.   
  21. #endif  

在这里修改的话。编译的时候会在timeconst.h(由脚本timeconst.pl自动生成的文件)报错

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. #if HZ != 256   
  2. #error "kernel/timeconst.h has the wrong HZ value!"   
  3. #endif  

可以这样修改:
在arch/arm/Kconfig中

看到 

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. config HZ  
  2.     int  
  3.     default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \  
  4.         ARCH_S5PV210 || ARCH_EXYNOS4  
  5.     default AT91_TIMER_HZ if ARCH_AT91  
  6.     default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE  
  7.     default 100  

这样可以修改默认值 200.

为了能在menuconfig中修改这个值,可以添加字符串。
修改成

[cpp] view plaincopyprint?在CODE上查看代码片派生到我的代码片

  1. config HZ  
  2.     int "TIME HZ"  
  3.     default 256 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 || \  
  4.         ARCH_S5PV210 || ARCH_EXYNOS4  
  5.     default AT91_TIMER_HZ if ARCH_AT91  
  6.     default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE  
  7.     default 100  

猜你喜欢

转载自blog.csdn.net/zjy900507/article/details/88986940