|   xen-devel
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravi 
| To: | Zachary Amsden <zach@xxxxxxxxxx> |  
| Subject: | [Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable |  
| From: | Jeremy Fitzhardinge <jeremy@xxxxxxxx> |  
| Date: | Mon, 19 Mar 2007 22:54:20 -0700 |  
| Cc: | xen-devel@xxxxxxxxxxxxxxxxxxx, akpm@xxxxxxxxxxxxxxxxxxxx,	virtualization@xxxxxxxxxxxxxx, netdev@xxxxxxxxxxxxxxx,	Rusty Russell <rusty@xxxxxxxxxxxxxxx>,	linux-kernel@xxxxxxxxxxxxxxx, chrisw@xxxxxxxxxxxx, Andi Kleen <ak@xxxxxx>,	"Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>,	anthony@xxxxxxxxxxxxx, mingo@xxxxxxx,	Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>,	David Miller <davem@xxxxxxxxxxxxx> |  
| Delivery-date: | Mon, 19 Mar 2007 22:53:29 -0700 |  
| Envelope-to: | www-data@xxxxxxxxxxxxxxxxxx |  
| In-reply-to: | <45FF4043.4000805@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: | <20070316.023331.59468179.davem@xxxxxxxxxxxxx>		<45FB005D.9060809@xxxxxxxx>		<1174127638.8897.75.camel@xxxxxxxxxxxxxxxxxxxxx>		<20070318.003309.71088169.davem@xxxxxxxxxxxxx>		<20070318120814.GA45869@xxxxxx>		<1174272469.11680.23.camel@xxxxxxxxxxxxxxxxxxxxx>		<m1648xxf93.fsf@xxxxxxxxxxxxxxxxxxxxxxxxx>		<Pine.LNX.4.64.0703191134190.6730@xxxxxxxxxxxxxxxxxxxxxxxxxx>	<1174348905.11680.54.camel@xxxxxxxxxxxxxxxxxxxxx>	<45FF4043.4000805@xxxxxxxxxx> |  
| Sender: | xen-devel-bounces@xxxxxxxxxxxxxxxxxxx |  
| User-agent: | Thunderbird 1.5.0.10 (X11/20070302) |  
| Zachary Amsden wrote:
> For VMI, the default clobber was "cc", and you need a way to allow at
> least that, because saving and restoring flags is too expensive on x86.
According to lore (Andi, I think), asm() always clobbers cc. 
> I still don't think this was a good trade.  The primary motivation for
> clobbering %eax was that Xen wanted a free register to use for
> computing the offset into the shared data in the case of SMP
> preemptible kernels.  Xen no longer needs such a register, they can
> use the PDA offset instead.  And it does hurt native performance by
> unconditionally stealing a register in the four most commonly invoked
> paravirt-ops code sequences.
Actually, it still does need a temp register.  The sequence for cli is:
    mov %fs:xen_vcpu, %eax
    movb $1,1(%eax)
At some point I hope to move the vcpu structure directly into the
pda/percpu variables, at which point it will need no temps.
    J
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops callsites to make them patchable, (continued)
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Linus Torvalds
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Jeremy Fitzhardinge
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops callsites to make them patchable, Rusty Russell
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Zachary Amsden
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops callsites to make them patchable, Rusty Russell
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable,
Jeremy Fitzhardinge <=
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops	callsites to make them patchable, Andreas Kleen
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Linus Torvalds
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops callsites to make them patchable, Ingo Molnar
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops callsites to make them patchable, Eric W. Biederman
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Jeremy Fitzhardinge
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap	paravirt ops callsites to make them patchable, Rusty Russell
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Linus Torvalds
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Jeremy Fitzhardinge
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Zachary Amsden
[Xen-devel] Re: [patch 13/26] Xen-paravirt_ops: Consistently wrap paravirt ops callsites to make them patchable, Linus Torvalds
 |  |  |