Thread (1 message) 1 message, 1 author, 2007-06-18

Re: [PATCH 5/5] KVM: paravirt time source

From: Anthony Liguori <hidden>
Date: 2007-06-18 21:52:57
Also in: kvm

Jeremy Fitzhardinge wrote:
Anthony Liguori wrote:
  
quoted
+static cycle_t read_hyper(void)
+{
+	struct timespec now;
+	int ret;
+
+	ret = kvm_hypercall(KVM_HYPERCALL_GET_KTIME, (u32)&now, 0, 0, 0);
+	WARN_ON(ret);
+
+	return now.tv_nsec + now.tv_sec * (cycles_t)1e9;
  
    
Hm, use of FP looks pretty odd.  I guess its OK to assume the compiler
will completely remove all the FP stuff at compile time.  Or you could
use NSEC_PER_SEC.
  
Agreed.
quoted
+}
+
+static struct clocksource clocksource_hyper = {
+	.name			= "hyper",
+	.rating			= 200,
  
    
We should probably standardize on this.  I guess that if you're in a
paravirt environment, and there's a paravirt clocksource, that would
always be the best clocksource to use.

  
quoted
+	.read			= read_hyper,
+	.mask			= CLOCKSOURCE_MASK(64),
+	.mult			= 1,
+	.shift			= 0,
  
    
It would be better to use a scale and shift here, so that adjtime has
something to work with when warping time.
  
Okay.  I may remove this patch from the patch series and attempt to sit 
down next week and work out something more complete that also implements 
stolen time accounting.

Regards,

Anthony Liguori
    J

  

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help