Prev: x86 NMI-safe INT3 and Page Fault
Next: deadline-iosched: don't allow aliased requests to starve others
From: Andi Kleen on 14 Jul 2010 13:10 > x86_32 cannot use vmalloc_sync_all() to sychronize the TLBs from every > processes because the vmalloc area is mapped in a different address space for That doesn't make sense. vmalloc_all_sync() should work on 32bit too. It just needs to walk all processes and fix up every page table. -Andi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Mathieu Desnoyers on 14 Jul 2010 13:10 * Andi Kleen (andi(a)firstfloor.org) wrote: > > x86_32 cannot use vmalloc_sync_all() to sychronize the TLBs from every > > processes because the vmalloc area is mapped in a different address space for > > That doesn't make sense. vmalloc_all_sync() should work on 32bit too. > It just needs to walk all processes and fix up every page table. Yeah, I've been taken aback when Tejun told me that a few moments ago. I initially thought that vmalloc_sync_all() synchronized all page mappings of all processes on x86_32. But apparently that does not seem to be the case. I'm adding him in CC. Thanks, Mathieu -- Mathieu Desnoyers Operating System Efficiency R&D Consultant EfficiOS Inc. http://www.efficios.com -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Andi Kleen on 14 Jul 2010 15:00 On Wed, Jul 14, 2010 at 01:08:05PM -0400, Mathieu Desnoyers wrote: > * Andi Kleen (andi(a)firstfloor.org) wrote: > > > x86_32 cannot use vmalloc_sync_all() to sychronize the TLBs from every > > > processes because the vmalloc area is mapped in a different address space for > > > > That doesn't make sense. vmalloc_all_sync() should work on 32bit too. > > It just needs to walk all processes and fix up every page table. > > Yeah, I've been taken aback when Tejun told me that a few moments ago. I > initially thought that vmalloc_sync_all() synchronized all page mappings of all > processes on x86_32. But apparently that does not seem to be the case. I'm > adding him in CC. Well it worked when it was originally written. That was for the case of a NMI handler in a module. If it doesn't work fix it. I don't think the NMI-safe fault is really needed with it. -Andi -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Tejun Heo on 14 Jul 2010 19:30
Hello, On 07/14/2010 08:56 PM, Andi Kleen wrote: > On Wed, Jul 14, 2010 at 01:08:05PM -0400, Mathieu Desnoyers wrote: >> * Andi Kleen (andi(a)firstfloor.org) wrote: >>>> x86_32 cannot use vmalloc_sync_all() to sychronize the TLBs from >>>> every processes because the vmalloc area is mapped in a different >>>> address space for >>> That doesn't make sense. vmalloc_all_sync() should work on 32bit >>> too. It just needs to walk all processes and fix up every page >>> table. Yeah, vmalloc_sync_all() synchronizes everything by walking every page table, so it should work. I was saying that just flushing TLB wouldn't cut it because multiple top level page table entries can be used to map vmalloc areas. It seems that both 32 and 64bit does that tho. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |