> it appears that this approach is not compatible
> with the use of a multi-core virtual machine
FWIW: The issue is probably related to the windows performance counter being
read directly off a timer tick-off register, but there can be an independent
copy of that hardware for each core. They fixed that issue in SMP versions
of Windows at some point in the past, but this virtual machine apparently
hasn't dealt with the issue.
Jeff
______________________________________________________
Jeffrey O. Hill Email [email protected]
LANL MS H820 Voice 505 665 1831
Los Alamos NM 87545 USA FAX 505 665 5107
Message content: TSPA
With sufficient thrust, pigs fly just fine. However, this is
not necessarily a good idea. It is hard to be sure where they
are going to land, and it could be dangerous sitting under them
as they fly overhead. -- RFC 1925
> -----Original Message-----
> From: [email protected] [mailto:tech-talk-
> [email protected]] On Behalf Of Andrew Johnson
> Sent: Thursday, February 03, 2011 3:14 PM
> To: [email protected]; [email protected]
> Subject: Re: time discontinuity detected
>
> Hi Carsten,
>
> On Wednesday 02 February 2011 06:01:14 Carsten Winkler (HZB) wrote:
> > Epics time goes crazy if I run softIoc with Epics base 3.14.12 (with
> all
> > official patches) in a virtual machine.
> >
> > I use following configuration:
> > Hypervisor: kvm
> > Architecture: x86_64
> > Guest: Windows XP (32-bit)
> >
> > All works fine if I use a single core VM.
> >
> > But if I use two or more CPU cores Epics time does several funny
> actions.
> > * I also get events with a new value but previous time stamp.
> > * Timestamps are wrong and in the future.
> > * I get the message: "currentTime::getCurrentTime(): 7623636.000000sec
> time
> > discontinuity detected".
>
> The Windows version of osdTime.cpp prints that message if it sees time
> going
> backwards. The code uses a tries to improve the resolution with which it
> sees
> the current time using WIN32 high resolution performance counters, and it
> appears that this approach is not compatible with the use of a multi-core
> virtual machine. This is the "PerfCounter" Current Time Provider that
> you
> should currently see listed in the output from the IOC's
> generalTimeReport
> command.
>
> EPICS Base does allow you to register and use your own time providers
> though,
> so if you can identify a better approach for obtaining accurate high-
> resolution time from within a multi-core VM it is possible to write and
> install your own alternative to the built-in provider without having to
> make
> any changes to EPICS Base.
>
> - Andrew
> --
> If a man is offered a fact which goes against his instincts, he will
> scrutinize it closely, and unless the evidence is overwhelming, he will
> refuse to believe it. If, on the other hand, he is offered something
> which affords a reason for acting in accordance to his instincts, he
> will accept it even on the slightest evidence. -- Bertrand Russell
- References:
- time discontinuity detected Carsten Winkler (HZB)
- Re: time discontinuity detected Andrew Johnson
- Navigate by Date:
- Prev:
RE: time discontinuity detected Jeff Hill
- Next:
Re: Trouble with mcaR6-12-4 and EPICS 3.14.12 (cygwin-x86) Carl Willis
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: time discontinuity detected Jeff Hill
- Next:
Trouble with mcaR6-12-4 and EPICS 3.14.12 (cygwin-x86) Carl Willis
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|