This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] x86 string/memory inline functions

To: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Subject: Re: [Xen-devel] x86 string/memory inline functions
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Wed, 24 May 2006 11:47:51 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 24 May 2006 03:48:44 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <44743B9A.76E4.0078.0@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <44743B9A.76E4.0078.0@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx

On 24 May 2006, at 09:55, Jan Beulich wrote:

1) Why were the (questionable) inline versions from i386 Linux chosen over just using the gcc intrinsics (as x86-64
Linux does, except for a special case of memcpy())?

Intrinsics are a total pain. Sometimes the compiler inlines, sometimes it doesn't. Sometimes it emits the __builtin_foo symbol, sometime it emits foo. Sometime when the function __builtin_foo is defined in string.c it gets the name __builtin_foo, but sometimes it gets the name foo. Getting this to work for a range of compiler versions on i386 (that's where I see the wide range of behaviours) would be hassle.

The best solution is just to remove the arch-specific definitions. None of the uses in Xen are performance critical.

2) Why were the memory clobbers removed without at least replacing them with appropriate input constraints?

Maybe I was having a bad day. :-)

 -- Keir

Xen-devel mailing list