Re: [Xenomai-help] Page-fault, switch to secondary mode
Hi Philippe, Thank you for the suggestion. I will give it a try and let you know. Regards Bharath On Wed, Aug 25, 2010 at 4:22 PM, Philippe Gerum r...@xenomai.org wrote: On Wed, 2010-08-25 at 12:06 +0200, Bharath Achuta Bhat wrote: Hi Philippe, It is an mmap-ed I/O memory. This is a TLB miss which ends up in a heavyweight call to fill the linux page table entry. Try to pre-fault the I/O memory region if possible, reading some bytes within the same 4k page. Regards Bharath On Wed, Aug 25, 2010 at 11:53 AM, Philippe Gerum r...@xenomai.org wrote: On Wed, 2010-08-25 at 11:12 +0200, Bharath Achuta Bhat wrote: Hello Xenomai experts, I am running a xenomai-2.5.1 patched kernel (v 2.6.30.3) with ipipe version 2.7-06. The target is powerpc (MPC8533E). My application is switching to the secondary mode (I guess because of a page-fault) when ntohl() is called. This is a libc function and I am wondering why only this function (ntohl()) is causing a page-fault. What memory are you reading from / writing to in the statement involving ntohl()? Is this plain RAM, or mapped I/O memory? Here is how the application looks like main () { ... ... /* Avoids memory swapping for this program */ mlockall(MCL_CURRENT | MCL_FUTURE); .. .. /* signal handlers */ . . /* create communication pipes */ rt_pipe_create(tPipe1, . rt_pipe_create(tPipe2,... /* create RT tasks */ rt_task_create(tTask1,. rt_task_create(tTask2,.. ... .. /* start the RT tasks */ rt_task_start(tTask1,. .. .. /* turn the current thread into RT function */ ret = rt_task_shadow(NULL, RT main function, 1, T_SUSP); } One of the rt tasks created calls ntohl() and switches to secondary mode. Is there a way to avoid it ? -- Thanks and regards Bharath ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help -- Philippe. -- Thanks and regards Bharath -- Philippe. -- Thanks and regards Bharath ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help
Re: [Xenomai-help] Page-fault, switch to secondary mode
Bharath Achuta Bhat wrote: Hello Xenomai experts, I am running a xenomai-2.5.1 patched kernel (v 2.6.30.3) with ipipe version 2.7-06. The target is powerpc (MPC8533E). My application is switching to the secondary mode (I guess because of a page-fault) when ntohl() is called. This is a libc function and I am wondering why only this function (ntohl()) is causing a page-fault. Before anything, could you try xenomai 2.5.3 ? -- Gilles. ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help
Re: [Xenomai-help] Page-fault, switch to secondary mode
On Wed, 2010-08-25 at 11:12 +0200, Bharath Achuta Bhat wrote: Hello Xenomai experts, I am running a xenomai-2.5.1 patched kernel (v 2.6.30.3) with ipipe version 2.7-06. The target is powerpc (MPC8533E). My application is switching to the secondary mode (I guess because of a page-fault) when ntohl() is called. This is a libc function and I am wondering why only this function (ntohl()) is causing a page-fault. What memory are you reading from / writing to in the statement involving ntohl()? Is this plain RAM, or mapped I/O memory? Here is how the application looks like main () { ... ... /* Avoids memory swapping for this program */ mlockall(MCL_CURRENT | MCL_FUTURE); .. .. /* signal handlers */ . . /* create communication pipes */ rt_pipe_create(tPipe1, . rt_pipe_create(tPipe2,... /* create RT tasks */ rt_task_create(tTask1,. rt_task_create(tTask2,.. ... .. /* start the RT tasks */ rt_task_start(tTask1,. .. .. /* turn the current thread into RT function */ ret = rt_task_shadow(NULL, RT main function, 1, T_SUSP); } One of the rt tasks created calls ntohl() and switches to secondary mode. Is there a way to avoid it ? -- Thanks and regards Bharath ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help -- Philippe. ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help
Re: [Xenomai-help] Page-fault, switch to secondary mode
Philippe Gerum wrote: On Wed, 2010-08-25 at 11:12 +0200, Bharath Achuta Bhat wrote: Hello Xenomai experts, I am running a xenomai-2.5.1 patched kernel (v 2.6.30.3) with ipipe version 2.7-06. The target is powerpc (MPC8533E). My application is switching to the secondary mode (I guess because of a page-fault) when ntohl() is called. This is a libc function and I am wondering why only this function (ntohl()) is causing a page-fault. What memory are you reading from / writing to in the statement involving ntohl()? Is this plain RAM, or mapped I/O memory? And if it is plain RAM, is it correctly aligned? -- Gilles. ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help
Re: [Xenomai-help] Page-fault, switch to secondary mode
Hi Philippe, It is an mmap-ed I/O memory. Regards Bharath On Wed, Aug 25, 2010 at 11:53 AM, Philippe Gerum r...@xenomai.org wrote: On Wed, 2010-08-25 at 11:12 +0200, Bharath Achuta Bhat wrote: Hello Xenomai experts, I am running a xenomai-2.5.1 patched kernel (v 2.6.30.3) with ipipe version 2.7-06. The target is powerpc (MPC8533E). My application is switching to the secondary mode (I guess because of a page-fault) when ntohl() is called. This is a libc function and I am wondering why only this function (ntohl()) is causing a page-fault. What memory are you reading from / writing to in the statement involving ntohl()? Is this plain RAM, or mapped I/O memory? Here is how the application looks like main () { ... ... /* Avoids memory swapping for this program */ mlockall(MCL_CURRENT | MCL_FUTURE); .. .. /* signal handlers */ . . /* create communication pipes */ rt_pipe_create(tPipe1, . rt_pipe_create(tPipe2,... /* create RT tasks */ rt_task_create(tTask1,. rt_task_create(tTask2,.. ... .. /* start the RT tasks */ rt_task_start(tTask1,. .. .. /* turn the current thread into RT function */ ret = rt_task_shadow(NULL, RT main function, 1, T_SUSP); } One of the rt tasks created calls ntohl() and switches to secondary mode. Is there a way to avoid it ? -- Thanks and regards Bharath ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help -- Philippe. -- Thanks and regards Bharath ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help
Re: [Xenomai-help] Page-fault, switch to secondary mode
On Wed, 2010-08-25 at 12:06 +0200, Bharath Achuta Bhat wrote: Hi Philippe, It is an mmap-ed I/O memory. This is a TLB miss which ends up in a heavyweight call to fill the linux page table entry. Try to pre-fault the I/O memory region if possible, reading some bytes within the same 4k page. Regards Bharath On Wed, Aug 25, 2010 at 11:53 AM, Philippe Gerum r...@xenomai.org wrote: On Wed, 2010-08-25 at 11:12 +0200, Bharath Achuta Bhat wrote: Hello Xenomai experts, I am running a xenomai-2.5.1 patched kernel (v 2.6.30.3) with ipipe version 2.7-06. The target is powerpc (MPC8533E). My application is switching to the secondary mode (I guess because of a page-fault) when ntohl() is called. This is a libc function and I am wondering why only this function (ntohl()) is causing a page-fault. What memory are you reading from / writing to in the statement involving ntohl()? Is this plain RAM, or mapped I/O memory? Here is how the application looks like main () { ... ... /* Avoids memory swapping for this program */ mlockall(MCL_CURRENT | MCL_FUTURE); .. .. /* signal handlers */ . . /* create communication pipes */ rt_pipe_create(tPipe1, . rt_pipe_create(tPipe2,... /* create RT tasks */ rt_task_create(tTask1,. rt_task_create(tTask2,.. ... .. /* start the RT tasks */ rt_task_start(tTask1,. .. .. /* turn the current thread into RT function */ ret = rt_task_shadow(NULL, RT main function, 1, T_SUSP); } One of the rt tasks created calls ntohl() and switches to secondary mode. Is there a way to avoid it ? -- Thanks and regards Bharath ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help -- Philippe. -- Thanks and regards Bharath -- Philippe. ___ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help