1kHz timer behavior on Cyclone V

Joel Sherrill joel at rtems.org
Wed Dec 7 23:31:22 UTC 2016


On Dec 7, 2016 4:48 PM, "Oyake, Amalaye (398F)" <amalaye.oyake at jpl.nasa.gov>
wrote:

Hello Joel:



She is using the following function:



uint64_t rtems_clock_get_uptime_nanoseconds (void)



Returns the system uptime in nanoseconds.

Is this a monotonic time source? Could something preempt this function?



Could she also use:



1)    The RTEMS Rate Monotonic Manager, or the



2)    POSIX clock_gettime() ?




I lean to the problem being in how "report" is done. Formatting and
printing can be expensive. Especially if on a serial port. If the console
is polled, that would kill some time.

Keep a min/max for say 10000 firings and then report.

There is a tmtest for the rate monotonic manager. You can run that to get a
feel for the cost of its operations.



Regards,

-----------

* Amalaye Oyake                                       *

* Instrument Product Software Development Group  */\  *

* Jet Propulsion Laboratory, Pasadena            *||  *

*                                                /||\ *

**************************************************^^***





*From: *users <users-bounces at rtems.org> on behalf of Janet Schneider <
janetsc at fb.com>
*Date: *Wednesday, December 7, 2016 at 1:38 PM
*To: *"joel at rtems.org" <joel at rtems.org>
*Cc: *"users at rtems.org" <users at rtems.org>

*Subject: *Re: 1kHz timer behavior on Cyclone V



Hi - thanks for the responses!



It is a very simple application that is only processing a 1 kHz timer for
the purposes of this test.  There is no other CPU load on the system.  The
only thing I do right now when the timer fires is calculate the time
difference since the last timer fired.  Once a second, I output the
average, min and max for that second.



I do have a delay it the main task, since it is just sitting there idle.
Would that account for such an increase in the time between the timer
firing?



I will try the POSIX API next.



Thank you,

Janet
------------------------------

*From:* Joel Sherrill <joel at rtems.org>
*Sent:* Wednesday, December 7, 2016 1:15:23 PM
*To:* Janet Schneider
*Cc:* users at rtems.org
*Subject:* Re: 1kHz timer behavior on Cyclone V







On Wed, Dec 7, 2016 at 11:44 AM, Janet Schneider <janetsc at fb.com> wrote:

Hello,



I am running a 1kHz timer test on the Altera Cyclone V dev board.  I
am trying to measure the average time period between the timer firing, and
any variance on that latency.



I'm seeing an average of 1003 microseconds between the timer firing.  About
once a second, I see the maximum time between the timer firing go up to
2500-3000 microseconds.



There are two sets of timers. One is per clock tick and one is per second.



My guesses are:



Do you have a sleep/delay statement in your thread?

There may be some work updating the time that occurs once per second. The
implementation of this area has changed so I don't remember offhand if this
is still the case.





I'm using rtems_clock_get_uptime_nanoseconds() to measure the time that the
timer fires.  I have CONFIGURE_MICROSECONDS_PER_TICK set to 500.



What happens when the HW interrupt timer fires?



--joel

Has anyone else seen this (or something similar)?  Any ideas what might be
happening here?



Thanks,

Janet


_______________________________________________
users mailing list
users at rtems.org
http://lists.rtems.org/mailman/listinfo/users
<https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.rtems.org_mailman_listinfo_users&d=DgMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=ipHQnEo1XnvLdE9wWxwn7A&m=PSdN3QZ704zCArL-e2FC8HNKBuxOYGI0eRi5dMuQb4c&s=eTxFRJzt-tRGJuYUztqYK5Oxmhq9j8bfp3the-WZgl4&e=>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20161207/a16174e1/attachment-0001.html>


More information about the users mailing list