0
運行,我需要使用情境在我類似ucontext.h確實x86平臺在Linux中切換,將上下文切換與Xenomai
但不幸的是ucontext使用的內核調用來做到這一點。 在我的Xenomai環境中,任何內核函數調用都會將系統轉換爲輔助模式(linux調度)
那麼如何在不留下用戶空間的情況下在x86平臺上切換上下文並存儲FPU寄存器?
運行,我需要使用情境在我類似ucontext.h確實x86平臺在Linux中切換,將上下文切換與Xenomai
但不幸的是ucontext使用的內核調用來做到這一點。 在我的Xenomai環境中,任何內核函數調用都會將系統轉換爲輔助模式(linux調度)
那麼如何在不留下用戶空間的情況下在x86平臺上切換上下文並存儲FPU寄存器?
我找到了解決方案。使用longjmp而不是swapcontext可以執行相同的操作,但不會執行內核調用,也不會將系統切換到輔助模式。
解決方案在這裏找到: http://www.1024cores.net/home/lock-free-algorithms/tricks/fibers
你從哪裏弄來'ucotext.h'?這個'ucotext.h'做了什麼?你的問題需要更清楚。 – 2014-09-30 08:27:46
對不起。我的意思是ucontext.h。這是標準的glibc函數 – picoworm 2014-10-01 07:07:34
'ucontext'不使用內核調用來切換上下文。確實,它會調用內核,但這只是爲了更新信號掩碼(它應該具有可預測的性能,並且肯定不會阻止)。如果即使影響Xenomai,你仍然更喜歡'ucontext'的替代品,我想你可以從glibc複製代碼,並刪除信號掩碼的更新。 – Dolda2000 2014-10-16 16:27:51