Niklaus Giger wrote:
Am Montag, 25. September 2006 17:57 schrieb Philippe Gerum:
On Sun, 2006-09-24 at 23:07 +0200, Wolfgang Grandegger wrote:
Niklaus Giger wrote:
<..>
Ok, we can go for the lazy fix here, since this code is poised to
disappear anyway. I've merged a variant of the above we already use for
the ARM port, which scales down the period to microseconds instead of
losing precision on the count of timebase ticks per jiffy.

- ticks = ns * tb_ticks_per_jiffy / (1000000000 / HZ);
+ ticks = (ns / 1000) * tb_ticks_per_jiffy / (1000000 / HZ);
Thanks for finding this solution. I tried to understand mulhwu and mulhwu_scale_factor but couldn't figure out a correct solution in a short time.

I took me also some time to understand the meaning. mulhwu(a,b) returns the high 32 bits (32..63) of a*b. A possible quick fix could be:

  if (mulhwu(ns, tb_ticks_per_jiffy) > 0)
        ticks = (ns / 1000) * tb_ticks_per_jiffy / (1000000 / HZ);
  else
        ticks = ns * tb_ticks_per_jiffy / (1000000000 / HZ);

But Philippe already applied a reasonable fix.


The buildbot cannot presently power on and off my PPC405 target board, as the my power outlet switching device is broken and has been sent back for a remplacement.

I did however run some tests manually and have the following questions about the output:
Why do I get negative values for latenciy values?
Is the output of lines like "Xenomai: Switching display-3238 to secondary mode after exception #1025 from user-space at 0x100033c4 (pid 3240)" harmless or the result of a activated CONFIG_XENO_OPT_DEBUG<..> option?

Mon Sep 25 20:20:33 UTC 2006
running: ./run -- -T 5 -t2 # latency
*
*
* Type ^C to stop this application.
*
Xenomai: Switching display-3238 to secondary mode after exception #1025 from user-space at 0x100033c4 (pid 3240)
== Sampling period: 100 us
== Test mode: in-kernel timer handler
== All results in microseconds
warming up...
RTT|  00:00:01  (in-kernel timer handler, 100 us period, priority 99)
RTH|-----lat min|-----lat avg|-----lat max|-overrun|----lat best|---lat worst
RTD|      -5.108|      -4.754|      -0.905|       0|      -5.108|      -0.905
RTD|      -4.963|      -4.871|       1.155|       0|      -5.108|       1.155
Xenomai: Switching display-3238 to secondary mode after exception #1025 from user-space at 0xfda9638 (pid 3240)
RTD|      -4.963|      -4.758|      16.020|       0|      -5.108|      16.020
RTD|      -6.313|      -4.861|      10.980|       0|      -6.313|      16.020
Xenomai: Switching display-3238 to secondary mode after exception #1025 from user-space at 0xfe7c1c4 (pid 3240)
---|------------|------------|------------|--------|-------------------------
RTS|      -6.313|      -4.811|      16.020|       0|    00:00:05/00:00:05
Xenomai: stopping RTDM services.

Best regards


_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to