Re: Intel P6 vs P7 system call performance

From: Petr Vandrovec (vandrove@vc.cvut.cz)
Date: Mon Dec 23 2002 - 18:27:43 EST


On Sun, Dec 22, 2002 at 09:03:44PM -0800, Linus Torvalds wrote:
>
> How does the attached patch work for people? I've verified that
> single-stepping works, and I've also verified that it does improve
> performance for simple system calls. Everything looks quite simple.

> ===== arch/i386/kernel/sysenter.c 1.4 vs edited =====
> --- 1.4/arch/i386/kernel/sysenter.c Sat Dec 21 16:02:02 2002
> +++ edited/arch/i386/kernel/sysenter.c Sun Dec 22 20:17:28 2002
> @@ -54,19 +54,18 @@
> 0xc3 /* ret */
> };
> static const char sysent[] = {
> - 0x9c, /* pushf */
> 0x51, /* push %ecx */
> 0x52, /* push %edx */
> 0x55, /* push %ebp */
> 0x89, 0xe5, /* movl %esp,%ebp */
> 0x0f, 0x34, /* sysenter */
> + 0x00, /* align return point */
> /* System call restart point is here! (SYSENTER_RETURN - 2) */
> 0xeb, 0xfa, /* jmp to "movl %esp,%ebp" */

Hi Linus,

Jump instruction should be 0xeb, 0xf9, with 0xeb, 0xfa it jumps into
the middle of movl %esp,%ebp because of added alignment.

Maybe glibc tests needs also something to check restarted syscall...
                                        Thanks,
                                                Petr Vandrovec
                                                vandrove@vc.cvut.cz

--- linux/arch/i386/kernel/sysenter.c.orig 2002-12-24 00:23:41.000000000 +0100
+++ linux/arch/i386/kernel/sysenter.c 2002-12-24 00:23:50.000000000 +0100
@@ -61,7 +61,7 @@
                 0x0f, 0x34, /* sysenter */
                 0x00, /* align return point */
         /* System call restart point is here! (SYSENTER_RETURN - 2) */
- 0xeb, 0xfa, /* jmp to "movl %esp,%ebp" */
+ 0xeb, 0xf9, /* jmp to "movl %esp,%ebp" */
         /* System call normal return point is here! (SYSENTER_RETURN in entry.S) */
                 0x5d, /* pop %ebp */
                 0x5a, /* pop %edx */
-
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/



This archive was generated by hypermail 2b29 : Mon Dec 23 2002 - 22:00:32 EST