Re: [PATCH] Gerd Hoffman's move-vsyscall-into-user-address-rangepatch

From: Zachary Amsden
Date: Fri May 19 2006 - 21:16:03 EST


Andrew Morton wrote:
Ingo Molnar <mingo@xxxxxxx> wrote:
* Andrew Morton <akpm@xxxxxxxx> wrote:

Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:
Name: Move vsyscall page out of fixmap into normal vma as per mmap
This causes mysterious hangs when starting init.

Distro is RH FC1, running SysVinit-2.85-5.

dmesg, sysrq-T and .config are at
http://www.zip.com.au/~akpm/linux/patches/stuff/log-vmm - nothing leaps
out.

This is the second time recently when a patch has caused this machine to oddly hang in init. It's possible that there's a bug of some form in that version of init that we'll need to know about and take care of in some fashion.
FC1 is like really ancient. I think there was a glibc bug that caused vsyscall related init hangs like that. To nevertheless let people run their old stuff there's a vdso=0 boot option in exec-shield.


Well that patch took a machine from working to non-working. Pretty serious
stuff. We should get to the bottom of the problem so we can assess the
risk and impact, no?

An easy test for culpability of kernel vs. init would be to back out all patches and recompile the kernel with vsyscall moved down by 4 megs.



Index: linux-2.6.17-rc/include/asm-i386/fixmap.h
===================================================================
--- linux-2.6.17-rc.orig/include/asm-i386/fixmap.h 2006-03-19 21:53:29.000000000 -0800
+++ linux-2.6.17-rc/include/asm-i386/fixmap.h 2006-05-19 18:16:00.000000000 -0700
@@ -20,7 +20,7 @@
* Leave one empty page between vmalloc'ed areas and
* the start of the fixmap.
*/
-#define __FIXADDR_TOP 0xfffff000
+#define __FIXADDR_TOP 0xffbff000

#ifndef __ASSEMBLY__
#include <linux/kernel.h>