WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [Patch 2 of 2]: PV-domain SMP performance Linux-part

To: "Juergen Gross" <juergen.gross@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] [Patch 2 of 2]: PV-domain SMP performance Linux-part
From: "Jan Beulich" <jbeulich@xxxxxxxxxx>
Date: Wed, 17 Dec 2008 15:06:31 +0000
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 17 Dec 2008 07:06:31 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4948EF0B.6090404@xxxxxxxxxxxxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4948EF0B.6090404@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>--- a/include/asm-x86_64/mach-xen/asm/irqflags.h       Sat Dec 13 16:00:43 
>2008 +0000
>+++ b/include/asm-x86_64/mach-xen/asm/irqflags.h       Wed Dec 17 13:12:53 
>2008 +0100
>@@ -33,8 +33,12 @@ do {                                                        
>                \
>       vcpu_info_t *_vcpu;                                             \
>       barrier();                                                      \
>       _vcpu = current_vcpu_info();            \
>-      if ((_vcpu->evtchn_upcall_mask = (x)) == 0) {                   \
>+      if ( !(x) ) {                                                   \

This isn't correct, as it breaks 0->1 transitions (there are a few instances of
this in the kernel).

>+              _vcpu->no_desched = 0;                                  \
>+              _vcpu->evtchn_upcall_mask = 0;                          \
>               barrier(); /* unmask then check (avoid races) */        \
>+              if ( unlikely(_vcpu->desched_delay) )                   \
>+                      (void)((HYPERVISOR_sched_op(SCHEDOP_yield, _vcpu))?:0); 
>\

Why not just cast the function result to void? Likewise further below...

>               if ( unlikely(_vcpu->evtchn_upcall_pending) )           \
>                       force_evtchn_callback();                        \
>       }                                                               \

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel