On Wed, 2006-10-18 at 14:24 +0200, Schlägl Manfred jun. wrote:
> On Wed, 2006-10-18 at 12:35 +0200, Jan Kiszka wrote:
> 
> > I vote for solution 4:
> > 
> > --- include/rtdm/rttesting.h    (revision 1731)
> > +++ include/rtdm/rttesting.h    (working copy)
> > @@ -85,8 +85,8 @@ typedef struct rttst_overall_bench_res {
> > 
> >  typedef struct rttst_tmbench_config {
> >      int                     mode;
> > -    nanosecs_rel_t          period;
> >      int                     priority;
> > +    nanosecs_rel_t          period;
> >      int                     warmup_loops;
> >      int                     histogram_size;
> >      int                     histogram_bucketsize;
> > 
> > Could you check if this helps?
> > 
> > Thanks,
> > Jan
> > 
> 
> 
> Thanks! It works. ioctls are working
> 
> But there is another Problem: I've inserted debug messages
> 
> // USER-PROCESS
> -sh-3.00# ./run -- -t 1 -p 10000 -T 5
> *
> *
> * Type ^C to stop this application.
> *
> *
> Using /lib/modules/2.6.15.7/kernel/drivers/xenomai/testing/xeno_timerbench.ko
> == Sampling period: 10000 us
> == Test mode: in-kernel periodic task
> == All results in microseconds
> LATENCY: display send RTTST_RTIOC_TMBENCH_START:
> mode    0
> periode 1
> pri     99
> warmup  1
> hist_s  0
> hist_bs 1000
> fmax    0
> DEBUG: rt_dev_ioctl: request: 1075840528
> warming up...
> DEBUG: rt_dev_ioctl: request: -1070594560
> RTT|  00:00:01  (in-kernel periodic task, 10000 us period, priority 99)
> RTH|-----lat min|-----lat avg|-----lat max|-overrun|----lat best|---lat
> worst
> RTD|      29.369|      32.341|      35.879|       0|      29.369|
> 35.879
> DEBUG: rt_dev_ioctl: request: -1070594560
> RTD|      22.135|      32.381|      36.241|       0|      22.135|
> 36.241
> DEBUG: rt_dev_ioctl: request: -1070594560
> RTD|      21.050|      32.378|      37.326|       0|      21.050|
> 37.326
> DEBUG: rt_dev_ioctl: request: -1070594560
> DEBUG: rt_dev_ioctl: request: -1071118831
> ---|------------|------------|------------|--------|-------------------------
> RTS|-1095770.696|       0.001|      93.660|   93748|
> 00:00:05/00:00:05
> -sh-3.00#     
> 
> // KERNEL-OUTPUT
> 
> [42949410.980000] KERNEL: rt_tmbench_ioctl_nrt got request 1075840528
> [42949410.990000] KERNEL: rt_tmbench_ioctl_nrt got
> RTTST_RTIOC_TMBENCH_START:
> [42949411.020000] mode    0
> [42949411.020000] periode 10000000
> [42949411.030000] pri     99
> [42949411.040000] warmup  1
> [42949411.050000] hist_s  0
> [42949411.060000] hist_bs 1000
> [42949411.070000] fmax    0
> [42949411.080000] KERNEL: rt_tmbench_ioctl_nrt got request -1070594560
> [42949411.090000] rt_tmbench_ioctl_nrt: request
> -1070594560(RTTST_RTIOC_INTERM_BENCH_RES) -> ret = -ENOSYS(-38)
> [42949411.120000] rt_tmbench_ioctl_rt -1070594560
> [42949413.070000] KERNEL: rt_tmbench_ioctl_nrt got request -1070594560
> [42949413.090000] rt_tmbench_ioctl_nrt: request
> -1070594560(RTTST_RTIOC_INTERM_BENCH_RES) -> ret = -ENOSYS(-38)
> [42949413.120000] rt_tmbench_ioctl_rt -1070594560
> [42949414.070000] KERNEL: rt_tmbench_ioctl_nrt got request -1070594560
> [42949414.090000] rt_tmbench_ioctl_nrt: request
> -1070594560(RTTST_RTIOC_INTERM_BENCH_RES) -> ret = -ENOSYS(-38)
> [42949414.120000] rt_tmbench_ioctl_rt -1070594560
> [42949415.070000] KERNEL: rt_tmbench_ioctl_nrt got request -1070594560
> [42949415.090000] rt_tmbench_ioctl_nrt: request
> -1070594560(RTTST_RTIOC_INTERM_BENCH_RES) -> ret = -ENOSYS(-38)
> [42949415.120000] rt_tmbench_ioctl_rt -1070594560
> [42949415.290000] KERNEL: rt_tmbench_ioctl_nrt got request -1071118831
> [42949415.310000] rt_tmbench_ioctl_nrt: request -1071118831 -> ret =
> -ENOTTY(-25)
> 
> 
> 
> The RTTST_RTIOC_INTERM_BENCH_RES request is received by
> rt_tmbench_ioctl_nrt and rt_tmbench_ioctl_rt. Is this normal on arm?
> (on my x86 this happens only at the beginning of a test-run)
> 
> 
> Thank you
>       Manfred Schlaegl
> 
> 
> _______________________________________________
> Xenomai-help mailing list
> [email protected]
> https://mail.gna.org/listinfo/xenomai-help


Like above i had a problem using RTTST_RTIOC_TMBENCH_STOP too.


typedef struct rttst_bench_res {
    long long               avg;
    long                    min;
    long                    max;
    long                    overruns;
    long                    test_loops;
} rttst_bench_res_t;

typedef struct rttst_overall_bench_res {
    struct rttst_bench_res  result;
    long                    *histogram_avg;
    long                    *histogram_min;
    long                    *histogram_max;
} rttst_overall_bench_res_t;



sizeof(struct rttst_bench_res):
Kernel  24
User    24

sizeof(struct rttst_overall_bench_res):
Kernel  36
User    40


I used this Patch:

typedef struct rttst_overall_bench_res {
    struct rttst_bench_res  result;
+   char                    __fill;     /* fill byte */
    long                    *histogram_avg;
    long                    *histogram_min;
    long                    *histogram_max;
} rttst_overall_bench_res_t;

sizeof(struct rttst_overall_bench_res):
Kernel  40
User    40




        - Manfred

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to