作者:熊熊oO7sloveV | 来源:互联网 | 2023-08-07 08:50
Ihavemykernelmodulethatreceivesinterrupt(top-half)fromtheexternalGPIOpinchange.我的
- I have my kernel module that receives interrupt (top-half) from the external GPIO pin change.
- 我的内核模块接收来自外部GPIO pin更改的中断(上半部分)。
- After receiving the interrupt, kernel module should wake up or somehow invoke the function/thread in the user-space that will start processing. Time is very limited.
- 在接收到中断之后,内核模块应该唤醒,或者以某种方式调用用户空间中将要开始处理的函数/线程。时间是非常有限的。
- No data needs to be sent, just the signal.
- 不需要发送数据,只需要发送信号。
- CPU is multicore, user-space app will have affinity to one core.
- CPU是多核的,用户空间应用会与一个核心有亲和力。
There are so many ways to do kernel-userspace communication. Which one has the lowest latency? (i.e. the time between ISR and waking up the function).
有很多方法可以进行内核-用户空间通信。哪个延迟最小?(即ISR和唤醒函数之间的时间)。
(Side note: Yes, I can benchmark them, the reason I'm asking the question is because I may not know about every possible solution)
(附带说明:是的,我可以对它们进行基准测试,我问这个问题的原因是我可能不知道所有可能的解决方案)
2 个解决方案