From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: Re: [PATCH] Linux: 6 arguments hypercall v3 Date: Sun, 03 Jul 2011 00:05:02 +0100 Message-ID: <4E0FA41E.5010301@goop.org> References: <20110624151324.GB356@spongy.cam.xci-test.com> <4E04C8AA.2040506@goop.org> <20110624221513.GA8916@spongy.cam.xci-test.com> <4E051306.4060109@goop.org> <20110627201907.GA8795@taoand.xen.fishsoupisgoodforyou.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20110627201907.GA8795@taoand.xen.fishsoupisgoodforyou.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: James Cc: "xen-devel@lists.xensource.com" , Keir Fraser , Konrad Rzeszutek Wilk , Jean Guyader , Jean Guyader , Ian Campbell List-Id: xen-devel@lists.xenproject.org On 06/27/2011 09:19 PM, James wrote: > On Fri, Jun 24, 2011 at 03:43:18PM -0700, Jeremy Fitzhardinge wrote: >> On 06/24/2011 03:15 PM, Jean Guyader wrote: >>> I only tested it gcc 4.4. >>> >>> We could still use the v2 which is not as nice, but it doesn't try to >>> load eax twice. Let me know which one you will feel better about. > Given "that loading r0 twice" is in the gcc documentation as an > example at > > http://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html#index-extended-_0040code_007basm_007d-2601 > > I think it's fair to use that. > >> I feel best about the one you've successfully tested with a number of >> older compilers ;) > what compilers work to build modern linux? We'll give a goodly set of them > a try if that makes everyone feel better. HPA says: > For x86, we support 3.4, 4.0 and 4.1.2 and above (not sure if 4.0.x > actually works). >> Does it have to? Couldn't it take a pointer to a struct or something? > Yes we could change the API, make sure the struct is visible on all > CPUs, making it incompatible with the existing code, but I think that > misses the point: Xen is written to support 6 argument hypercalls, but > 32 bit dom0 is missing the functionality to call them. Surely that's > something we should fix? The nominal ability of 6 arg hypercalls is moot if there aren't actually any hypercalls which have 6 args. The fact that 6 args uses ebp on 32-bit is incredibly awkward, and it seems better to just say that it in fact only supports 5, and adjust the v4v call(s) accordingly. J