Chris Small (one of the Vino architects) writes:
> A friend forwarded your posting of 20 Jun to linux-kernel and cap-talk
> that mentioned in passing the overhead of transactions in VINO. I'm not
> sure how you got your VINO transaction overhead cost of 100x "per kernel
> operation". If you want to consider an L4 IPC a typical kernel
> operation, then a transaction begin/end is about one order of magnitude
> slower than an IPC (about 100 cycles on an x86, right?).
If I overstated the case, I do apologize. I wonder if you'ld be good enough to answer this to both lists so that we can all see the outcome.
Indeed, I consider the L4 IPC operation to be a reasonable upper bound on the fundamental system call overhead. Actually, it's generous because system calls don't usually have to change the address space, but let's stick with their number for purposes of discussion.
Your number was that a Vino transaction begin/end pair is 1570 cycles on a 100 Mhz Pentium. The L4 IPC operation, if memory serves me, is something like 130 cycles in the case of interest, which would give 12x. Withdrawing the 100x figure (with apologies), I submit that this number amply makes my case.
But one of the key ideas in Vino was in-kernel composition of things, which suggests to me that a single kernel invocation might involve several begin/end pairs.
Can you provide insight into how many transaction begin/end pairs a kernel invocation in Vino typically incurs?
Just so you know, I was actually holding out Vino as an exemplar of "the best that can be done" in a transaction oriented approach.
Jonathan S. Shapiro, Ph. D.
IBM T.J. Watson Research Center
Phone: +1 914 784 7085 (Tieline: 863)
Fax: +1 914 784 7595