I need some help finding the cause for page faults in my RT application.
My app has a startup phase, where I can tolerate page faults, and a hard
realtime phase, where page faults cannot be tolerated. Trouble is, I
continue to get page faults in the hard realtime phase.
The app encounters a page fault while writing to a heap buffer. I've even
added steps to clear the entire buffer in the startup phase, after
mlockall(), to ensure each page is locked in place. Here's a timeline of the
fault:
static constructor runs and allocates buffer from heap
application main() runs
begin application startup phase
mlockall(MCL_CURRENT | MCL_FUTURE) runs and returns 0
entire buffer cleared
paranoid code even verifies buffer addr 0x81f4000 contents are 0
begin application hard realtime phase
time elapses ...
page fault copying stack addr 0xb645a2d1 to heap buffer addr 0x81f4000
The page fault is confirmed by the kernel debug message:
Xenomai: Switching mythread to secondary mode after exception #14 from
user-space at 0x80fb8c5 (pid 3558)
as well as the delivery of SIGXCPU to my application (at my request).
How do I prevent this page fault?
Is this issue covered by the recent NOCOW activity?
thanks,
Jeff
my config:
CPU: VIA Nehemiah (i386)
ipipe version: 1.5-00
Xenomai: 2.2.4
Linux kernel: 2.6.17.14
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help