I've found that this code is not wrong. The problem was from IPC control in thread-ipc.c
in sys-ipc() function, the kernel check whether the ipc is next_period() or not, but the check function is wrong i think because the function returns always "FALSE".
That means that there is no next_period() ipc.
so I've changed the code in shared/entry_frame-ia32-ux.cpp line 110
return false;
-->
return (_ecx == 0x04000400 && _esi == 0);
I'm not sure that this code does not affect to the other ipc. However it is executing quite well.
Jungwoo Yang.
l4-hackers@os.inf.tu-dresden.de