Xu, Dongxiao
2009-Dec-11 11:53 UTC
[Xen-devel][PATCH 01/02] pvrdtscp: move the place of write_rdtscp_aux()
Pvrdtscp: move write_rdtscp_aux() to paravirt_ctxt_switch_to() - Currently write_rdtscp_aux() is placed in update_vcpu_system_time(), which is called by schedule() before context_switch(). This will break the HVM guest TSC_AUX state because at this point, MSR hasn''t beed saved for HVM guests.So put the function in the point when a PV vcpu is really scheduled in. Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dan Magenheimer
2009-Dec-11 14:51 UTC
RE: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of write_rdtscp_aux()
This patch is wrong for TSC_MODE_PVRDTSCP. The original code should be left in __update_vcpu_system_time and the context switch code should write to TSC_AUX only if tsc_mode is *NOT* TSC_MODE_PVRDTSCP because the implementation of full rdtscp functionality and TSC_MODE_PVRDTSCP mode are incompatible. But I continue to question if this should be done at all. See other thread.> -----Original Message----- > From: Xu, Dongxiao [mailto:dongxiao.xu@intel.com] > Sent: Friday, December 11, 2009 4:54 AM > To: xen-devel@lists.xensource.com > Cc: Keir Fraser > Subject: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of > write_rdtscp_aux() > > > Pvrdtscp: move write_rdtscp_aux() to paravirt_ctxt_switch_to() > - Currently write_rdtscp_aux() is placed in > update_vcpu_system_time(), which > is called by schedule() before context_switch(). This will > break the HVM guest > TSC_AUX state because at this point, MSR hasn''t beed saved > for HVM guests.So > put the function in the point when a PV vcpu is really scheduled in. > > Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Xu, Dongxiao
2009-Dec-11 15:31 UTC
RE: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of write_rdtscp_aux()
Dan Magenheimer wrote:> This patch is wrong for TSC_MODE_PVRDTSCP. The original > code should be left in __update_vcpu_system_time and > the context switch code should write to TSC_AUX only > if tsc_mode is *NOT* TSC_MODE_PVRDTSCP because the > implementation of full rdtscp functionality and > TSC_MODE_PVRDTSCP mode are incompatible.Could you detail the wrong place? Appreciate for this! In my patch, I have done save/restore for guest/host TSC_AUX MSR, so it will not break PVRDTSC logic.> > But I continue to question if this should be done at all. > See other thread. > >> -----Original Message----- >> From: Xu, Dongxiao [mailto:dongxiao.xu@intel.com] >> Sent: Friday, December 11, 2009 4:54 AM >> To: xen-devel@lists.xensource.com >> Cc: Keir Fraser >> Subject: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of >> write_rdtscp_aux() >> >> >> Pvrdtscp: move write_rdtscp_aux() to paravirt_ctxt_switch_to() >> - Currently write_rdtscp_aux() is placed in >> update_vcpu_system_time(), which >> is called by schedule() before context_switch(). This will >> break the HVM guest >> TSC_AUX state because at this point, MSR hasn''t beed saved >> for HVM guests.So >> put the function in the point when a PV vcpu is really scheduled in. >> >> Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Dan Magenheimer
2009-Dec-11 16:14 UTC
RE: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of write_rdtscp_aux()
I am OK with this patch [01/02] now (see other thread), though still would like the discussion to continue about the other patch [02/02]. Thanks, Dan> -----Original Message----- > From: Xu, Dongxiao [mailto:dongxiao.xu@intel.com] > Sent: Friday, December 11, 2009 8:31 AM > To: Dan Magenheimer; xen-devel@lists.xensource.com > Cc: Keir Fraser > Subject: RE: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of > write_rdtscp_aux() > > > Dan Magenheimer wrote: > > This patch is wrong for TSC_MODE_PVRDTSCP. The original > > code should be left in __update_vcpu_system_time and > > the context switch code should write to TSC_AUX only > > if tsc_mode is *NOT* TSC_MODE_PVRDTSCP because the > > implementation of full rdtscp functionality and > > TSC_MODE_PVRDTSCP mode are incompatible. > > Could you detail the wrong place? Appreciate for this! > In my patch, I have done save/restore for guest/host > TSC_AUX MSR, so it will not break PVRDTSC logic. > > > > > But I continue to question if this should be done at all. > > See other thread. > > > >> -----Original Message----- > >> From: Xu, Dongxiao [mailto:dongxiao.xu@intel.com] > >> Sent: Friday, December 11, 2009 4:54 AM > >> To: xen-devel@lists.xensource.com > >> Cc: Keir Fraser > >> Subject: [Xen-devel][PATCH 01/02] pvrdtscp: move the place of > >> write_rdtscp_aux() > >> > >> > >> Pvrdtscp: move write_rdtscp_aux() to paravirt_ctxt_switch_to() > >> - Currently write_rdtscp_aux() is placed in > >> update_vcpu_system_time(), which > >> is called by schedule() before context_switch(). This will > >> break the HVM guest > >> TSC_AUX state because at this point, MSR hasn''t beed saved > >> for HVM guests.So > >> put the function in the point when a PV vcpu is really > scheduled in. > >> > >> Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel