Bugs in Semaphore implementation in Fiasco.OC?
Adam Lackorzynski
adam at os.inf.tu-dresden.de
Sun Nov 27 21:40:52 CET 2011
On Tue Nov 22, 2011 at 13:36:37 -0800, Chen Tian wrote:
> I wonder if the following two problems are bugs.
>
> 1. In u_semaphore.cpp, function wakeup_locked, (around line 189):
> w->state_change_dirty(~Thread_ipc_mask, Thread_ready);
> If thread w is running on a different core than thread c, assertion in
> function state_change_dirty will fail.
> I think it should be
> w->state_change_dirty(~Thread_ipc_mask, Thread_ready, false);
>
> 2. In u_semaphore.cpp, function block_locked, (around line 146):
> c->state_del_dirty(~Thread_ipc_mask)
> should be
> c->state_del_dirty(Thread_ipc_mask).
>
> Otherwise, wrong bits will be cleared, which cause the assertion in
> assert_irq_entry() to fail.
Thanks, we'll check.
Adam
--
Adam adam at os.inf.tu-dresden.de
Lackorzynski http://os.inf.tu-dresden.de/~adam/
More information about the l4-hackers
mailing list