Yield for single and parallel processes
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 2 Oct 2009 01:09:10 +0000 (18:09 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 19 Oct 2009 00:20:02 +0000 (17:20 -0700)
commiteee839bf668a63009abfc95004f45dd903377c70
tree2b1a2b1de1780599c8299e2a1cbccb8b2790bc1f
parentd1ac481d98521bec2584bf9f21e34a2202719bb7
Yield for single and parallel processes

Can yield cores out of order, get the appropriate ones back, and
somewhat save vcore0's state.  Currently it doesn't restart vcore0 where
it left if you stay in RUNNING_M.  We can do whatever - pending some
discussions with Ben about how we really want to handle core0.

You can do some yield testing with proctests (single core yields), and
mhello (a variety).  You'll need to program it to do whatever thing you
want, like yield out of order, then ask for more cores.  There are a
bunch of tests built in that need to be selected at compile time.

The enum is error.h is ghetto and needs a fix that works with newlib.
Right now, we conflict on error numbers (and naming, if we #define like
we ought to).

Disclaimer: doesn't compile with ivy.
15 files changed:
kern/arch/i386/nic_common.h
kern/arch/i386/rl8168.c
kern/arch/i386/trap.c
kern/include/process.h
kern/include/resource.h
kern/include/ros/error.h
kern/src/manager.c
kern/src/mm.c
kern/src/monitor.c
kern/src/process.c
kern/src/resource.c
kern/src/syscall.c
user/apps/roslib/mhello.c
user/apps/roslib/proctests.c
user/roslib/src/i386/entry.S