[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] PV guest timings



On mar, 2013-11-26 at 14:50 +0000, Simon Martin wrote:
> Hi all,
>  
Hi Simon!

> I have finally got my little PV guest running. My critical error was
> not setting __XEN_INTERFACE_VERSION__. After tearing to pieces the
> code and put it back together a few times I decided to debug my
> Makefile script comparing it to Mini-OS.
>  
Cool! :-)

> I am now starting to do some simple timings and the numbers are so bad
> I'm wondering what could be wrong with my test. 
>
Not so cool! :-(
 
> As mentioned previously I have created a CPU pool with one CPU and one
> domU. I am using the standard credit scheduler. I set timer_slop=0 on
> the Xen command line.
>  
> I initialise console, traps, events, and TSC clock in my PV and then
> start a periodic operation running. I then calculate latency as (clock
> time - deadline) and period as (clock time - previous deadline).At the
> moment I'm just displaying min/max values. I also increment a tick
> count on every cycle.
>  
> Looking at the statistics I see that I get the expected number of
> ticks per second, however I get latencies in the range [-1ms, +25us]
> and the periods in the range of [3us, 1.02ms]. The upper bounds look
> OK, but the lower bounds are all over the place.
>
Ok. Well, I'm not super expert in that area (yet), but even for the ones
that are, I think it's pretty hard to guess what could be going on
without seeing the actual code.

Is there any chance that you can share/show it? At least the relevant
chunks... Some questions:
 - "looking at the statistics", what statistics? How do you collect 
   them?
 - you say you get latencies in some range and periods in some other
   range. It may be my fault, but I'm not sure I understand what you
   mean with these two terms in this context, could you clarify?
 
> This makes me think that I'm not the only thing using VIRQ_TIMER. I
> seem to remember that this is called nominally every 10ms by the
> Hypervisor.
>  
> Is there any way to recognize the origin of the timer?
>
I'm not sure if fits your exact needs, and you probably know it already,
but, just in case, have you looked at xentrace and xenalyze? There's a
blog post that could be a nice introduction to them:
http://blog.xen.org/index.php/2012/09/27/tracing-with-xentrace-and-xenalyze/

If the exact information you're after is not among the already existing
tracepoints, it shouldn't be to hard to add one or more of those, in the
spots where you need them.

But again, it's very hard to judge without seeing the code...

Regards,
Dario

-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.