Handles syscall-event overflow in pthreads
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 12 May 2011 01:29:36 +0000 (18:29 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:36:02 +0000 (17:36 -0700)
commit8fcb2b2a77718e0633c1eac3816030751b1d68a3
tree899a27099e9f4ed5216f2a8ec21b40c0933e310d
parent48b6149b6a558c54d6e84ea4dbf9dba2bfd62134
Handles syscall-event overflow in pthreads

Most 2LSs that handle blocking threads and syscalls like pthreads will
need to do something similar.  Actually, they'll need to do something
more advanced!

This code knows how to recover from event overflow, which means that the
event message containing the struct syscall * was lost.

Recovery is a bit expensive, I think, so under heavy amounts of lost
messages, we'll want to do something smarter, like switch to a polling
mechanism, or find a way to use larger BCQs.
Documentation/async_events.txt
tests/block_test.c
user/parlib/event.c
user/parlib/include/event.h
user/parlib/include/uthread.h
user/parlib/uthread.c
user/pthread/pthread.c