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

RE: [PATCH] softtsc (was RE: [Xen-devel] Guest TSC and Xen (Intel and AMD feedback please))


  • To: <dan.magenheimer@xxxxxxxxxx>, "Xen-Devel (E-mail)" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Zhang, Li" <li.zhang@xxxxxxxxx>
  • Date: Thu, 10 Jul 2008 09:48:45 +0800
  • Cc: "Tian, Kevin" <kevin.tian@xxxxxxxxx>
  • Delivery-date: Wed, 09 Jul 2008 18:49:29 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcjboIivPTuddHlLSIGPaPhte5VM5wASModQADA1FBAAMHiVIAAjyGRgAKf/8qAAAXmfcAABT0gwAABianAAB1i/gAAAqGFQAAV3jZAAHxjV8AAr0sqQAAhemiA=
  • Thread-topic: [PATCH] softtsc (was RE: [Xen-devel] Guest TSC and Xen (Intel and AMD feedback please))

OK. 
Signed-off-by: Li Zhang <li.zhang@xxxxxxxxx>

Thanks 
>  -----Original Message-----
>  From: Dan Magenheimer [mailto:dan.magenheimer@xxxxxxxxxx]
>  Sent: Thursday, July 10, 2008 5:33 AM
>  To: dan.magenheimer@xxxxxxxxxx; Zhang, Li; Xen-Devel (E-mail)
>  Cc: Tian, Kevin
>  Subject: [PATCH] softtsc (was RE: [Xen-devel] Guest TSC and Xen (Intel and
>  AMD feedback please))
>  
>  The attached patch adds a new Xen boot option "softtsc" that
>  causes all hvm domains to trap and emulate all rdtsc instructions
>  and fetch Xen system time instead of the hardware tsc.  As
>  a result, the processor will appear to be running at 1000.xyz MHz
>  (where xyz indicates some fraction that seems to vary slightly
>  across different boots).  I've also added a line of output to
>  "xm debug-key t" to report softsc and tsc-related CPU features.
>  
>  (Keir, though 3.3 functionality freeze is past, this is more of a
>  diagnostic aid and defaults off, so I don't know if you would
>  consider it for 3.3.)
>  
>  Signed-off-by: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>
>  
>  Dan
>  
>  P.S. Thanks to Li Zhang for coding the foundation for this patch.
>  Li, do you want to provide a signed-off-by line too?
>  
>  > -----Original Message-----
>  > From: Dan Magenheimer [mailto:dan.magenheimer@xxxxxxxxxx]
>  > Sent: Tuesday, July 08, 2008 6:30 PM
>  > To: 'Zhang, Li'; 'Xen-Devel (E-mail)'
>  > Cc: 'Tian, Kevin'
>  > Subject: RE: [Xen-devel] Guest TSC and Xen (Intel and AMD
>  > feedback please)
>  >
>  >
>  > Looks great!  I am continuing to code and test.  Some
>  > preliminary results:
>  >
>  > 1) Substituting hvm_get_guest_time() for hvm_get_guest_tsc()
>  > seems to just work!  The hvm
>  >     guest believes it is running on a 1000.185 MHz clock.
>  >
>  > 2) On my test box, a guest rdtsc without softtsc takes about
>  > 30ns.  With softtsc,
>  >     rdtsc takes about 1us.
>  >
>  > 3) On my user-land test program, I am seeing rare "Time goes
>  > backwards", even with
>  >    hvm_get_guest_time().  I'm trying to track this down.
>  >
>  > Dan
>  >
>  > > -----Original Message-----
>  > > From: Zhang, Li [mailto:li.zhang@xxxxxxxxx]
>  > > Sent: Tuesday, July 08, 2008 3:47 AM
>  > > To: Zhang, Li; dan.magenheimer@xxxxxxxxxx; Xen-Devel (E-mail)
>  > > Cc: Tian, Kevin
>  > > Subject: RE: [Xen-devel] Guest TSC and Xen (Intel and AMD
>  > > feedback please)
>  > >
>  > >
>  > > Hi, Dan
>  > > Please ignore previous comments. The above attachment is OK.
>  > > Sorry for that. :(
>  > >
>  > > >  -----Original Message-----
>  > > >  From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>  > > >  [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf
>  > > Of Zhang, Li
>  > > >  Sent: Tuesday, July 08, 2008 2:58 PM
>  > > >  To: dan.magenheimer@xxxxxxxxxx; Xen-Devel (E-mail)
>  > > >  Cc: Tian, Kevin
>  > > >  Subject: RE: [Xen-devel] Guest TSC and Xen (Intel and AMD
>  > > feedback please)
>  > > >
>  > > >  In fact, the issue is from guest. In the guest's terminal,
>  > > it shows that "your
>  > > >  time source seems to be instable..."
>  > > >
>  > > >  >  -----Original Message-----
>  > > >  >  From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>  > > >  >  [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On
>  > > Behalf Of Zhang, Li
>  > > >  >  Sent: Tuesday, July 08, 2008 2:49 PM
>  > > >  >  To: dan.magenheimer@xxxxxxxxxx; Xen-Devel (E-mail)
>  > > >  >  Cc: Tian, Kevin
>  > > >  >  Subject: RE: [Xen-devel] Guest TSC and Xen (Intel and
>  > > AMD feedback please)
>  > > >  >
>  > > >  >  Hi, Dan
>  > > >  >
>  > > >  >  This is the patch which I think it has been completed
>  > > VT. But there is an
>  > > >  >  instable issue. The reason may be from that this
>  > > interception is not bound
>  > > >  >  to timer mode yet.
>  > > >  >
>  > > >  >  Thanks
>  > > >  >  --Li
>  > > >  >
>  > > >  >  >  -----Original Message-----
>  > > >  >  >  From: Dan Magenheimer [mailto:dan.magenheimer@xxxxxxxxxx]
>  > > >  >  >  Sent: Tuesday, July 08, 2008 11:34 AM
>  > > >  >  >  To: Zhang, Li; Xen-Devel (E-mail)
>  > > >  >  >  Cc: Tian, Kevin; dan.magenheimer@xxxxxxxxxx
>  > > >  >  >  Subject: RE: [Xen-devel] Guest TSC and Xen (Intel
>  > > and AMD feedback
>  > > >  please)
>  > > >  >  >
>  > > >  >  >  Thanks Kevin and Li --
>  > > >  >  >
>  > > >  >  >  A couple of questions:
>  > > >  >  >
>  > > >  >  >  1) If the EXITING flag to be set in vmcs.c is to be
>  > > controlled by a xen
>  > > >  >  boot
>  > > >  >  >  option, would this work:
>  > > >  >  >
>  > > >  >  >  static int opt_softtsc = 0;
>  > > >  >  >  boolean_param("softtsc", opt_softtsc);
>  > > >  >  >    :
>  > > >  >  >  min = /* original code */
>  > > >  >  >  if (opt_softtsc) min |= CPU_BASED_RDTSC_EXITING;
>  > > >  >  >
>  > > >  >  >  2) In vmx_rdtsc_intercept(/* need regs as param*/)
>  > > if we change the
>  > > >  >  >  rdtscll(tsc) to be tmptsc = hvm_get_guest_tsc() and
>  > > then set regs->edx
>  > > >  amd
>  > > >  >  >  regs->eax from tmptsc, are we almost done?
>  > > >  >  >
>  > > >  >  >  3) Des Linux or Windows use the CR4.TSD flag and, if
>  > > so, what code gets
>  > > >  >  called
>  > > >  >  >  to force the trap?
>  > > >  >  >
>  > > >  >  >  4) Does Linux or Windows use RDMSR/WRMSR of tsc?  Is
>  > > there already code
>  > > >  >  >  somewhere to emulate WRMSR of tsc?
>  > > >  >  >
>  > > >  >  >  Sorry I am not very familar with the details of the
>  > > ia32 instruction
>  > > >  set.
>  > > >  >  >
>  > > >  >  >  Thanks,
>  > > >  >  >  Dan
>  > > >  >  >
>  > > >  >  >  > -----Original Message-----
>  > > >  >  >  > From: Zhang, Li [mailto:li.zhang@xxxxxxxxx]
>  > > >  >  >  > Sent: Monday, July 07, 2008 9:00 PM
>  > > >  >  >  > To: dan.magenheimer@xxxxxxxxxx; Xen-Devel (E-mail)
>  > > >  >  >  > Cc: Tian, Kevin
>  > > >  >  >  > Subject: RE: [Xen-devel] Guest TSC and Xen (Intel and AMD
>  > > >  >  >  > feedback please)
>  > > >  >  >  >
>  > > >  >  >  >
>  > > >  >  >  > Hi, Dan
>  > > >  >  >  > This seems not to be enough. I will cook another patch.
>  > > >  >  >  >
>  > > >  >  >  > >  -----Original Message-----
>  > > >  >  >  > >  From: Zhang, Li
>  > > >  >  >  > >  Sent: Tuesday, July 08, 2008 10:28 AM
>  > > >  >  >  > >  To: Tian, Kevin; 'dan.magenheimer@xxxxxxxxxx';
>  > > 'Xen-Devel
>  > > >  (E-mail)'
>  > > >  >  >  > >  Subject: RE: [Xen-devel] Guest TSC and Xen
>  > > (Intel and AMD
>  > > >  >  >  > feedback please)
>  > > >  >  >  > >
>  > > >  >  >  > >  Hi, Dan
>  > > >  >  >  > >
>  > > >  >  >  > >  I just add some code to produce vmexit. The function
>  > > >  >  >  > vmx_rdtsc_intercept()
>  > > >  >  >  > >  is not completed. It is needed to add some code
>  > > to get the
>  > > >  >  >  > guest tsc.
>  > > >  >  >  > >
>  > > >  >  >  > >  Thanks
>  > > >  >  >  > >  --Li
>  > > >  >  >  > >
>  > > >  >  >  > >  >  -----Original Message-----
>  > > >  >  >  > >  >  From: Tian, Kevin
>  > > >  >  >  > >  >  Sent: Tuesday, July 08, 2008 9:39 AM
>  > > >  >  >  > >  >  To: 'dan.magenheimer@xxxxxxxxxx';
>  > Xen-Devel (E-mail)
>  > > >  >  >  > >  >  Cc: Zhang, Li
>  > > >  >  >  > >  >  Subject: RE: [Xen-devel] Guest TSC and Xen
>  > (Intel and
>  > > >  >  >  > AMD feedback please)
>  > > >  >  >  > >  >
>  > > >  >  >  > >  >  >From: Dan Magenheimer
>  > > [mailto:dan.magenheimer@xxxxxxxxxx]
>  > > >  >  >  > >  >  >Sent: 2008年7月5日 1:32
>  > > >  >  >  > >  >  >
>  > > >  >  >  > >  >  >> >Is this something that you (or Intel
>  > in general)
>  > > >  >  >  > could look at?
>  > > >  >  >  > >  >  >> >I would be happy to participate but I
>  > > don't think I
>  > > >  >  >  > understand
>  > > >  >  >  > >  >  >> >VT well enough.  Once the trap occurs,
>  > I suppose
>  > > >  >  >  > Xen system time
>  > > >  >  >  > >  >  >> >could be used as the virtual TSC,
>  > > possibly scaled up.
>  > > >  >  >  > >  >  >> >
>  > > >  >  >  > >  >  >>
>  > > >  >  >  > >  >  >> There should be tiny related to VT, as
>  > > only turning
>  > > >  >  >  > on some bit to
>  > > >  >  >  > >  >  >> allow RDTSC trapping and then the rest
>  > > stuff should be common
>  > > >  >  >  > >  >  >> how to handle it. We'll take a look, but can't
>  > > >  >  >  > commit the time due
>  > > >  >  >  > >  >  >> to other scheduled bandwidth. But if
>  > you'd like to
>  > > >  >  >  > jump in early
>  > > >  >  >  > >  >  >> we definitely can help with VT side.
>  > > >  >  >  > >  >  >
>  > > >  >  >  > >  >  >If you can post a patch with code that:
>  > > >  >  >  > >  >  >
>  > > >  >  >  > >  >  >1) declares a boolean global variable: softtsc = 0
>  > > >  >  >  > >  >  >2) if the variable is set, a rdtsc
>  > > instruction in any hvm
>  > > >  >  >  > >  >  >   domain causes a trap
>  > > >  >  >  > >  >  >3) the trap handler just does a physical
>  > > rdtsc and returns
>  > > >  >  >  > >  >  >
>  > > >  >  >  > >  >  >then I could probably take it from there.
>  > > >  >  >  > >  >
>  > > >  >  >  > >  >  OK, and Li in CC will take a look and bake a
>  > > patch for you.
>  > > >  >  >  > >  >
>  > > >  >  >  > >  >  Thanks,
>  > > >  >  >  > >  >  Kevin
>  > > >  >  >  >
>  > > >
>  > > >  _______________________________________________
>  > > >  Xen-devel mailing list
>  > > >  Xen-devel@xxxxxxxxxxxxxxxxxxx
>  > > >  http://lists.xensource.com/xen-devel
>  > >
>  > >

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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