![]() | |||||||||||||
Messages in this thread |
Linus Torvalds <torvalds@osdl.org> wrote: > > > > On Wed, 4 Feb 2004, Martin J. Bligh wrote: > > > > Oh hell ... I remember what's wrong with this whole bit. pfn_valid is > > used inconsistently in different places, IIRC. Linus / Andrew ... what > > do you actually want it to mean? Some things seem to use it to say > > "the memory here is valid accessible RAM", some things "there is a > > valid struct page for this pfn". I was aiming for the latter, but a > > few other arches seemed to disagree. > > > > Could I get a ruling on this? ;-) > > It _definitely_ means "there is a valid 'struct page' for this pfn". > > To test for "there is RAM" here, you need to first check that the pfn is > valid, and then you can check what the page type is (usually that would be > PageReserved(), but it could be a highmem check or something like that > too). pfn_valid() could become quite expensive indeed, and it lies on super-duper hotpaths. An alternative which is less conceptually clean but should work in this case is to mark all vma's which were created by /dev/mem mappings as VM_IO, and test that in remap_page_range(). The marking of mmap_mem() vma's as VM_IO has been in -mm for four months. But I didn't changelog it at the time and I've forgotten why I wrote it (really). It's something to do with get_user_pages() against a mapping of /dev/mem :( ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.2-rc3/2.6.2-rc3-mm1/broken-out/get_user_pages-handle-VM_IO.patch - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 14:00 [W:0.166 / U:0.030 seconds] ©2003-2008 Jasper Spaans | |||||||||||||