[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1233183903.16317.242.camel@bodhitayantram.eng.vmware.com>
Date: Wed, 28 Jan 2009 15:05:03 -0800
From: Zachary Amsden <zach@...are.com>
To: Jeremy Fitzhardinge <jeremy@...p.org>
Cc: "H. Peter Anvin" <hpa@...or.com>,
Ian Campbell <Ian.Campbell@...rix.com>,
Ingo Molnar <mingo@...e.hu>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH RFC WIP] x86/paravirt: add register-saving thunks to
reduce caller register pressure
On Wed, 2009-01-28 at 10:14 -0800, Jeremy Fitzhardinge wrote:
> Hi Guys,
> Zach: I wasn't really sure of what the VMI ABI calling convention is, so
> I haven't converted VMI yet. I wasn't sure if it needs a register
> saving thunk to wrap the calls, or if they're guaranteed to not trash
> anything other than eax/rax. Please advise.
C-like, allowing C or assembly implementations of calls. Currently
several of the most important calls have a restricted clobber set,
however, and since it's clear there aren't any forthcoming new
implementations of a VMI ROM, it might be better to go with the actual
clobbers for performance critical ops.
> Standard calling convention is:
> arguments return scratch
> x86-32 eax edx ecx eax ?
ecx, edx
> The most common paravirt ops, both statically and dynamically, are
> interrupt enable/disable/save/restore, so handle them first. This is
> particularly easy since their calls are handled specially anyway.
> XXX Deal with VMI. What's their calling convention?
Enable/Disable have no clobbers at all.
Save clobbers only return value, %eax
Restore also clobbers nothing.
The patching code has gotten quite complex with the 32/64 union; let me
apply it first and see before I comment on the patch.
Zach
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists