linux 3.10 Broadcast timer无法使用

SMP系统,内核选项CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y

内核经常在启动过程中挂掉,偶尔能启动到命令行时,查看/proc/interrupt,其中的timer也不会增加。
# cat /proc/interrupts
           CPU0       CPU1      
 57:       6697          0       GIC  timer
IPI0:          0          1  CPU wakeup interrupts
IPI1:          0          0  Timer broadcast interrupts

 

但是在3.4内核上,是正常的:

# cat /proc/interrupts
           CPU0       CPU1      
 57:       8596          0       GIC  timer
IPI0:          0       8560  Timer broadcast interrupts

 

在git记录中找到这个修改,这个修改导致了在3.10中无法使用broadcast。

commit f7db706b132f11c79ae1d74b2382e0926cf31644
Author: Santosh Shilimkar <santosh.shilimkar@ti.com>
Date:   Thu Mar 14 10:03:03 2013 +0100

    ARM: 7674/1: smp: Avoid dummy clockevent being preferred over real hardware clock-event
    diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index 31644f1..79078ed 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -480,7 +480,7 @@ static void __cpuinit broadcast_timer_setup(struct clock_event_device *evt)
        evt->features   = CLOCK_EVT_FEAT_ONESHOT |
                          CLOCK_EVT_FEAT_PERIODIC |
                          CLOCK_EVT_FEAT_DUMMY;
-       evt->rating     = 400;
+       evt->rating     = 100;
        evt->mult       = 1;
        evt->set_mode   = broadcast_timer_set_mode;
所以将这个修改回退就可以了,但是内核maintainer强烈建议使用local timer.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值