gpt4 book ai didi

Linux 内核定时器 init_timer。如果调用多次会怎样?

转载 作者:太空宇宙 更新时间:2023-11-04 09:38:57 31 4
gpt4 key购买 nike

我正在尝试寻找一个错误,该错误会导致 PC 在 get_next_timer_interrupt() 代码周围有时在 run_timer_softirq() 间歇性崩溃

我发现一个驱动程序可能经常调用 init_timer() 并传递相同的静态参数。 (计时器列表)

这会导致问题吗?

init_timer 究竟做了什么,是否有相反的函数来销毁它?

谢谢

最佳答案

多次调用 init_timer() 应该不会造成任何问题。最终调用的代码is :

621 static void do_init_timer(struct timer_list *timer, unsigned int flags,
622 const char *name, struct lock_class_key *key)
623 {
624 struct tvec_base *base = __raw_get_cpu_var(tvec_bases);
625
626 timer->entry.next = NULL;
627 timer->base = (void *)((unsigned long)base | flags);
628 timer->slack = -1;
629 #ifdef CONFIG_TIMER_STATS
630 timer->start_site = NULL;
631 timer->start_pid = -1;
632 memset(timer->start_comm, 0, TASK_COMM_LEN);
633 #endif
634 lockdep_init_map(&timer->lockdep_map, name, key, 0);
635 }

它被一些向下调用它的宏调用。开始here跟随流程。

关于Linux 内核定时器 init_timer。如果调用多次会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23399090/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com