Messages in this thread | | | From | pageexec@freemail ... | Date | Wed, 08 Jun 2011 08:32:18 +0200 | Subject | Re: [PATCH v5 8/9] x86-64: Emulate legacy vsyscalls |
| |
On 7 Jun 2011 at 19:49, Andrew Lutomirski wrote:
> My patch (the version that's in tip/x86/vdso) more-or-less does that. > It's something like six lines of code, including error handling.
my memory is about more complexity (else i would have done it that way to avoid the current result of double kernel entries) but anyway it's a moot point now that this code is headed for mainline.
> __bad_area_nosemaphore is not a fast path, and in fact I tried that > for the very first version of this code that I wrote. My recollection > is that it's noticeably slower than int 0xcc because it has to go > through the whole VMA lookup.
you can put this logic much earlier, even before taking any locks (but then you'll have to fear the dreaded single cycle improvement brigade ;).
> If you want to submit a patch to switch from int 0xcc to > __bad_area_nosemaphore, be my guest :) It will have almost no effect > on the complexity of the code, and, in fact, you'll probably get a net > deletion of lines because you can remove all the crud in vmlinux.lds.S > and some of the mapping code in vsyscall_64.c.
i'll forward port my changes when 3.0 comes out, we'll see how more or less complex they become and can then decide if it's worth it.
| |