EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: [Merge] ~epics-core/epics-base/+git/Com:use-monotonic into epics-base:7.0
From: Andrew Johnson via Core-talk <[email protected]>
To: mdavidsaver <[email protected]>
Date: Fri, 23 Aug 2019 21:07:51 -0000
Review: Approve

The drift of the 1-second scan thread on Linux has disappeared since the change (in 7.0.x) from CLOCK_MONOTONIC_RAW to CLOCK_MONOTONIC. I will send a graph showing my measurements to core-talk.

However this merge request changes the epicsMonotonicGet() routine from being optional to essential. This is a fairly new API, and contrary to a comment in the new epicsTime::getMonotonic() method it *can* currently fail, and will do on all vxWorks-ppc systems, even at APS because I haven't distributed any OS images with the necessary changes yet. Thus those BSP changes must be made optional before we can merge this. I just pushed the necessary changes.

Previously the VxWorks osdMonotonicInit() routine did a symbol look-up for sysTimeBaseFreq() and called it, warning if it wasn't present or returned 0. Now that the monotonic clock is essential it measures the time-base tick rate for itself if the BSP can't tell it. This takes 1 second at C++ static construction time:

  load "libComTestHarness.munch"
  osdMonotonicInit: Measuring CPU time-base frequency ... 24999799 ticks/sec.

The value returned by sysTimeBaseFreq() for this board would have been:

  iocanj> sysGetBusSpd() / 4
  value = 24999488

which seems close enough (~12 ppm). The result passes the libCom tests.

Approving, but this still needs an entry in the Release Notes before merging.

-- 
https://code.launchpad.net/~epics-core/epics-base/+git/Com/+merge/361380
Your team EPICS Core Developers is subscribed to branch epics-base:7.0.

Replies:
Re: [Merge] ~epics-core/epics-base/+git/Com:use-monotonic into epics-base:7.0 Johnson, Andrew N. via Core-talk

Navigate by Date:
Prev: Dates for a Codeathon at Diamond Johnson, Andrew N. via Core-talk
Next: Re: [Merge] ~epics-core/epics-base/+git/Com:use-monotonic into epics-base:7.0 Johnson, Andrew N. via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: [Merge] ~epics-core/epics-base/+git/Com:use-monotonic into epics-base:7.0 Andrew Johnson via Core-talk
Next: Re: [Merge] ~epics-core/epics-base/+git/Com:use-monotonic into epics-base:7.0 Johnson, Andrew N. via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 23 Aug 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·