Complete rewrite of c3po for multicore
authorKevin Klues <klueska@cs.berkeley.edu>
Wed, 2 Mar 2011 01:15:31 +0000 (17:15 -0800)
committerKevin Klues <klueska@cs.berkeley.edu>
Thu, 3 Nov 2011 00:35:59 +0000 (17:35 -0700)
commitb9a3fa716d13b5104c4edc4d2afe02f035287a2c
tree2231d7e46cc61b5db077befa2c24a32636e9234e
parente61c7774b8eb67ed9ca05dfcec0ab504a768df73
Complete rewrite of c3po for multicore

I'm trying to factor the code in such a way that we can use a common code base
for both ROS and linux.  In the current revision, everything only runs on ROS,
but soon all "vcore" specific code can be implemented for linux by spawning an
underlying linux task and scheduling user threads on top of them.

Currenlty the code only runs reliably if we simply jump to multicore mode, but
don't put any more requests in for vcores (i.e. vcore_request is only called
once, asking for one core).  We are working through the bugs to figure out why
this is the case, but most signs point to either a kernel bug, or a low level
userspace bug, beneath the library code implemented here.  the test app for
c3po is still under tests/c3po/c3po_test.c
18 files changed:
tests/c3po/c3po_test.c
user/c3po/Makefile
user/c3po/coro/Makefrag [deleted file]
user/c3po/coro/coro.c [deleted file]
user/c3po/coro/coro.h [deleted file]
user/c3po/threads/events.c [deleted file]
user/c3po/threads/mutex.c
user/c3po/threads/sched_global_rr.c
user/c3po/threads/threadlib.c
user/c3po/threads/threadlib.h
user/c3po/threads/threadlib_internal.h
user/c3po/threads/ucontext.c [new file with mode: 0644]
user/c3po/threads/ucontext.h [new file with mode: 0644]
user/c3po/threads/vcore.c [new file with mode: 0644]
user/c3po/util/clock.c
user/c3po/util/config.c
user/c3po/util/debug.c
user/c3po/util/debug.h