Linux桥 - 你好并保持定时器

时间:2014-03-12 10:08:37

标签: networking linux-kernel network-programming

我正在开发一个小型Linux嵌入式网络桥接设备(带有2.6 Tickless Kernel)。

我正在尝试减少CPU唤醒时间(当系统空闲时)并检查可以避免哪些定时器。

我注意到虽然在网桥上明确禁用了STP,但是hello计时器和保持计时器每2秒(默认时间)到期。

echo 1 > /proc/timer_stats; sleep 30; echo 0 > /proc/timer_stats ; cat /proc/timer_stats

Timer Stats Version: v0.2
Sample period: 30.016 s
  1,     1 init             hrtimer_start_range_ns (hrtimer_wakeup)
  15,     0 swapper          br_transmit_config (br_hold_timer_expired)
  15,     0 swapper          run_timer_softirq (br_hello_timer_expired)
  15,     5 events/0         worker_thread (delayed_work_timer_fn)
  2D,     5 events/0         neigh_periodic_work (delayed_work_timer_fn)
  1,   502 sleep            hrtimer_start_range_ns (hrtimer_wakeup)
  5,     0 swapper          run_timer_softirq (sync_supers_timer_fn)
  5,    10 bdi-default      bdi_forker_task (process_timeout)
  2D,     5 events/0         neigh_periodic_work (delayed_work_timer_fn)
  1,     5 events/0         worker_thread (delayed_work_timer_fn)
  1,   548 sleep            hrtimer_start_range_ns (hrtimer_wakeup)
63 total events, 2.098 events/sec

查看内核桥接代码,无论STP模式如何(禁用/启用),似乎都会设置这些定时器。

一种方法可能是让计时器的到期时间更长(brctl sethello br0 30),虽然不理想但还可以。

另一种方法是修补内核,以便在禁用STP时不会进行定时器初始化,修补内核也不理想。

即使STP被禁用,是否有理由初始化这些定时器?

有没有人有不同的想法/方法?

由于

0 个答案:

没有答案