On Fri, 2011-03-04 at 19:56 +0800, Guan Xuetao wrote: > Thanks Peter. > It looks good to me, though it is dependent on your patch set "mm: Preemptible mmu_gather" It is indeed, the split-out per arch is purely to ease review. The final commit should be a merge of the first 10 patches so as not to break bisection. > While I have another look to include/asm-generic/tlb.h, I found it is also suitable for unicore32. > And so, I rewrite the tlb.h to use asm-generic version, and then your patch set will also work for me. Awesome, I notice you're loosing flush_tlb_range() support for this, if you're fine with that I'm obviously not going to argue, but if its better for your platform to keep doing this we can work on that as well as I'm trying to add generic support for range tracking into the generic tlb code. More importantly, you seem to loose your call to flush_cache_range() which isn't a NOP on your platform. Furthermore, while arch/unicore32/mm/tlb-ucv2.S is mostly magic to me, I see unicore32 is one of the few architectures that actually uses vm_flags in flush_tlb_range(). Do you have independent I/D-TLB flushes or are you flushing I-cache on VM_EXEC? Also, I notice your flush_tlb_range() implementation looks to be a loop invalidating individual pages, which I can imagine is cheaper for small ranges but large ranges might be better of with a full invalidate. Did you think about this? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx 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