Re: Intel P6 vs P7 system call performance

James H. Cloos Jr. (cloos@jhcloos.com)
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/