Anders Blomdell wrote:
Jan Kiszka wrote:
additional barrier. Can you check this?

diff --git a/include/nucleus/sched.h b/include/nucleus/sched.h
index df56417..66b52ad 100644
--- a/include/nucleus/sched.h
+++ b/include/nucleus/sched.h
@@ -187,6 +187,7 @@ static inline int xnsched_self_resched_p(struct xnsched *sched)
   if (current_sched != (__sched__))    {                \
xnarch_cpu_set(xnsched_cpu(__sched__), current_sched->resched); \
       setbits((__sched__)->status, XNRESCHED);                \
+      xnarch_memory_barrier();                        \
   }                                    \
 } while (0)

In progress, if nothing breaks before, I'll report status tomorrow morning.
It still breaks (in approximately the same way). I'm currently putting a barrier in the other macro doing a RESCHED, also adding some tracing to see if a read barrier is needed.

Interesting side-note:

Harddisk accesses seems to get real slow after error has occured (kernel installs progresses with 2-3 modules installed per second), while lots of idle time reported on all cpu's, weird...


Xenomai-core mailing list

Reply via email to