Messages in this thread | | | Date | Mon, 26 Oct 2009 12:05:09 -0400 | From | Mathieu Desnoyers <> | Subject | Re: Relicensing tracepoints and markers to Dual LGPL v2.1/GPL v2,headers to Dual BSD/GPL |
| |
* Arjan van de Ven (arjan@infradead.org) wrote: > On Mon, 26 Oct 2009 09:17:49 -0400 > Pierre-Marc Fournier <pierre-marc.fournier@polymtl.ca> wrote: > > > Ingo Molnar wrote: > > > > > > But i also disagree with it on a technical level: code duplication > > > is _bad_. Why does the code have to be duplicated in user-space > > > like that? I'd like Linux tracing code to be in the kernel repo. > > > Why isnt this done properly, as part of the kernel project - to > > > make sure it all stays in sync? > > > > > > > If you mean that this code should solely be used inside the kernel, > > then what you propose technically does not work. There is a very high > > cost to accessing kernel code from userspace. > > yeah 100 cycles is insanely high, that's at least the equivalent of... > say one cache miss. >
Hi Arjan,
Maybe it's just me, but if you are talking of system calls performed with sysenter, my own machine (with an Intel Xeon E5405 CPU) seems to disagree with your estimations:
For a system call doing basically _nothing_:
Cache-cold system call: Time for a system call (returns after a simple test) : TSC diff : 6426 cycles time diff : 3212.53 ns
Cache-hot system call: Time for system call (10000 calls) (returns after a simple test) : TSC diff : 599.893 cycles per call time diff : 299.903 ns per call
Otherwise, if you are instead referring to a vDSO, then the contexts is slightly different, and it becomes cheaper, but it does not allow to share code as much between the in-kernel and vDSO implementations, mainly due to different locking required. Moreover, I wonder about the maximum vDSO size that can be ported across multiple architectures. It has only been used for really tiny pieces of code so far.
Thanks,
Mathieu
> > -- > Arjan van de Ven Intel Open Source Technology Centre > For development, discussion and tips for power savings, > visit http://www.lesswatts.org
-- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
| |