The FlexSC paper from 2010.<p>They observe the cache damage from traditional system calls and propose batch queueing them and ideally using a different core to service them. This is not the traditional Unix programming model, so they create a threading package the transparently makes your traditional Unix synchronous system calls work. They benchmark Apache with all of this new apparatus and it performs very well.
A callback-oriented kernel call mechanism. Hmm. The callback-oriented framework people should love this. It looks like you have to keep polling the shared page to see when your system call is done, though.<p>It's painful to realize that, after a context switch, modern CPUs can need 11,000 cycles to get back to full speed, with the right stuff in the caches and pipelines. Maybe we need CPUs which handle context switches better.
I found this paper <i>incredibly</i> interesting, and I think I'd love to work in research in this area. Does anyone have some resources to learn more/keywords to search? I'm currently a biomedical engineering undergraduate, so the most relevant course I've had has been Digital Logic, which I absolutely loved and did very well in, but I'd really appreciate advice on additional courses to try to take.
The interesting bit I was eagerly anticipating is buried way down in "3.1 Exception-Less Syscall Interface." How'd they do it? Syscall pages. This sounds really interesting, though apparently not terribly new.<p>I'd be really concerned about trust issues, but I'm sure it could be done safely. Lots of room for corner cases, especially w/NUMA.
We should just let V8 run in the kernel and do away with system calls. <a href="https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript" rel="nofollow">https://www.destroyallsoftware.com/talks/the-birth-and-death...</a>
The seems like the kind of thing you'd expect to see implemented in Redox.[0]<p>[0] <a href="http://www.redox-os.org/" rel="nofollow">http://www.redox-os.org/</a>
iirc xok exokernel had the same thing by doing 'scheduler activations' through a vdso. How does flexsc handle cancellation points? What about latency?