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

Re: [Xen-devel] [PATCH] replace rdtsc emulation-vs-native xen boot option with per-domain (hypervisor part)

On 09/27/09 12:22, Dan Magenheimer wrote:
> Switches rdtsc emulation from boot option to per-domain
> and enables it by default.  Also removes hvm tsc scaling
> as it is no longer necessary.

I've run into a few problems from this patch:

   1. I'm seeing occasional messages on the console "hrtimer: interrupt
      too slow, forcing clock min delta to 9001953 ns" which indicates
      that the kernel is noticing that timer operations are taking too long.
   2. A domain can't turn on and off its own tsc emulation state.  I'm
      working on vsyscall support for pvclock (done, aside from this
      issue), so I need native tsc in usermode (or at least, one with
      the same parameters in kernel and userspace).  I was getting very
      confused because I didn't expect emulation to *only* apply to
      usermode; I was expecting it to be done uniformly to both user and
      kernel tscs, with appropriate adjustments to the vcpu_time_info
   3. The 's' debug key never seems to count any usermode rdtsc
      instructions, even if I write a little program to explicitly
      exercise them.  (Fix below)

All in 64-bit PV domains.


diff -r 1dc86d83b352 xen/arch/x86/time.c
--- a/xen/arch/x86/time.c       Fri Oct 02 17:01:26 2009 -0700
+++ b/xen/arch/x86/time.c       Mon Oct 05 16:13:15 2009 -0700
@@ -1476,7 +1476,7 @@
-        v->domain->arch.vtsc_kerncount++;
+        v->domain->arch.vtsc_usercount++;
         now = get_s_time() + v->domain->arch.vtsc_stime_offset;
         if ( (int64_t)(now - v->domain->arch.vtsc_last) > 0 )

Xen-devel mailing list



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