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


[Xen-devel] Does Xen detect busy-spinning VCPUs?

To: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] Does Xen detect busy-spinning VCPUs?
From: Robert Kaiser <kaiser@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Sep 2008 14:00:24 +0200
Delivery-date: Fri, 19 Sep 2008 05:00:02 -0700
Envelope-to: www-data@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>
Organization: FH Wiesbaden
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.6 (enterprise 0.20070907.709405)
Hi all,

I'm currently developing/testing a new scheduler for Xen and I am seeing some 
very strange behaviour which I can't seem to pinpoint: For benchmarking 
purposes, I am running a task inside Mini-OS in a tight, busy-spinning loop 
for some time. The loop repeatedly polls NOW() until it exceeds a certain 
time limit. What I am observing is that NOW() seems to "jump" sometimes: two 
subsequent reads return values which differ by tens of milliseconds! I notice 
that my scheduler gets invoked a couple of times, but it does *not* switch to 
another VCPU and I doubt that the scheduler invocations alone take that long. 
So  the loop should indeed be contiuously spinning with sporadic 
interruptions in the range of a few microseconds, but not tens of 
milliseconds. Yet, this is not what I am seeing. I wonder where the (P)CPU 
goes during those time intervals and so this possibly weird idea came up that 
Xen might use some trickery trying to detect and pause busy-spinning VCPUs. 
Is there anything like that in Xen (BTW: This is xen-3.2.1) , and, if there 
is, can it be disabled for a given domain?

(Sorry if this is a silly question. Since my code is experimental and not well 
tested yet, there is of course the possibility that I made some stupid 
mistake. However, I've been staring at code, debug logs, etc. for several 
days now without much success and I am slowly getting desperate. If Xen 
really does pause spinning VCPUs it would explain everything.)

Thanks for any help


Robert Kaiser                    http://wwwvs.informatik.fh-wiesbaden.de
Labor für Verteilte Systeme            kaiser@xxxxxxxxxxxxxxxxxxxxxxxxxx
FH Wiesbaden - University of Applied Sciences     tel: (+49)611-9495-1294
Kurt-Schumacher-Ring 18, 65197 Wiesbaden, Germany fax: (+49)611-9495-1289

Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>