Messages in this thread | | | Date | Wed, 11 Dec 2002 10:50:57 -0800 | From | "H. Peter Anvin" <> | Subject | Re: Intel P6 vs P7 system call performance |
| |
Terje Eggestad wrote: > It get even worse with Hammer. When you run hammer in compatibility mode > (32 bit app on a 64 bit OS) the sysenter is an illegal instruction. > > Since Intel don't implement syscall, there is no portable sys* > instruction for 32 bit apps. You could argue that libc hides it for you > and you just need libc to test the host at startup (do I get a sigill if > I try to do getpid() with sysenter? syscall? if so we uses int80 for > syscalls). But not all programs are linked dyn.
Linus talked about this once, and it was agreed that the only sane way to do this properly was via vsyscalls... have a page mapped somewhere in high (kernel-area) memory, say at 0xfffff000, but readable by normal processes. A system call can be invoked via call 0xfffff000, and the *kernel* enters whatever code is appropriate to enter itself.
> Too bad really, I tried the sysenter patch once, and the gain (on PIII > and athlon) was significant. > > Fortunately the 64bit libc for hammer uses syscall. >
Yes.
> > PS: rdtsc on P4 is also painfully slow!!! >
Now that's just braindead...
-hpa
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |