On Sun, 2012-03-25 at 19:42 +0200, Oleg Nesterov wrote: > > Also, Per Peter Zijlstra's idea, now we don't grab tasklist_lock in > > the new helper, instead we take the rcu read lock. We can do this > > because the function is called after the cpu is taken down and > marked > > offline, so no new tasks will get this cpu set in their mm mask. > > And only powerpc needs rcu_read_lock() and task_lock(). > > OTOH, I do not understand why powepc does this on CPU_DEAD... > And probably CPU_UP_CANCELED doesn't need to clear mm_cpumask(). > > That said, personally I think these patches are fine, the common > helper makes sense. Not strictly speaking a problem with this patch, but I was wondering... Do we know for sure that the mmu context has been fully flushed out before the unplug ? idle_task_exit() will do a context switch but in our case that may not be enough. Once the CPU is offline, tlb flushes won't hit it any more so it can get out of sync (in some cases the offlining process is just some kind of deep sleep loop that doesn't involve a TLB state loss). Should we add a flush_tlb_mm of all those bits in that loop ? that would be a tad expensive... we don't have a flush_tlb_all() as a generic kind of accessors, but we could add something like that as a requirement for ppc_md.cpu_die ? Cheers, Ben. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>