linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Helding the Kernel lock while doing IO???
@ 2000-05-06  1:30 Juan J. Quintela
  2000-05-06  1:34 ` Helding the Kernel lock while doing IO??? (take 2) Juan J. Quintela
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Juan J. Quintela @ 2000-05-06  1:30 UTC (permalink / raw)
  To: linux-mm, linux-kernel, Linus Torvalds

Hi
        In the function m/memory.c()::do_swap_page():

		lock_kernel();
		swapin_readahead(entry);
		page = read_swap_cache(entry);
		unlock_kernel();

read_swap_cache is called synchronously, then we can have to wait
until we read the page to liberate the lock kernel.  It is intended?
I am losing some detail?

I have  changed that in the two places that happened.

Thanks in advance for any response.

Later, Juan.

diff -u -urN --exclude=CVS --exclude=*~ --exclude=.#* --exclude=TAGS pre7-6/ipc/shm.c testing2/ipc/shm.c
--- pre7-6/ipc/shm.c	Fri May  5 23:58:56 2000
+++ testing2/ipc/shm.c	Sat May  6 02:39:17 2000
@@ -1379,10 +1379,11 @@
 			if (!page) {
 				lock_kernel();
 				swapin_readahead(entry);
-				page = read_swap_cache(entry);
+				page = read_swap_cache_async(entry, 0);
 				unlock_kernel();
 				if (!page)
 					goto oom;
+                                wait_on_page(page);
 			}
 			delete_from_swap_cache(page);
 			page = replace_with_highmem(page);
diff -u -urN --exclude=CVS --exclude=*~ --exclude=.#* --exclude=TAGS pre7-6/mm/memory.c testing2/mm/memory.c
--- pre7-6/mm/memory.c	Fri May  5 23:58:56 2000
+++ testing2/mm/memory.c	Sat May  6 02:02:53 2000
@@ -1038,11 +1038,10 @@
 	if (!page) {
 		lock_kernel();
 		swapin_readahead(entry);
-		page = read_swap_cache(entry);
+		page = read_swap_cache_async(entry, 0);
 		unlock_kernel();
 		if (!page)
 			return -1;
-
 		flush_page_to_ram(page);
 		flush_icache_page(vma, page);
 	}


-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2000-05-14 22:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-05-06  1:30 Helding the Kernel lock while doing IO??? Juan J. Quintela
2000-05-06  1:34 ` Helding the Kernel lock while doing IO??? (take 2) Juan J. Quintela
2000-05-06 11:48 ` Helding the Kernel lock while doing IO??? Stephen C. Tweedie
2000-05-14 22:02   ` PATCH: " Juan J. Quintela
2000-05-06 13:16 ` Andrea Arcangeli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox