From: Andi Kleen <andi@firstfloor.org>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Ingo Molnar <mingo@elte.hu>, Zachary Amsden <zach@vmware.com>,
Rusty Russell <rusty@rustcorp.com.au>,
Ian Campbell <ian.campbell@citrix.com>,
the arch/x86 maintainers <x86@kernel.org>,
linux-kernel@vger.kernel.org,
Ravikiran Thirumalai <kiran@scalemp.com>,
Xen-devel <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 5 of 7] x86/paravirt: add register-saving thunks to reduce caller register pressure
Date: Fri, 06 Feb 2009 08:28:26 +0100 [thread overview]
Message-ID: <87fxisvxb9.fsf@basil.nowhere.org> (raw)
In-Reply-To: <7d4a052c499dbfe5e816.1233182105@abulafia.goop.org> (Jeremy Fitzhardinge's message of "Wed, 28 Jan 2009 14:35:05 -0800")
Jeremy Fitzhardinge <jeremy@goop.org> writes:
> One of the problems with inserting a pile of C calls where previously
> there were none is that the register pressure is greatly increased.
> The C calling convention says that the caller must expect a certain
> set of registers may be trashed by the callee, and that the callee can
> use those registers without restriction. This includes the function
> argument registers, and several others.
>
> This patch seeks to alleviate this pressure by introducing wrapper
> thunks that will do the register saving/restoring, so that the
> callsite doesn't need to worry about it, but the callee function can
> be conventional compiler-generated code.
I had something like this (but not as generic) for the old pre
unification semaphores on x86-64 too. I think it's a generally useful
facility for lots of things (in fact I've been asking gcc developers
for providing this in a general way for some time).
So I would suggest to move the necessary macros to do that outside
paravirt.h into a separate include so that it can be used independently
and not call it PV_*.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
next prev parent reply other threads:[~2009-02-06 7:29 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-28 22:35 [PATCH 0 of 7] x86/paravirt: optimise pvop calls and register use Jeremy Fitzhardinge
2009-01-28 22:35 ` Jeremy Fitzhardinge
2009-01-28 22:35 ` [PATCH 1 of 7] xen: move remaining mmu-related stuff into mmu.c Jeremy Fitzhardinge
2009-01-28 22:35 ` [PATCH 2 of 7] x86/pvops: add a paravirt_ident functions to allow special patching Jeremy Fitzhardinge
2009-01-29 8:05 ` Rusty Russell
2009-01-29 9:26 ` Jeremy Fitzhardinge
2009-01-29 9:26 ` Jeremy Fitzhardinge
2009-01-29 10:46 ` Jeremy Fitzhardinge
2009-01-29 10:46 ` Jeremy Fitzhardinge
2009-01-28 22:35 ` [PATCH 3 of 7] x86: fix paravirt clobber in entry_64.S Jeremy Fitzhardinge
2009-01-29 8:39 ` Rusty Russell
2009-01-29 9:28 ` Jeremy Fitzhardinge
2009-01-29 9:28 ` Jeremy Fitzhardinge
2009-01-28 22:35 ` [PATCH 4 of 7] x86/paravirt: selectively save/restore regs around pvops calls Jeremy Fitzhardinge
2009-01-29 8:47 ` Rusty Russell
2009-01-29 9:30 ` Jeremy Fitzhardinge
2009-01-29 9:30 ` Jeremy Fitzhardinge
2009-01-30 0:27 ` Rusty Russell
2009-01-28 22:35 ` [PATCH 5 of 7] x86/paravirt: add register-saving thunks to reduce caller register pressure Jeremy Fitzhardinge
2009-01-28 22:35 ` Jeremy Fitzhardinge
2009-02-06 7:28 ` Andi Kleen [this message]
2009-02-06 16:37 ` Jeremy Fitzhardinge
2009-02-06 16:37 ` Jeremy Fitzhardinge
2009-01-28 22:35 ` [PATCH 6 of 7] x86/paravirt: implement PVOP_CALL macros for callee-save functions Jeremy Fitzhardinge
2009-01-28 22:35 ` [PATCH 7 of 7] x86/paravirt: use callee-saved convention for pte_val/make_pte/etc Jeremy Fitzhardinge
2009-01-29 7:14 ` [PATCH 0 of 7] x86/paravirt: optimise pvop calls and register use H. Peter Anvin
2009-01-29 9:51 ` Jeremy Fitzhardinge
2009-01-29 9:51 ` Jeremy Fitzhardinge
2009-01-31 5:04 ` H. Peter Anvin
2009-01-31 7:16 ` Jeremy Fitzhardinge
2009-01-31 22:43 ` H. Peter Anvin
2009-01-31 7:17 ` [PATCH 1/2] x86/paravirt: don't restore second return reg Jeremy Fitzhardinge
2009-01-31 7:17 ` Jeremy Fitzhardinge
2009-01-31 7:18 ` [PATCH 2/2] x86/vmi: fix interrupt enable/disable/save/restore calling convention Jeremy Fitzhardinge
2009-01-31 7:18 ` Jeremy Fitzhardinge
2009-01-31 16:12 ` [PATCH 0 of 7] x86/paravirt: optimise pvop calls and register use Ingo Molnar
2009-01-31 16:12 ` Ingo Molnar
2009-01-31 17:00 ` Jeremy Fitzhardinge
2009-01-31 17:00 ` Jeremy Fitzhardinge
2009-02-04 2:10 ` Ingo Molnar
2009-02-04 2:10 ` Ingo Molnar
2009-02-04 2:16 ` Jeremy Fitzhardinge
2009-02-04 2:16 ` Jeremy Fitzhardinge
2009-02-04 14:26 ` Ingo Molnar
2009-02-04 14:26 ` Ingo Molnar
2009-02-04 17:06 ` Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fxisvxb9.fsf@basil.nowhere.org \
--to=andi@firstfloor.org \
--cc=ian.campbell@citrix.com \
--cc=jeremy@goop.org \
--cc=kiran@scalemp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rusty@rustcorp.com.au \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.com \
--cc=zach@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.