Hi Gavin,

<> Have you issued an mlockall at the start of your process?  It can also 
<> help to explicitly prefault your stack so that you don't get a page 
<> fault later if your stack depth grows.

Yes, I am using the mostly unmodified ec_user_example. I just adapted the 
PDO setup for the Omron NX ECAT IO. This example does already SCHED_FIFO 
(i tried with prio 99 and 79, as 99 should not be used according the 
PREEMPT docs), mlockall(MCL_CURRENT | MCL_FUTURE) and stack_prefault() 
before the cyclic_task starts.

I am using igb with ec_generic. I use the etherlab 1.5.2 branch (which is 
the only one that commits go to as far as I saw) in the most current 
version from the git repos.

I now found out the problem. As ecrt_domain_process is just a wrapper for 
an IOCTL, the problem had to be in the kernel, which however was 
identical. Aside from the cmdline, though and logging: There was a serial 
console defined in the cmdline and kernel logging was on console. After 
disabling the serial console, it dropped to 2 ms already. After using 
dmesg -E to disable kernel logging on the console altogether, everything 
went back to normal...

Thanks for listening ;)
.      -Michael
etherlab-users mailing list

Reply via email to