On Mon, 21 Nov 2011, Hillf Danton wrote: > On Mon, Nov 21, 2011 at 12:16 PM, Hugh Dickins <hughd@xxxxxxxxxx> wrote: > > After reading your reply and the comments in break_ksm(), if the patch does > not mess up > "The important thing is to not let VM_MERGEABLE be cleared while any > such pages might remain in the area", > and > "because handle_mm_fault() may back out if there's > any difficulty e.g. if pte accessed bit gets updated concurrently", > > then if the path in which lock_page_or_retry() is called is not involved, > mmap_sem is not upped, so the patch has nearly same behavior with break_ksm. > > And the overhead of the patch, I think, could match break_ksm. > > With dozen cases of writers of mmap_sem in the mm directory, the patch looks > more flexible in rare and rare corners. But what's the point in enlarging the kernel, adding code to make break_cow() look more complicated, when there's no way in which the addition can make an improvement? Adding in a FAULT_FLAG_ALLOW_RETRY flag is not enough for mmap_sem to be dropped for retry: you'd need a lock_page_or_retry() on the faulting path and I do not see that here - please point it out to me if you can see it. (And I'll be somewhat sceptical if you respond with patches adding lock_page_or_retry() all over, in order to meet this objection!) Hugh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. 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=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>