Fast IPC path on IA32
Alexei Mandrykine <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
Hello l4ka.
The code of Fast IPC path on IA32 is broken.
At least on CVS state on 2006 August 10.
I spent about two weeks to find why a signal handler does not work
correctly. The signal handler emaultes signal delivery via
L4_ExchangeRegisters syscal.
In case of receiving phase of IPC has to be aborted, application
generating strange exception - "kernel access raised user pagefault".
The reason of this exception is tcb_t::return_from_ipc(void) {glue/v4-ia32/tcb.h},
that returns to 'fp_ipc_done' {glue/v4-ia32/trap.S}. At this point ESI conveys MR0
value, but 'fp_ipc_done' uses ESI as pointer to current TCB.
This bug does not appear if kernel compiled without "Fast IPC path" feature.
--
Regards,
Aleksey Mandrykin mailto:[email protected]