clarification on explicit preemption points in Fiasco IPC

View: New views
1 Messages — Rating Filter:   Alert me  

clarification on explicit preemption points in Fiasco IPC

by Sergio Ruocco :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


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@... / sergio.ruocco@...            NOMADIS Lab.
phone: +39-02-6448-7879               mobile, embedded real-time systems
skype: 'sergioruocco'    Università degli Studi di Milano-Bicocca, Italy


[sruocco.vcf]

begin:vcard
fn:Sergio Ruocco
n:Ruocco;Sergio
email;internet:sruocco@...
version:2.1
end:vcard