免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3490 | 回复: 7
打印 上一主题 下一主题

如何修改时钟中断精度变为1ms [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-31 11:10 |只看该作者 |倒序浏览
愁死了!

现在用的时钟中断精度不够,想修改/include/asm/param.h 中的宏定义
#define HZ 100变为#define HZ 1000 想通过这种方式将最小时钟中断精度由10ms变为1ms

然后重新编译内核进行升级,但是我不确定这样是不是可行,有没有哪位大侠能指导一下啊?下面是我现在环境的一些基本信息:

yellow dog linux 内核是2.4.22-2

机器的配置:
bash-2.05b$ cat /proc/cpuinfo

cpu             : 7455, altivec supported

clock           : 1249MHz

revision        : 3.3 (pvr 8001 0303)

bogomips        : 1248.46

machine         : PowerMac3,6

motherboard     : PowerMac3,6 MacRISC2 MacRISC Power Macintosh

board revision  : 00000001

detected as     : 129 (PowerMac G4 Windtunnel)

pmac flags      : 00000000

L2 cache        : 256K unified

memory          : 2048MB

pmac-generation : NewWorld

bash-2.05b$

论坛徽章:
0
2 [报告]
发表于 2008-01-31 11:11 |只看该作者

回复 #1 pegasus_qj 的帖子

我就想知道这样做是不是可行的,硬件是否能够支持!

论坛徽章:
0
3 [报告]
发表于 2008-01-31 12:52 |只看该作者
原帖由 pegasus_qj 于 2008-1-31 11:10 发表
愁死了!

现在用的时钟中断精度不够,想修改/include/asm/param.h 中的宏定义
#define HZ 100变为#define HZ 1000 想通过这种方式将最小时钟中断精度由10ms变为1ms

然后重新编译内核进行升级,但是我不确 ...

我想是可行的

论坛徽章:
0
4 [报告]
发表于 2008-01-31 13:32 |只看该作者
可行.....


        /*
         * Set the clock to HZ Hz, we already have a valid
         * vector now:
         */
        //0x34->binary,方式2,读/写指示位先读/写低字节,后读/写高字节,计数器选择,计数器0
        /*
A9A8A7A6A5A4A3A2A1A0        功能                    基本地址
0   0  0  1   0 × ×× 0  0        选中计数器0        40H
0   0  0  1   0 × ×× 0  1        选中计数器1        41H
0   0  0  1   0 × ×× 1  0        选中计数器2        42H
0   0  0  1   0 × ×× 1  1        选中控制寄存器        43H
(其他)    × ×× ××        芯片禁止
(说明:8253有32个地址,除基本地址外,其余为影像地址)
        */
        outb_p(0x34,0x43);                /* binary, mode 2, LSB/MSB, ch 0 */
        outb_p(LATCH & 0xff , 0x40);        /* LSB */
        outb(LATCH >> 8 , 0x40);        /* MSB */

* LATCH is used in the interval timer and ftape setup. */
//怎么计算的??
//要求一秒钟计时器中断100(HZ)次,因为加了HZ/2,略微少一点点
//latch 门插销
//latch=(1193180+50)/100=1193230/100=11932.3=0x2e9c
#define LATCH  ((CLOCK_TICK_RATE + HZ/2) / HZ)        /* For divider */

//接收主机板上的一个石英震荡器所产生的时脉,此震荡器每秒震荡 1193180 次
//或者说每秒1193180次中断
#define CLOCK_TICK_RATE        1193180 /* Underlying HZ 在下面的, 根本的, 潜在的, [商]优先的*/

论坛徽章:
0
5 [报告]
发表于 2008-02-01 13:20 |只看该作者
too frequent time interrupt will slow down system's performance. you may need reconsideration.

论坛徽章:
0
6 [报告]
发表于 2008-02-03 15:21 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2008-02-21 13:18 |只看该作者
我不太了解,性能降低会具体表现在什么地方呢?可不可以打个比方。

现在的情况是,我的代码需要用1ms的定时器,这个程序的整个过程该定时器会不停的发消息。

同时这台服务器将被多人同时访问。(暂且定为10人吧)

论坛徽章:
0
8 [报告]
发表于 2008-02-21 17:02 |只看该作者
原帖由 pegasus_qj 于 2008-2-21 13:18 发表
我不太了解,性能降低会具体表现在什么地方呢?可不可以打个比方。

现在的情况是,我的代码需要用1ms的定时器,这个程序的整个过程该定时器会不停的发消息。

同时这台服务器将被多人同时访问。(暂且定为 ...

楼上的楼上说的是给进程分配时间片过长或过短对性能的影响。
LZ这里是说的把时钟精度提高,和那个关系不大。时钟精度提高的性能影响主要在于增加了处理时钟中断的开销。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP