In case anyone is interested, here is my rough TODO list for rumpfiber... comments welcome.
In no particular order 1. Sort out exported symbols Started making some of the scheduling interface private, but currently external _lwp.c wants to use some functions, so only partially complete. If the scheduling functions are going to remain public they need to be namespaced. 2. Split out into modules Started this, eg splitting out rumpuser_file.c as user may want to modify, replace or not include at all. Most of these are just the original ones (eg dl, which an embedded system wont want), but maybe inclined to split out memory allocation, random numbers and so on as these may vary. 3. Some sort of configure system There is not a huge amount that isn't portable but there is some. Should probably cover the rumpuser_port stuff as well. Probably a shell script. 4. Some way of cleanly integrating _lwp handling This means sorting out NetBSD env for building and access to internals in a clean way. 5. Swapcontext implementation in case missing For embedded systems (and other systems without swapcontext functions, eg OpenBSD, currently Musl) a reference implementation would be useful. In addition, some swapcontext implementations make system calls: Linux saves and restores signal masks, while in NetBSD these routimes are syscalls, which means that they are unnecessarily slow. 6. Reduce dependencies Have been trying to remove eg requirement on stdio.h. Not so important eg in rumpuser_dl.c or other optional modules but for embedded applications the less you need to implement the better. 7. Less locking I think Antti was suggetsing that something even more optimised than locks_up.c possible without concurrent threads. 8. Look at cross unit optimisation There is a lot of optimisation that could potentially happen with cross unit optimisation that new gcc and clang have, eg inlining curlwp hypercall, possibly removing some mutexes that are noops. 9. Block and network backends Both of these currently rely on pthreads. The aio block code should work, if its read thread is replaced by polling in the scheduler. Probably want a scheduler hook for a simple poll and one for poll() instead of sleeping when idle. 10. rump_server This should I think now work, bar the etfs stuff which needs 9, so just needs a build script. 10. rumprun integration Due to limited host API hoping to make a simpler way of resolving host/netbsd namespace issues. 11. performance testing As it says. Networking needs 9. done. ------------------------------------------------------------------------------ Open source business process management suite built on Java and Eclipse Turn processes into business applications with Bonita BPM Community Edition Quickly connect people, data, and systems into organized workflows Winner of BOSSIE, CODIE, OW2 and Gartner awards http://p.sf.net/sfu/Bonitasoft _______________________________________________ rumpkernel-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/rumpkernel-users
