|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
[Xen-devel] Xen time update algorithms
 
Folks --
 My colleague and I are looking at the linux update_wallclock()  
algorithm and the same (more or less) algorithm in FreeBSD.  And  
we've noticed an independent_wallclock variable and associated  
functions in Linux that look like they provide some utility.
In Linux:
static void update_wallclock(void)
{
        shared_info_t *s = HYPERVISOR_shared_info;
        do {
                shadow_tv_version = s->wc_version;
                rmb();
                shadow_tv.tv_sec  = s->wc_sec;
                shadow_tv.tv_nsec = s->wc_nsec;
                rmb();
        } while ((s->wc_version & 1) | (shadow_tv_version ^ s- 
>wc_version));
        if (!independent_wallclock)
                __update_wallclock(shadow_tv.tv_sec,  
shadow_tv.tv_nsec);
}
 In FreeBSD there isn't the check for independent_wallclock, nor any  
__update_wallclock()-like functionality.  However, it appears that  
the __update_wallclock() algorithm is necessary.
My questions are:
 1) Is support for independent_wallclock functionality "relatively"  
new?  (i.e., Last couple of years?  Or, since Xen 2.0?)
 2) Is (!independent_wallclock) ever true?  If so, what sort of  
environments?  Is it true for dom0?  Is there a guest mode where  
having an independent wallclock is appropriate?
 3) Is most everything in the linux-xen-sparse tree under the LGPL  
license?
 We're working to port the code from linux-xen-sparse/time-xen.c to  
FreeBSD in order to fix our problem; we're just curious about the  
environment in which the code runs.
-- Randy
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread> |  
- [Xen-devel] Xen time update algorithms,
Randy Thelen <=
  
 |  
  
 | 
    | 
  
  
    |   | 
    |