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  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: [Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks
From: Ralph Lange via Core-talk <core-talk at aps.anl.gov>
To: core-talk at aps.anl.gov
Date: Mon, 03 Feb 2020 16:14:15 -0000
Well, in both cases (HIGH delays and callbackRequestDelay) we seem to
have a threshold for the requested delay with a response switching
between a 1 tick delay and a 0 tick delay.

Even with your statement
> ...seems to take a random amount of time between 0 and 0.01666 seconds.
> This is exactly what I expect if the delay does wait for the next
> clock tick, just like epicsThreadSleep.

I have to say that I do not like that behavior. Agreed that it may only
play out in few real life use cases, a delay API that cannot promise the
delay seems awkward and wrong. Note that for any delay request, a system
with a clock tick larger than the requested delay will response with an
arbitrary delay between zero and one clock tick, which is unrelated to
the requested value.

Much like the fundamental difference between a "snooze" timer (don't
wake me up before...) and an alarm setting (wake me up no later than...)
the use cases for a delay and a timer are different and the API promises
should reflect that.

IMHO: A requested delay > 0 shall never call back before the requested delay has passed. If waiting for the next system tick comes back too early, delay shall wait for another system tick.
Immediate call back is acceptable (and somewhat expected) for a requested delay = 0.

-- 
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1861612

Title:
  callbackRequestDelay not waiting for 1/60 sec on vxWorks

Status in EPICS Base:
  New

Bug description:
  The problem is documented in this tech-talk thread:
  https://epics.anl.gov/tech-talk/2020/msg00308.php

  In 7.0.3.1, but not in 7.0.3, callbackRequestDelay(1/60) results in
  100% CPU time, most of the time in cbHigh.

  This happens on vxWorks 6.9.4.1 and was first seen with the scaler
  record with multiple types of scaler hardware and device support.

To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1861612/+subscriptions

References:
[Bug 1861612] [NEW] callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk

Navigate by Date:
Prev: [Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
Next: [Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: [Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
Next: [Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 03 Feb 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·