Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 24 Dec 2002 15:30:32 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 24 Dec 2002 15:30:32 -0500 Received: from neon-gw-l3.transmeta.com ([63.209.4.196]:6153 "EHLO neon-gw.transmeta.com") by vger.kernel.org with ESMTP id ; Tue, 24 Dec 2002 15:30:32 -0500 Date: Tue, 24 Dec 2002 12:39:36 -0800 (PST) From: Linus Torvalds To: Ingo Molnar cc: Jamie Lokier , Ulrich Drepper , , , , , Matti Aarnio , , Subject: Re: Intel P6 vs P7 system call performance In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1332 Lines: 32 On Tue, 24 Dec 2002, Ingo Molnar wrote: > > this basically hardcodes flat segment layout on x86. If anything (Wine?) > modifies the default segments, it can wrap syscalls by saving/restoring > the modified %ds and %es selectors explicitly. Note that that was true even before this patch - you cannot use glibc without having the default DS/ES settings anyway. I not only checked with Uli, but gcc simply cannot generate code that has different segments for stack and data, so if you have non-flat segments you had to either - flatten them out before calling the standard library - do your system calls directly by hand And note how both of these still work fine (if you flatten things out it trivially works, and if you do system calls by hand the old "int 0x80" approach obviously doesn't change anything, and non-flat still works). So the new code really only takes advantage of the fact that non-flat wouldn't have worked with glibc in the first place, and without glibc you don't see any difference in behaviour since it won't be using the new calling convention. Linus - 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/