当前位置: 技术问答>linux和unix
有关定时器在多核CPU上运行的一个问题?
来源: 互联网 发布时间:2016-08-12
本文导语: 大家好,请教一个问题 现在公司用一款CPU是MIPS34K核的,里面有7个TC,内核把它当成7个CPU 现在我写了个内核模块,在insmod模块的时候注册了一个定时器,每100ms执行一个函数,那么该函数是在哪个CPU上执行的呢?有...
大家好,请教一个问题
现在公司用一款CPU是MIPS34K核的,里面有7个TC,内核把它当成7个CPU
现在我写了个内核模块,在insmod模块的时候注册了一个定时器,每100ms执行一个函数,那么该函数是在哪个CPU上执行的呢?有没有办法知道?
我现在知道如何看哪个进程在哪个CPU上运行,可是我注册的定时器不是一个进程,没法查看运行在哪个CPU上。
恳请大家指教,谢谢~~~
现在公司用一款CPU是MIPS34K核的,里面有7个TC,内核把它当成7个CPU
现在我写了个内核模块,在insmod模块的时候注册了一个定时器,每100ms执行一个函数,那么该函数是在哪个CPU上执行的呢?有没有办法知道?
我现在知道如何看哪个进程在哪个CPU上运行,可是我注册的定时器不是一个进程,没法查看运行在哪个CPU上。
恳请大家指教,谢谢~~~
|
int cpu;
cpu = smp_processor_id();
cpu = smp_processor_id();
|
大体看懂了LZ的问题,不知道是不是与中断在哪个CPU有关。当然,也有方式设置进程的亲合度。
|
定时器应该在注册它的同一CPU上运行,即当前注册的处理器才会拥有该定时器。
因此,只要保证任务的affinity设置在注册之前完成就可以了。
因此,只要保证任务的affinity设置在注册之前完成就可以了。
|
没有中断号的中断无论软硬都不存在的。