Hi all, Forgive me if this is a silly question because it is documented somewhere, but I am unfamiliar with Fiasco source, and too in a hurry to go through all the Fiasco source code and cross-comare it with the documentation/papers/examples etc.... Skimming though Fiasco source code I checked out few weeks ago (the Doxygen online version is from 2005, out of date), I found 16 "Proc::preemption_point();" in the IPC path in the source file thread-ipc.cpp: [sergio 19:41 ~/Desktop/FIASCO/tudos/kernel/fiasco/src/kern]$ grep Proc::preemption_point thread-ipc.cpp | wc -l 16 Which tudos/kernel/fiasco/src/drivers/processor.cpp defines as: ... static inline void preemption_point() { sti(); irq_chance(); [ NOP NOP ] cli(); } ... My question is: As far as I know, Fiasco is entirely preemptable. Then why sprinkling the IPC path with Enable IRQs/NOP NOP/Disable IRQs ? Is there a document or a paper that discuss which parts of the kernel run with IRQs disabled / enabled ? Preemption disabled / enabled etc. ? Thanks in advance, Sergio -- Sergio Ruocco, PhD Research Fellow ruocco@disco.unimib.it / sergio.ruocco@gmail.com NOMADIS Lab. phone: +39-02-6448-7879 mobile, embedded real-time systems skype: 'sergioruocco' Università degli Studi di Milano-Bicocca, Italy