* [Xenomai] realtime only with chrt command
@ 2018-05-05 8:02 Шевченко Тарас Григорьевич
0 siblings, 0 replies; only message in thread
From: Шевченко Тарас Григорьевич @ 2018-05-05 8:02 UTC (permalink / raw)
To: xenomai
Good day!
In attach my first code to test real-time Xenomai user space and kernel space
Module toogle gpio pin by command from app
the question is if i run my app with chrt -f 70 - i get hard real-time about -30 .. +30 mks ,
without command - there isnot predictable realtime reaction -500 ... + 500 mks
maybe i use some not real-time code ?
Below log from strace command
root@yeti-UDOO-x86:~/develop/Xeno/userspace/posix_timer# strace ./posix_timer 300
execve("./posix_timer", ["./posix_timer", "300"], [/* 33 vars */]) = 0
brk(NULL) = 0x23e7000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("tls/x86_64/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/tls/x86_64/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/xenomai/lib/tls/x86_64", 0x7fffd9016610) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/tls/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/xenomai/lib/tls", 0x7fffd9016610) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/x86_64/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat("/usr/xenomai/lib/x86_64", 0x7fffd9016610) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/libcobalt.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\300\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=176336, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f06782f2000
mmap(NULL, 2233832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0677eac000
mprotect(0x7f0677ecc000, 2093056, PROT_NONE) = 0
mmap(0x7f06780cb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1f000) = 0x7f06780cb000
mmap(0x7f06780cd000, 1512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f06780cd000
close(3) = 0
open("tls/x86_64/libmodechk.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libmodechk.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libmodechk.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libmodechk.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/libmodechk.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\7\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=8376, ...}) = 0
mmap(NULL, 2101328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0677caa000
mprotect(0x7f0677cab000, 2093056, PROT_NONE) = 0
mmap(0x7f0677eaa000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0) = 0x7f0677eaa000
close(3) = 0
open("tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=101024, ...}) = 0
mmap(NULL, 101024, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f06782d9000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260`\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=138696, ...}) = 0
mmap(NULL, 2212904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0677a8d000
mprotect(0x7f0677aa5000, 2093056, PROT_NONE) = 0
mmap(0x7f0677ca4000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f0677ca4000
mmap(0x7f0677ca6000, 13352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0677ca6000
close(3) = 0
open("tls/x86_64/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0!\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=31712, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f06782d8000
mmap(NULL, 2128832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0677885000
mprotect(0x7f067788c000, 2093056, PROT_NONE) = 0
mmap(0x7f0677a8b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f0677a8b000
close(3) = 0
open("tls/x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("tls/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("x86_64/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/xenomai/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\t\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1868984, ...}) = 0
mmap(NULL, 3971488, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f06774bb000
mprotect(0x7f067767b000, 2097152, PROT_NONE) = 0
mmap(0x7f067787b000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c0000) = 0x7f067787b000
mmap(0x7f0677881000, 14752, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0677881000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f06782d7000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f06782d6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f06782d5000
arch_prctl(ARCH_SET_FS, 0x7f06782d6700) = 0
mprotect(0x7f067787b000, 16384, PROT_READ) = 0
mprotect(0x7f0677ca4000, 4096, PROT_READ) = 0
mprotect(0x7f0677a8b000, 4096, PROT_READ) = 0
mprotect(0x7f0677eaa000, 4096, PROT_READ) = 0
mprotect(0x7f06780cb000, 4096, PROT_READ) = 0
mprotect(0x601000, 4096, PROT_READ) = 0
mprotect(0x7f06782f3000, 4096, PROT_READ) = 0
munmap(0x7f06782d9000, 101024) = 0
set_tid_address(0x7f06782d69d0) = 5459
set_robust_list(0x7f06782d69e0, 24) = 0
rt_sigaction(SIGRTMIN, {0x7f0677a92b50, [], SA_RESTORER|SA_SIGINFO, 0x7f0677a9e390}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x7f0677a92be0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f0677a9e390}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
open("/proc/self/cmdline", O_RDONLY) = 3
brk(NULL) = 0x23e7000
brk(0x2408000) = 0x2408000
read(3, "./posix_timer\000300\0", 1024) = 18
close(3) = 0
gettid() = 5459
rt_sigaction(SIGILL, {0x7f0677eb9630, [ILL], SA_RESTORER|SA_RESTART, 0x7f06774f04b0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGILL, {SIG_DFL, [ILL], SA_RESTORER|SA_RESTART, 0x7f06774f04b0}, {0x7f0677eb9630, [ILL], SA_RESTORER|SA_RESTART, 0x7f06774f04b0}, 8) = 0
mlockall(MCL_CURRENT|MCL_FUTURE) = 0
futex(0x7f06780cd09c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x7f06780ccd88, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGXCPU, {0x7f0677eba220, [], SA_RESTORER|SA_SIGINFO, 0x7f0677a9e390}, {SIG_DFL, [], 0}, 8) = 0
mmap(NULL, 8392704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f0676cba000
mprotect(0x7f0676cba000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f06774b9ff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f06774ba9d0, tls=0x7f06774ba700, child_tidptr=0x7f06774ba9d0) = 5460
sched_getparam(5459, [0]) = 0
sched_getscheduler(5459) = 0 (SCHED_OTHER)
sched_get_priority_max(SCHED_FIFO) = 99
sched_setscheduler(5459, SCHED_OTHER, [0]) = 0
rt_sigprocmask(SIG_BLOCK, [WINCH], [], 8) = 0
rt_sigaction(SIGWINCH, {0x7f0677ebe930, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f0677a9e390}, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x7f06780ccf00, FUTEX_WAKE_PRIVATE, 2147483647) = 0
mmap(NULL, 69632, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f06782e0000
mprotect(0x7f06782e0000, 4096, PROT_NONE) = 0
clone(child_stack=0x7f06782efff0, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f06782f09d0, tls=0x7f06782f0700, child_tidptr=0x7f06782f09d0) = 5461
futex(0x7fffd9016d58, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {1525506423, 0}, ffffffff) = -1 EAGAIN (Resource temporarily unavailable)
mlockall(MCL_CURRENT|MCL_FUTURE) = 0
futex(0x7f06782f09d0, FUTEX_WAIT, 5461, NULL^Cstrace: Process 5459 detached
<detached ...>
yeti@yeti-UDOO-x86:/usr/xenomai/sbin$ ./version
Xenomai/cobalt v3.0.6 -- #6362141 (2018-04-19 19:18:33 +0200)
yeti@yeti-UDOO-x86:/usr/xenomai/sbin$ uname -a
Linux yeti-UDOO-x86 4.9.90-xenomai-ssd #1 SMP Mon Apr 23 15:10:51 EEST 2018 x86_64 x86_64 x86_64 GNU/Linux
yeti@yeti-UDOO-x86:/usr/xenomai/bin$ sudo ./latency
[sudo] password for yeti:
== Sampling period: 100 us
== Test mode: periodic user-mode task
== All results in microseconds
warming up...
RTT| 00:00:01 (periodic user-mode task, 100 us period, priority 99)
RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst
RTD| 1.012| 2.888| 25.362| 0| 0| 1.012| 25.362
RTD| 0.725| 3.068| 18.487| 0| 0| 0.725| 25.362
RTD| 0.887| 2.992| 25.437| 0| 0| 0.725| 25.437
RTD| 1.262| 2.989| 21.050| 0| 0| 0.725| 25.437
RTD| 0.875| 2.792| 26.850| 0| 0| 0.725| 26.850
RTD| 1.062| 2.956| 17.475| 0| 0| 0.725| 26.850
RTD| 0.825| 2.754| 24.500| 0| 0| 0.725| 26.850
-------------- next part --------------
A non-text attachment was scrubbed...
Name: udoo_gpio.c
Type: text/x-c++src
Size: 4166 bytes
Desc: not available
URL: <http://xenomai.org/pipermail/xenomai/attachments/20180505/2875422a/attachment.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: text/x-makefile
Size: 369 bytes
Desc: not available
URL: <http://xenomai.org/pipermail/xenomai/attachments/20180505/2875422a/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: text/x-makefile
Size: 426 bytes
Desc: not available
URL: <http://xenomai.org/pipermail/xenomai/attachments/20180505/2875422a/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: posix_timer.c
Type: text/x-c++src
Size: 3070 bytes
Desc: not available
URL: <http://xenomai.org/pipermail/xenomai/attachments/20180505/2875422a/attachment-0001.c>
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-05-05 8:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-05 8:02 [Xenomai] realtime only with chrt command Шевченко Тарас Григорьевич
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.