Hi, I happen to notice a race condition in the mmu_context code for the 8xx with very few context (16 MMU contexts) and kernel preemption enable. It is hard to reproduce has it shows only when many processes are created/destroy and the system is doing a lot of IRQ processing.
In short, one process is trying to steal a context that is in the process of being freed (mm->context == NO_CONTEXT) but not completely freed (nr_free_contexts == 0). The steal_context() function does not do anything and the process stays in the loop forever. Anyway, I got a patch that fixes this part. Does not seem to affect scheduling latency at all. Comments are appreciated. Guillaume. -- ======================================= Guillaume Autran Senior Software Engineer MRV Communications, Inc. Tel: (978) 952-4932 office E-mail: gautran at mrv.com ======================================= -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: mmu_context.patch Url: http://ozlabs.org/pipermail/linuxppc-embedded/attachments/20050628/4e1aa079/attachment.txt