Re: Intel P6 vs P7 system call performance

Kai Henningsen (kaih@khms.westfalen.de)
27 Dec 2002 18:14:00 +0200


torvalds@transmeta.com (Linus Torvalds) wrote on 23.12.02 in <Pine.LNX.4.44.0212232005080.2328-100000@home.transmeta.com>:

> Something like the appended, perhaps?
>
> Linus
>
> ===== arch/i386/kernel/entry.S 1.45 vs edited =====
> --- 1.45/arch/i386/kernel/entry.S Wed Dec 18 14:42:17 2002
> +++ edited/arch/i386/kernel/entry.S Mon Dec 23 20:02:10 2002
> @@ -233,7 +233,7 @@
> #endif
>
> /* Points to after the "sysenter" instruction in the vsyscall page */
> -#define SYSENTER_RETURN 0xffffe00a
> +#define SYSENTER_RETURN 0xffffe010
>
> # sysenter call handler stub
> ALIGN
> ===== arch/i386/kernel/sysenter.c 1.5 vs edited =====
> --- 1.5/arch/i386/kernel/sysenter.c Sun Dec 22 21:12:23 2002
> +++ edited/arch/i386/kernel/sysenter.c Mon Dec 23 20:04:33 2002
> @@ -57,12 +57,17 @@
> 0x51, /* push %ecx */
> 0x52, /* push %edx */
> 0x55, /* push %ebp */
> + /* 3: backjump target */
> 0x89, 0xe5, /* movl %esp,%ebp */
> 0x0f, 0x34, /* sysenter */
> - 0x00, /* align return point */

Also 0x90 here?

> - /* System call restart point is here! (SYSENTER_RETURN - 2) */
> - 0xeb, 0xfa, /* jmp to "movl %esp,%ebp" */
> - /* System call normal return point is here! (SYSENTER_RETURN in entry.S)
> */ +
> + /* 7: align return point with nop's to make disassembly easier */
> + 0x90, 0x90, 0x90, 0x90,
> + 0x90, 0x90, 0x90,
> +
> + /* 14: System call restart point is here! (SYSENTER_RETURN - 2) */
> + 0xeb, 0xf3, /* jmp to "movl %esp,%ebp" */
> + /* 16: System call normal return point is here! (SYSENTER_RETURN in
> entry.S) */ 0x5d, /* pop %ebp */
> 0x5a, /* pop %edx */
> 0x59, /* pop %ecx */

MfG Kai
-
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/