From: Jan Kiszka <jan.kiszka@domain.hid>
To: "\"Schlägl \\\"Manfred jun.\\\"\"" <manfred.schlaegl@domain.hid>
Cc: xenomai-help <xenomai@xenomai.org>
Subject: Re: [Xenomai-help] Adeos/Xenomai Arm Port
Date: Wed, 18 Oct 2006 12:35:54 +0200 [thread overview]
Message-ID: <4536038A.4000002@domain.hid> (raw)
In-Reply-To: <1161157955.5093.3.camel@domain.hid>
[-- Attachment #1: Type: text/plain, Size: 4785 bytes --]
Schlägl Manfred jun. wrote:
> On Tue, 2006-10-17 at 17:39 +0200, Schlägl Manfred jun. wrote:
>
>> 5. latency
>>
>> For periodic user-mode task i need very high periods > 1000us.
>>
>>
>> Here are the latency-checks with printk's of the ioctls:
>>
>> -sh-3.00# ./run -- -t 1
>> *
>> *
>> * Type ^C to stop this application.
>> *
>> *
>> == Sampling period: 100 us
>> == Test mode: in-kernel periodic task
>> == All results in microseconds
>> [42949519.180000] rt_tmbench_ioctl_rt: request 1076364816 -> ret =
>> -ENOTTY(-25)
>> latency: failed to start in-kernel timer benchmark, code -25
>> [42949523.000000] rt_tmbench_ioctl_nrt: request -1071118831 -> ret =
>> -ENOTTY(-25)
>> ---|------------|------------|------------|--------|-------------------------
>> RTS|-1096532.504| 0.001| 93.252| 93340|
>> 00:00:03/00:00:03
>>
>> -sh-3.00# ./run -- -t 2
>> *
>> *
>> * Type ^C to stop this application.
>> *
>> *
>> == Sampling period: 100 us
>> == Test mode: in-kernel timer handler
>> == All results in microseconds
>> [42949529.090000] rt_tmbench_ioctl_rt: request 1076364816 -> ret =
>> -ENOTTY(-25)
>> latency: failed to start in-kernel timer benchmark, code -25
>> [42949534.680000] rt_tmbench_ioctl_nrt: request -1071118831 -> ret =
>> -ENOTTY(-25)
>> ---|------------|------------|------------|--------|-------------------------
>> RTS|-1093751.320| 0.001| 93.252| 93340|
>> 00:00:04/00:00:04
>>
>>
>> Userspace-codes differ from kernelspace-codes, I think...
>
>
>
> Yes it does!!!
>
>
>
> #define RTTST_RTIOC_TMBENCH_START \
> _IOW(RTIOC_TYPE_TESTING, 0x10, struct rttst_tmbench_config)
>
> two different results in kernel-/user-space
>
> sizeof(struct rttst_tmbench_config)
> -> kernel 32
> -> user 40
>
>
> typedef struct rttst_tmbench_config {
> int mode;
> uint64_t period;
> int priority;
> int warmup_loops;
> int histogram_size;
> int histogram_bucketsize;
> int freeze_max;
> } rttst_tmbench_config_t;
>
> sizeof(struct rttst_tmbench_config_t)
> -> kernel 32 (uses packed-structure)
> -> user 40 (uses unpacked-structure)
>
> sizeof(uint64_t)
> -> kernel 8
> -> user 8
>
> sizeof(int)
> -> kernel 4
> -> user 4
>
>
> Difference has something to do with the internal structure of
> rttst_tmbench_config.
>
>
> Solution 1: Force userspace-app and kernel to use packed structure
> --------------
> typedef struct rttst_tmbench_config {
> int mode;
> uint64_t period;
> int priority;
> int warmup_loops;
> int histogram_size;
> int histogram_bucketsize;
> int freeze_max;
> } __attribute__((packed)) rttst_tmbench_config_t;
>
> sizeof(struct rttst_tmbench_config_t)
> -> kernel 32 (uses packed-structure)
> -> user 32 (uses packed-structure)
>
> Has to be done to all structures! (compiler-flag -fpack-struct)
>
> Problems:
> * problems with libs (see
> http://gcc.gnu.org/ml/gcc-help/2005-01/msg00257.html)
> * possibly problems with typedef ????
>
>
> Solution 2: Force userspace-app and kernel to use unpacked structure
> --------------
> typedef struct rttst_tmbench_config {
> int mode;
> uint64_t period;
> int priority;
> int warmup_loops;
> int histogram_size;
> int histogram_bucketsize;
> int freeze_max;
> } __attribute__((unpacked)) rttst_tmbench_config_t;
>
>
> Kernel ignores the attribute!
>
> Theoretically:
> sizeof(struct rttst_tmbench_config_t)
> -> kernel 40 (uses unpacked-structure)
> -> user 40 (uses unpacked-structure)
>
> Has to be done to all structures!
>
>
>
>
> Solution 3:
> --------------
> change kernel-configuration to use unpacked structures by default.
>
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
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]
next prev parent reply other threads:[~2006-10-18 10:35 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-17 15:39 [Xenomai-help] Adeos/Xenomai Arm Port Schlägl Manfred jun.
2006-10-18 7:52 ` Schlägl Manfred jun.
2006-10-18 10:35 ` Jan Kiszka [this message]
2006-10-18 12:24 ` Schlägl Manfred jun.
2006-10-18 12:33 ` Jan Kiszka
2006-10-18 12:48 ` Gilles Chanteperdrix
2006-10-21 14:56 ` Schlägl Manfred jun.
2006-10-21 16:44 ` Jan Kiszka
2006-10-25 8:03 ` Schlägl Manfred jun.
2006-10-18 10:25 ` Philippe Gerum
2006-10-18 12:05 ` Gilles Chanteperdrix
-- strict thread matches above, loose matches on Subject: below --
2006-10-18 15:16 Schlägl Manfred jun.
2006-10-18 15:27 ` Jan Kiszka
2006-10-18 15:56 ` Schlägl Manfred jun.
2006-10-19 5:52 ` Jan Kiszka
2006-10-21 12:11 ` Schlägl Manfred jun.
2006-10-17 9:23 Schlägl Manfred jun.
2006-10-17 9:37 ` Jan Kiszka
2006-10-16 15:48 Schlägl Manfred jun.
2006-10-16 16:24 ` Jan Kiszka
2006-10-16 18:20 ` Gilles Chanteperdrix
2006-10-16 21:30 ` Philippe Gerum
2006-10-17 8:15 ` Gilles Chanteperdrix
2006-10-17 8:38 ` Gilles Chanteperdrix
2006-10-17 9:54 ` Philippe Gerum
2006-10-17 10:04 ` Philippe Gerum
2006-10-17 12:05 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4536038A.4000002@domain.hid \
--to=jan.kiszka@domain.hid \
--cc=manfred.schlaegl@domain.hid \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.