[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] remove unnecessary PAE pgd set
With PAE on, there are only 4 PGD entries. The kernel ones never
change, so there is no need to copy them when a vmalloc fault occurs.
This was this was causing problems with the split pmd patches, but it is
still correct for mainline.
Tested with and without PAE. I ran it in a loop turning on and off 10
swap partitions, which is what excited the original bug.
http://bugme.osdl.org/show_bug.cgi?id=640
--
Dave Hansen
haveblue@us.ibm.com
--- linux-2.5.68-vmal_fault/arch/i386/mm/fault.c.orig Wed Apr 30 13:36:49 2003
+++ linux-2.5.68-vmal_fault/arch/i386/mm/fault.c Wed Apr 30 13:36:18 2003
@@ -405,7 +405,15 @@
if (!pgd_present(*pgd_k))
goto no_context;
+ /*
+ * kernel pmd pages are shared among all processes
+ * with PAE on. Since vmalloc pages are always
+ * in the kernel area, this will always be a
+ * waste with PAE on.
+ */
+#ifndef CONFIG_X86_PAE
set_pgd(pgd, *pgd_k);
+#endif
pmd = pmd_offset(pgd, address);
pmd_k = pmd_offset(pgd_k, address);