Re: [PROBLEM] UML is killed by SIGALRM

From: Heiko Carstens
Date: Tue May 09 2006 - 05:21:32 EST


> UML in Linus' head doesn't start on my machine whereas 2.6.17-rc3 works
> fine:
>
> penberg@haji ~/src/linux/2.6 $ ./linux
> Checking that ptrace can change system call numbers...OK
> Checking syscall emulation patch for ptrace...OK
> Checking advanced syscall emulation patch for ptrace...OK
> Checking for tmpfs mount on /dev/shm...OK
> Checking PROT_EXEC mmap in /dev/shm/...OK
> Checking for the skas3 patch in the host:
> - /proc/mm...not found
> - PTRACE_FAULTINFO...not found
> - PTRACE_LDT...not found
> UML running in SKAS0 mode
> Checking that ptrace can change system call numbers...OK
> Checking syscall emulation patch for ptrace...OK
> Checking advanced syscall emulation patch for ptrace...OK
> Alarm clock

No idea what might cause this. Guess there are no messages on the console?

> I did a git bisect which found the offending commit:
>
> [IPV4]: inet_init() -> fs_initcall
>
> Convert inet_init to an fs_initcall to make sure its called before any
> device driver's initcall.

Could you try the patch below? It will move inet_init a bit down the chain of
the initcall list. Even though I doubt it will help...
---

arch/i386/kernel/vmlinux.lds.S | 1 +
include/asm-um/common.lds.S | 1 +
include/linux/init.h | 6 ++++--
net/ipv4/af_inet.c | 2 +-
4 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S
index 8831303..001e04b 100644
--- a/arch/i386/kernel/vmlinux.lds.S
+++ b/arch/i386/kernel/vmlinux.lds.S
@@ -111,6 +111,7 @@ SECTIONS
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
+ *(.initcall8.init)
}
__initcall_end = .;
__con_initcall_start = .;
diff --git a/include/asm-um/common.lds.S b/include/asm-um/common.lds.S
index 1010153..02d2353 100644
--- a/include/asm-um/common.lds.S
+++ b/include/asm-um/common.lds.S
@@ -49,6 +49,7 @@ #include <asm-generic/vmlinux.lds.h>
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
+ *(.initcall8.init)
}
__initcall_end = .;

diff --git a/include/linux/init.h b/include/linux/init.h
index 93dcbe1..8699dd5 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -95,8 +95,9 @@ #define postcore_initcall(fn) __define_
#define arch_initcall(fn) __define_initcall("3",fn)
#define subsys_initcall(fn) __define_initcall("4",fn)
#define fs_initcall(fn) __define_initcall("5",fn)
-#define device_initcall(fn) __define_initcall("6",fn)
-#define late_initcall(fn) __define_initcall("7",fn)
+#define net_initcall(fn) __define_initcall("6",fn)
+#define device_initcall(fn) __define_initcall("7",fn)
+#define late_initcall(fn) __define_initcall("8",fn)

#define __initcall(fn) device_initcall(fn)

@@ -178,6 +179,7 @@ #define core_initcall(fn) module_init(f
#define postcore_initcall(fn) module_init(fn)
#define arch_initcall(fn) module_init(fn)
#define subsys_initcall(fn) module_init(fn)
+#define net_initcall(fn) module_init(fn)
#define fs_initcall(fn) module_init(fn)
#define device_initcall(fn) module_init(fn)
#define late_initcall(fn) module_init(fn)
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 0a27745..9803a57 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1257,7 +1257,7 @@ out_unregister_udp_proto:
goto out;
}

-fs_initcall(inet_init);
+net_initcall(inet_init);

/* ------------------------------------------------------------------------ */

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/