Explorar el Código

mm: debug write deadlocks

Allow CONFIG_DEBUG_VM to switch off the prefaulting logic, to simulate the
Makes the race much easier to hit.

This is useful for demonstration and testing purposes, but is removed in a
subsequent patch.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Nick Piggin hace 17 años
padre
commit
5fe1723706
Se han modificado 1 ficheros con 2 adiciones y 0 borrados
  1. 2 0
      mm/filemap.c

+ 2 - 0
mm/filemap.c

@@ -1878,6 +1878,7 @@ generic_file_buffered_write(struct kiocb *iocb, const struct iovec *iov,
 		if (maxlen > bytes)
 		if (maxlen > bytes)
 			maxlen = bytes;
 			maxlen = bytes;
 
 
+#ifndef CONFIG_DEBUG_VM
 		/*
 		/*
 		 * Bring in the user page that we will copy from _first_.
 		 * Bring in the user page that we will copy from _first_.
 		 * Otherwise there's a nasty deadlock on copying from the
 		 * Otherwise there's a nasty deadlock on copying from the
@@ -1885,6 +1886,7 @@ generic_file_buffered_write(struct kiocb *iocb, const struct iovec *iov,
 		 * up-to-date.
 		 * up-to-date.
 		 */
 		 */
 		fault_in_pages_readable(buf, maxlen);
 		fault_in_pages_readable(buf, maxlen);
+#endif
 
 
 		page = __grab_cache_page(mapping,index,&cached_page,&lru_pvec);
 		page = __grab_cache_page(mapping,index,&cached_page,&lru_pvec);
 		if (!page) {
 		if (!page) {