* [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU
@ 2012-10-05 9:47 Thierry Bultel
2012-10-05 10:10 ` Gilles Chanteperdrix
2012-10-05 12:31 ` Gilles Chanteperdrix
0 siblings, 2 replies; 7+ messages in thread
From: Thierry Bultel @ 2012-10-05 9:47 UTC (permalink / raw)
To: xenomai
Hi,
My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch,
on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO
My test case is quite simple.
The main process is as such:
-----------------
int main ( ......
pthread_set_name_np(pthread_self(), "MAIN PROCESS");
if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0)
{
LOG("pthread_set_mode_np FAILED\n");
exit(0);
}
for (;;)
{
struct timespec delay = { 10, 0 };
nanosleep(&delay,NULL);
}
----------
The MSW counter keeps increasing, whereas no SIGXCPU is delivered:
[root@buildroot ~]# cat /proc/xenomai/stat
CPU PID MSW CSW PF STAT %CPU NAME
0 0 0 1131 0 00500080 99.6 ROOT
0 717 95 189 0 00b40184 0.0 MAIN PROCESS
0 0 0 381587 0 00000000 0.4 IRQ34: [timer]
The build command:
arm-linux-gcc -fmessage-length=0 -pipe -Wall -Werror -g -DNOT_USE_DYNAMIC_LOADING
-I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai
-D_GNU_SOURCE -D_REENTRANT -D__XENO__
-I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai/posix
-c /home/tbultel/workspace/agv/linux/simerimcan/sim_agv_can_main.c
-o /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o
-MMD -MF/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.d
-I. -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/opt/can/include/canfestival-xenomai
-I"="/usr/include/xenomai -I"="/usr/include/xenomai/posix
arm-linux-gcc -lrt -lpthread -rdynamic
-L/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib
-lxenomai -lpthread_rt
-Wl,@/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib/posix.wrappers
-o /home/tbultel/workspace/agv/../bin/arm/sim_agv_can-xenomai
/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o
/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_bus.o
/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_erim_can_log.o
Thanks
Thierry
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU 2012-10-05 9:47 [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU Thierry Bultel @ 2012-10-05 10:10 ` Gilles Chanteperdrix 2012-10-05 10:22 ` Thierry Bultel 2012-10-05 12:31 ` Gilles Chanteperdrix 1 sibling, 1 reply; 7+ messages in thread From: Gilles Chanteperdrix @ 2012-10-05 10:10 UTC (permalink / raw) To: Thierry Bultel; +Cc: xenomai On 10/05/2012 11:47 AM, Thierry Bultel wrote: > Hi, > > My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch, > on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO > > My test case is quite simple. > The main process is as such: > > ----------------- > > int main ( ...... > > > pthread_set_name_np(pthread_self(), "MAIN PROCESS"); > > if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0) > { > LOG("pthread_set_mode_np FAILED\n"); > exit(0); > } > > for (;;) > { > struct timespec delay = { 10, 0 }; > nanosleep(&delay,NULL); > } mlockall missing. -- Gilles. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU 2012-10-05 10:10 ` Gilles Chanteperdrix @ 2012-10-05 10:22 ` Thierry Bultel 0 siblings, 0 replies; 7+ messages in thread From: Thierry Bultel @ 2012-10-05 10:22 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai Le 05/10/2012 12:10, Gilles Chanteperdrix a écrit : > On 10/05/2012 11:47 AM, Thierry Bultel wrote: >> Hi, >> >> My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch, >> on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO >> >> My test case is quite simple. >> The main process is as such: >> >> ----------------- >> >> int main ( ...... >> >> >> pthread_set_name_np(pthread_self(), "MAIN PROCESS"); >> >> if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0) >> { >> LOG("pthread_set_mode_np FAILED\n"); >> exit(0); >> } >> >> for (;;) >> { >> struct timespec delay = { 10, 0 }; >> nanosleep(&delay,NULL); >> } > mlockall missing. > Sorry , Yes it is, I have not written down all the init part, (..... ) but basically it is #ifdef __XENO__ /* Initialize realtime logging */ rt_print_auto_init(1); /* Disable paging */ if( mlockall(MCL_CURRENT | MCL_FUTURE) != 0 ) { printf("ERROR: on mlockall errno=%d\n", errno); goto failure; } #endif /* __XENO__ */ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU 2012-10-05 9:47 [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU Thierry Bultel 2012-10-05 10:10 ` Gilles Chanteperdrix @ 2012-10-05 12:31 ` Gilles Chanteperdrix 2012-10-05 13:23 ` Thierry Bultel 1 sibling, 1 reply; 7+ messages in thread From: Gilles Chanteperdrix @ 2012-10-05 12:31 UTC (permalink / raw) To: Thierry Bultel; +Cc: xenomai On 10/05/2012 11:47 AM, Thierry Bultel wrote: > Hi, > > My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch, > on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO > > My test case is quite simple. > The main process is as such: > > ----------------- > > int main ( ...... > > > pthread_set_name_np(pthread_self(), "MAIN PROCESS"); > > if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0) > { > LOG("pthread_set_mode_np FAILED\n"); > exit(0); > } > > for (;;) > { > struct timespec delay = { 10, 0 }; > nanosleep(&delay,NULL); > } > > ---------- > > The MSW counter keeps increasing, whereas no SIGXCPU is delivered: > > [root@buildroot ~]# cat /proc/xenomai/stat > CPU PID MSW CSW PF STAT %CPU NAME > 0 0 0 1131 0 00500080 99.6 ROOT > 0 717 95 189 0 00b40184 0.0 MAIN PROCESS > 0 0 0 381587 0 00000000 0.4 IRQ34: [timer] > > > The build command: > > arm-linux-gcc -fmessage-length=0 -pipe -Wall -Werror -g -DNOT_USE_DYNAMIC_LOADING > -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai > -D_GNU_SOURCE -D_REENTRANT -D__XENO__ > -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai/posix > -c /home/tbultel/workspace/agv/linux/simerimcan/sim_agv_can_main.c > -o /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o > -MMD -MF/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.d > -I. -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/opt/can/include/canfestival-xenomai > -I"="/usr/include/xenomai -I"="/usr/include/xenomai/posix > > > arm-linux-gcc -lrt -lpthread -rdynamic > -L/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib > -lxenomai -lpthread_rt > -Wl,@/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib/posix.wrappers > -o /home/tbultel/workspace/agv/../bin/arm/sim_agv_can-xenomai > /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o > /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_bus.o > /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_erim_can_log.o In order to know if the link process worked correctly with this funky argument order, I would use arm-linux-nm -s -- Gilles. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU 2012-10-05 12:31 ` Gilles Chanteperdrix @ 2012-10-05 13:23 ` Thierry Bultel 2012-10-05 13:30 ` Gilles Chanteperdrix 0 siblings, 1 reply; 7+ messages in thread From: Thierry Bultel @ 2012-10-05 13:23 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai Le 05/10/2012 14:31, Gilles Chanteperdrix a écrit : > On 10/05/2012 11:47 AM, Thierry Bultel wrote: >> Hi, >> >> My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch, >> on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO >> >> My test case is quite simple. >> The main process is as such: >> >> ----------------- >> >> int main ( ...... >> >> >> pthread_set_name_np(pthread_self(), "MAIN PROCESS"); >> >> if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0) >> { >> LOG("pthread_set_mode_np FAILED\n"); >> exit(0); >> } >> >> for (;;) >> { >> struct timespec delay = { 10, 0 }; >> nanosleep(&delay,NULL); >> } >> >> ---------- >> >> The MSW counter keeps increasing, whereas no SIGXCPU is delivered: >> >> [root@buildroot ~]# cat /proc/xenomai/stat >> CPU PID MSW CSW PF STAT %CPU NAME >> 0 0 0 1131 0 00500080 99.6 ROOT >> 0 717 95 189 0 00b40184 0.0 MAIN PROCESS >> 0 0 0 381587 0 00000000 0.4 IRQ34: [timer] >> >> >> The build command: >> >> arm-linux-gcc -fmessage-length=0 -pipe -Wall -Werror -g -DNOT_USE_DYNAMIC_LOADING >> -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai >> -D_GNU_SOURCE -D_REENTRANT -D__XENO__ >> -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai/posix >> -c /home/tbultel/workspace/agv/linux/simerimcan/sim_agv_can_main.c >> -o /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o >> -MMD -MF/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.d >> -I. -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/opt/can/include/canfestival-xenomai >> -I"="/usr/include/xenomai -I"="/usr/include/xenomai/posix >> >> >> arm-linux-gcc -lrt -lpthread -rdynamic >> -L/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib >> -lxenomai -lpthread_rt >> -Wl,@/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib/posix.wrappers >> -o /home/tbultel/workspace/agv/../bin/arm/sim_agv_can-xenomai >> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o >> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_bus.o >> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_erim_can_log.o > In order to know if the link process worked correctly with this funky > argument order, I would use arm-linux-nm -s > 'arm-linux-nm -s' shows : U __wrap_clock_gettime U __wrap_close U __wrap_connect U __wrap_nanosleep U __wrap_printf U __wrap_puts U __wrap_socket That gdb also confirms that (gdb) r Starting program: /root/sim_agv_can-xenomai [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". [New Thread 0x2ac82470 (LWP 1642)] [SIMBUS] 03:58:32.955 MLOCKALL DONE [SIMBUS] 03:58:32.975 Starting Bus simulator [SIMBUS] 03:58:32.977 Alive [SIMBUS] 03:58:33.979 Alive ^C Program received signal SIGINT, Interrupt. 0x2ab03ee4 in __wrap_clock_nanosleep () from /usr/lib/libpthread_rt.so.1 (gdb) ...and my MSW still increases What link argument order would you advise ? ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU 2012-10-05 13:23 ` Thierry Bultel @ 2012-10-05 13:30 ` Gilles Chanteperdrix 2012-10-08 14:42 ` Thierry Bultel 0 siblings, 1 reply; 7+ messages in thread From: Gilles Chanteperdrix @ 2012-10-05 13:30 UTC (permalink / raw) To: Thierry Bultel; +Cc: xenomai On 10/05/2012 03:23 PM, Thierry Bultel wrote: > Le 05/10/2012 14:31, Gilles Chanteperdrix a écrit : >> On 10/05/2012 11:47 AM, Thierry Bultel wrote: >>> Hi, >>> >>> My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch, >>> on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO >>> >>> My test case is quite simple. >>> The main process is as such: >>> >>> ----------------- >>> >>> int main ( ...... >>> >>> >>> pthread_set_name_np(pthread_self(), "MAIN PROCESS"); >>> >>> if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0) >>> { >>> LOG("pthread_set_mode_np FAILED\n"); >>> exit(0); >>> } >>> >>> for (;;) >>> { >>> struct timespec delay = { 10, 0 }; >>> nanosleep(&delay,NULL); >>> } >>> >>> ---------- >>> >>> The MSW counter keeps increasing, whereas no SIGXCPU is delivered: >>> >>> [root@buildroot ~]# cat /proc/xenomai/stat >>> CPU PID MSW CSW PF STAT %CPU NAME >>> 0 0 0 1131 0 00500080 99.6 ROOT >>> 0 717 95 189 0 00b40184 0.0 MAIN PROCESS >>> 0 0 0 381587 0 00000000 0.4 IRQ34: [timer] >>> >>> >>> The build command: >>> >>> arm-linux-gcc -fmessage-length=0 -pipe -Wall -Werror -g -DNOT_USE_DYNAMIC_LOADING >>> -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai >>> -D_GNU_SOURCE -D_REENTRANT -D__XENO__ >>> -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai/posix >>> -c /home/tbultel/workspace/agv/linux/simerimcan/sim_agv_can_main.c >>> -o /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o >>> -MMD -MF/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.d >>> -I. -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/opt/can/include/canfestival-xenomai >>> -I"="/usr/include/xenomai -I"="/usr/include/xenomai/posix >>> >>> >>> arm-linux-gcc -lrt -lpthread -rdynamic >>> -L/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib >>> -lxenomai -lpthread_rt >>> -Wl,@/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib/posix.wrappers >>> -o /home/tbultel/workspace/agv/../bin/arm/sim_agv_can-xenomai >>> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o >>> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_bus.o >>> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_erim_can_log.o >> In order to know if the link process worked correctly with this funky >> argument order, I would use arm-linux-nm -s >> > > 'arm-linux-nm -s' shows : > > U __wrap_clock_gettime > U __wrap_close > U __wrap_connect > U __wrap_nanosleep > U __wrap_printf > U __wrap_puts > U __wrap_socket > > That gdb also confirms that > > (gdb) r > Starting program: /root/sim_agv_can-xenomai > [Thread debugging using libthread_db enabled] > Using host libthread_db library "/lib/libthread_db.so.1". > [New Thread 0x2ac82470 (LWP 1642)] > [SIMBUS] 03:58:32.955 MLOCKALL DONE > [SIMBUS] 03:58:32.975 Starting Bus simulator > [SIMBUS] 03:58:32.977 Alive > [SIMBUS] 03:58:33.979 Alive > ^C > Program received signal SIGINT, Interrupt. > 0x2ab03ee4 in __wrap_clock_nanosleep () from /usr/lib/libpthread_rt.so.1 > (gdb) > > ...and my MSW still increases > > What link argument order would you advise ? object firsts, libraries next. Libraries in the "logical" order, so, if your .o use libpthread_rt, start with libpthread_rt, since libpthread_rt use libxenomai, libxenomai comes next, since both of them use libtphread and librt, libpthread and librt come next, etc... IOW, the order provided by xeno-config. Anyway, if you did not call pthread_setschedparam in a part of code which you did not show (which is why we usually ask for a self-contained test case, with full source, so that we do not have to guess what you could have done or not), the main thread is running with SCHED_OTHER policy, and automatically returns to secondary domain after having switched to primary domain during nanosleep. -- Gilles. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU 2012-10-05 13:30 ` Gilles Chanteperdrix @ 2012-10-08 14:42 ` Thierry Bultel 0 siblings, 0 replies; 7+ messages in thread From: Thierry Bultel @ 2012-10-08 14:42 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai Le 05/10/2012 15:30, Gilles Chanteperdrix a écrit : > On 10/05/2012 03:23 PM, Thierry Bultel wrote: >> Le 05/10/2012 14:31, Gilles Chanteperdrix a écrit : >>> On 10/05/2012 11:47 AM, Thierry Bultel wrote: >>>> Hi, >>>> >>>> My config is linux-3.2.21+xenomai-2.6.1 ; ipipe-core-3.2.21-arm-1.patch, >>>> on qemu-system-arm ; versatile express. I have CONFIG_SMP to NO >>>> >>>> My test case is quite simple. >>>> The main process is as such: >>>> >>>> ----------------- >>>> >>>> int main ( ...... >>>> >>>> >>>> pthread_set_name_np(pthread_self(), "MAIN PROCESS"); >>>> >>>> if (pthread_set_mode_np(0, PTHREAD_WARNSW) != 0) >>>> { >>>> LOG("pthread_set_mode_np FAILED\n"); >>>> exit(0); >>>> } >>>> >>>> for (;;) >>>> { >>>> struct timespec delay = { 10, 0 }; >>>> nanosleep(&delay,NULL); >>>> } >>>> >>>> ---------- >>>> >>>> The MSW counter keeps increasing, whereas no SIGXCPU is delivered: >>>> >>>> [root@buildroot ~]# cat /proc/xenomai/stat >>>> CPU PID MSW CSW PF STAT %CPU NAME >>>> 0 0 0 1131 0 00500080 99.6 ROOT >>>> 0 717 95 189 0 00b40184 0.0 MAIN PROCESS >>>> 0 0 0 381587 0 00000000 0.4 IRQ34: [timer] >>>> >>>> >>>> The build command: >>>> >>>> arm-linux-gcc -fmessage-length=0 -pipe -Wall -Werror -g -DNOT_USE_DYNAMIC_LOADING >>>> -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai >>>> -D_GNU_SOURCE -D_REENTRANT -D__XENO__ >>>> -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/include/xenomai/posix >>>> -c /home/tbultel/workspace/agv/linux/simerimcan/sim_agv_can_main.c >>>> -o /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o >>>> -MMD -MF/home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.d >>>> -I. -I/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/opt/can/include/canfestival-xenomai >>>> -I"="/usr/include/xenomai -I"="/usr/include/xenomai/posix >>>> >>>> >>>> arm-linux-gcc -lrt -lpthread -rdynamic >>>> -L/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib >>>> -lxenomai -lpthread_rt >>>> -Wl,@/home/tbultel/workspace/Buildroot/output/host/usr/arm-unknown-linux-gnueabi/sysroot/usr/lib/posix.wrappers >>>> -o /home/tbultel/workspace/agv/../bin/arm/sim_agv_can-xenomai >>>> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_main.o >>>> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_agv_can_bus.o >>>> /home/tbultel/workspace/agv/linux/simerimcan/build.xenomai/obj/sim_erim_can_log.o >>> In order to know if the link process worked correctly with this funky >>> argument order, I would use arm-linux-nm -s >>> >> 'arm-linux-nm -s' shows : >> >> U __wrap_clock_gettime >> U __wrap_close >> U __wrap_connect >> U __wrap_nanosleep >> U __wrap_printf >> U __wrap_puts >> U __wrap_socket >> >> That gdb also confirms that >> >> (gdb) r >> Starting program: /root/sim_agv_can-xenomai >> [Thread debugging using libthread_db enabled] >> Using host libthread_db library "/lib/libthread_db.so.1". >> [New Thread 0x2ac82470 (LWP 1642)] >> [SIMBUS] 03:58:32.955 MLOCKALL DONE >> [SIMBUS] 03:58:32.975 Starting Bus simulator >> [SIMBUS] 03:58:32.977 Alive >> [SIMBUS] 03:58:33.979 Alive >> ^C >> Program received signal SIGINT, Interrupt. >> 0x2ab03ee4 in __wrap_clock_nanosleep () from /usr/lib/libpthread_rt.so.1 >> (gdb) >> >> ...and my MSW still increases >> >> What link argument order would you advise ? > object firsts, libraries next. Libraries in the "logical" order, so, if > your .o use libpthread_rt, start with libpthread_rt, since libpthread_rt > use libxenomai, libxenomai comes next, since both of them use libtphread > and librt, libpthread and librt come next, etc... > > IOW, the order provided by xeno-config. > > Anyway, if you did not call pthread_setschedparam in a part of code > which you did not show (which is why we usually ask for a self-contained > test case, with full source, so that we do not have to guess what you > could have done or not), the main thread is running with SCHED_OTHER > policy, and automatically returns to secondary domain after having > switched to primary domain during nanosleep. Many thanks, SCHED_OTHER was the point Cheers Thierry ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-10-08 14:42 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-10-05 9:47 [Xenomai] nanosleep and clock_nanosleep increase MSW counter without SIGXCPU Thierry Bultel 2012-10-05 10:10 ` Gilles Chanteperdrix 2012-10-05 10:22 ` Thierry Bultel 2012-10-05 12:31 ` Gilles Chanteperdrix 2012-10-05 13:23 ` Thierry Bultel 2012-10-05 13:30 ` Gilles Chanteperdrix 2012-10-08 14:42 ` Thierry Bultel
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.