Hello,

Just a Re: on some IRC discussion. We were trying to set bound_processor
by default to cpu0 to make sure that everything happens on just one cpu
by default, to put things on cpu1 progressively. But that was leading to
ext2fs hanging. At some point it was mentioned that 

“sometimes, default_pset.runq.runq.next.next shows the same thread than 
processor_ptr[0].runq.runq.next”

That's really not supposed to happen. It could be useful to put printfs
in thread_setrun in the if ((processor = th->bound_processor) ==
PROCESSOR_NULL) case, which is not supposed to happen, to determine
when we are actually getting there with such case.

I had been looking at the linux code, it really isn't smp-safe, so we
will need to keep ext2fs bound to cpu0 to avoid any kind of concurrency
when it accesses the disk. It might even be useful to put some
assertions to make sure that no code of linux/ is getting to run on
cpu1.

Samuel

Reply via email to