Messages in this thread | | | Subject | Re: Intel P6 vs P7 system call performance | From | "James H. Cloos Jr." <> | Date | 22 Dec 2002 06:08:24 -0500 |
| |
Linus> The system call entry becomes a simple
Linus> call *%gs:constant-offset
Linus> Not mmap. No magic system calls. No relinking. Not Linus> _nothing_. One instruction, that's it.
I presume *%gs:0x18 is only for shared objects?
A naïve:
- asm volatile("call 0xffffe000" + asm volatile("call *%%gs:0x18"
in the trivial getppid benchmark code gives a SEGV, since (according to gdb's info all-registers) %gs == 0 when it runs.
Is it just that my glibc is too old, or is there a shared vs static difference?
-JimC
P.S. On a (1 Gig) mobile p3 the getppid bench gives ~333 cycles for int $0x80 and ~215 for call 0xffffe000, before yesterday's push.
- 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/
| |