On Tue, 13 Jul 2010 08:20:09 +0100 Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx> wrote: > On Tue, Jul 13, 2010 at 03:04:00PM +0900, Minchan Kim wrote: > > > __get_user() works with TLB and page table, the vaddr is really mapped or not. > > > If you got SEGV, __get_user() returns -EFAULT. It works per page granule. > > Not in kernel space. It works on 1MB sections there. > > Testing whether a page is mapped by __get_user is a hugely expensive > way to test whether a PFN is valid. Note: pfn_valid() is for checking "there is memmap". > It'd be cheaper to use our flatmem implementation of pfn_valid() instead. > Hmm. IIUC, pfn_valid() succeeds in almost all case if there is a section. But yes, I'm not familar with ARM. I love another idea as I've already shown as preparing _a_ page filled with 0x00004000 and map it into the all holes. PG_reserved will help almost all case even if it's ugly. Anyway, sparsemem is designed to be aligned to SECTION_SIZE of memmap. Please avoid adding new Spaghetti code without proper configs. Thanks, -Kame -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>