On Sat, 16 Feb 2008, Andrew Morton wrote: > "looks good" maybe. But it's in the details where I fear this will come > unstuck. The likelihood that some callbacks really will want to be able to > block in places where this interface doesn't permit that - either to wait > for IO to complete or to wait for other threads to clear critical regions.
We can get the invalidate_range to always be called without spinlocks if we deal with the case of the inode_mmap_lock being held in truncate case. If you always want to be able to sleep then we could drop the invalidate_page() that is called while pte locks held and require the use of a device driver rmap? > >From that POV it doesn't look like a sufficiently general and useful > design. Looks like it was grafted onto the current VM implementation in a > way which just about suits two particular clients if they try hard enough. You missed KVM. We did the best we could being as least invasive as possible. > Which is all perfectly understandable - it would be hard to rework core MM > to be able to make this interface more general. But I do think it's > half-baked and there is a decent risk that future (or present) code which > _could_ use something like this won't be able to use this one, and will > continue to futz with mlock, page-pinning, etc. > > Not that I know what the fix to that is.. You do not see a chance of this being okay if we adopt the two measures that I mentioned above? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/