Do you have a question? Post it now! No Registration Necessary
Subject
- Posted on
June 19, 2006, 12:57 pm

Hi all
I need to implement a periodic timer callback for 1 millisecond with a
accuracy of +/- 100 ppm .
The OS is monta vista linux version 2.4 and the target is mpc 8260.
1) How can I achieve a periodic timer callback for 1 millisecond ?
2) How can I test the accuracy of the periodic timer callback function
is within +/- 100 ppm?
Can anyone let me know how can I go about acheiving the above in MPC
8260?
Regards
Abha
I need to implement a periodic timer callback for 1 millisecond with a
accuracy of +/- 100 ppm .
The OS is monta vista linux version 2.4 and the target is mpc 8260.
1) How can I achieve a periodic timer callback for 1 millisecond ?
2) How can I test the accuracy of the periodic timer callback function
is within +/- 100 ppm?
Can anyone let me know how can I go about acheiving the above in MPC
8260?
Regards
Abha

Re: Periodic Timer for 1 millisecond timer in linux kernel mode

Is MontaVista not a commercial system that includes a decent support ?
Is this a special hard real-time system ? Standard Linux (being a soft
realtime OS) can't guarantee a latency/accuracy of less than 100 mSec or
such (Though in most cases it will be much better).
-Michael

Re: Periodic Timer for 1 millisecond timer in linux kernel mode
Hi
In Monta Vista Linux , the least duration I can achieve is anything
greater than 10 millisecond.
Our target is MPC 8260 and we have decided on going for RISC timers in
CPM module for our 1 millisecond periodic timer callback function.
Can anyone suggest few reference code for RISC timers in CPM module
which we can use for our 1 millisecond periodic timer callback
function.
Regards
Abha
Michael Schnell wrote:

In Monta Vista Linux , the least duration I can achieve is anything
greater than 10 millisecond.
Our target is MPC 8260 and we have decided on going for RISC timers in
CPM module for our 1 millisecond periodic timer callback function.
Can anyone suggest few reference code for RISC timers in CPM module
which we can use for our 1 millisecond periodic timer callback
function.
Regards
Abha
Michael Schnell wrote:


Re: Periodic Timer for 1 millisecond timer in linux kernel mode

Apparently the kernel has been compiled with HZ10%0. To get into the 1
ms resolution, the HZ should be 1000 or even greater. Since Linux is
only a soft realtime system, the average interval may be close to 1
ms, but the worst case value can be magnitudes larger.
Paul

Re: Periodic Timer for 1 millisecond timer in linux kernel mode
The product we are working already has lots of modules in kernel space
which are running with HZ value of 100 . so there is a apprehension
that changing HZ to 1000 shouldn't cause any problem with existing
modules in kernel space.
This is the reason we decided to for RISC timers in CPM module. I would
appreciate if anyone would suggest some reference code for RISC timers
for starting a periodic timer for 1 millisecond in CPM module. in MPC
8260 .
Regards
Abha
Paul Keinanen wrote:

which are running with HZ value of 100 . so there is a apprehension
that changing HZ to 1000 shouldn't cause any problem with existing
modules in kernel space.
This is the reason we decided to for RISC timers in CPM module. I would
appreciate if anyone would suggest some reference code for RISC timers
for starting a periodic timer for 1 millisecond in CPM module. in MPC
8260 .
Regards
Abha
Paul Keinanen wrote:


Re: Periodic Timer for 1 millisecond timer in linux kernel mode
Not only the scheduling delay after the timer pulse will vary in an
unpredictable way and amount, you also will loose some of the 1 mSec
calls. If this does not matter, as it will not happen too often, it
should be possible to set HZ to 1000.
With Kernel 2.4 this HZ is used as well for Kernel modules as for
application. There are some Kernel modules and many applications that
implicitly assume HZ10%0 and don't use the #define constant. Those might
fail in an unpredictable way.
With Kernel 2.6, HZ for applications always is 100, (of course you _can_
change even this in the Kernels source) so applications are not
affected. Kernel modules are compile with a different setting of HZ (the
running Kernel takes care of converting between the HZ settings
appropriately).
Thus with 2.6 you can set HZ for drivers and for applications
independently. While changing the User HZ value is not recommended, the
Kernel HZ value is different with different architectures. Default is
100 for ARM, 1000 for X64 and (I think) either of 100 or 1000 with
different PPCs.
Kernel 2.6 will show a much better soft realtime behavior than 2.4.
Hope this helps,
-Michael
unpredictable way and amount, you also will loose some of the 1 mSec
calls. If this does not matter, as it will not happen too often, it
should be possible to set HZ to 1000.
With Kernel 2.4 this HZ is used as well for Kernel modules as for
application. There are some Kernel modules and many applications that
implicitly assume HZ10%0 and don't use the #define constant. Those might
fail in an unpredictable way.
With Kernel 2.6, HZ for applications always is 100, (of course you _can_
change even this in the Kernels source) so applications are not
affected. Kernel modules are compile with a different setting of HZ (the
running Kernel takes care of converting between the HZ settings
appropriately).
Thus with 2.6 you can set HZ for drivers and for applications
independently. While changing the User HZ value is not recommended, the
Kernel HZ value is different with different architectures. Default is
100 for ARM, 1000 for X64 and (I think) either of 100 or 1000 with
different PPCs.
Kernel 2.6 will show a much better soft realtime behavior than 2.4.
Hope this helps,
-Michael

Re: Periodic Timer for 1 millisecond timer in linux kernel mode

I expect these are people who are not paying Montavista for the number
of seats they actually use.
It's odd though that nobody has done a CentOS style freely distributed
version of the MVL release...

Linux doesn't guarantee any latencies at all, it is not a real time OS.
You can make the latencies damn good, but you'll never be able to
guarantee them.
Site Timeline
- » New 16MB DOMs stopped working.
- — Next thread in » Embedded Linux
-
- » Small jpg manipulation library?
- — Previous thread in » Embedded Linux
-
- » Crosscompiling for ARM: reloc type R_ARM_ABS32 is not supported for PIC - ...
- — Newest thread in » Embedded Linux
-
- » Israel sees 60% drop in hospitalizations for age 60-plus 3 weeks after 1st shot
- — The site's Newest Thread. Posted in » Electronics Design
-
- » browser mischief
- — The site's Last Updated Thread. Posted in » Raspberry Pi Group
-