The patch titled exec_domain: establish a Linux32 domain on CONFIG_COMPAT systems has been removed from the -mm tree. Its filename was exec_domain-establish-a-linux32-domain-on-config_compat-systems.patch This patch was dropped because it was withdrawn The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: exec_domain: establish a Linux32 domain on CONFIG_COMPAT systems From: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> If PER_LINUX32 is set calling sys_personality, we will try to find the corresponding exec_domain. This causes us to try to load a module for personality-8. After running the userspace module loader and failing to find the module, we fall back to the default. We can avoid the failed module loading overhead by building-in the linux32_exec_domain for systems that have CONFIG_COMPAT. I noticed this on MIPS64 systems, but it is a general problem and applies to x86 among others. Admittedly sys_personality() is probably not in the hot path of many programs, but the overhead of the extra exec_domain is fairly small. Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: Oleg Nesterov <oleg@xxxxxxxxxx> Cc: Roland McGrath <roland@xxxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> Cc: Kyle McMartin <kyle@xxxxxxxxxxx> Cc: Helge Deller <deller@xxxxxx> Cc: "James E.J. Bottomley" <jejb@xxxxxxxxxxxxxxxx> Cc: Chris Metcalf <cmetcalf@xxxxxxxxxx> Cc: David Miller <davem@xxxxxxxxxxxxx> Cc: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx> Cc: "Luck, Tony" <tony.luck@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- kernel/exec_domain.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff -puN kernel/exec_domain.c~exec_domain-establish-a-linux32-domain-on-config_compat-systems kernel/exec_domain.c --- a/kernel/exec_domain.c~exec_domain-establish-a-linux32-domain-on-config_compat-systems +++ a/kernel/exec_domain.c @@ -34,6 +34,17 @@ static unsigned long ident_map[32] = { 24, 25, 26, 27, 28, 29, 30, 31 }; +#ifdef CONFIG_COMPAT +static struct exec_domain linux32_exec_domain = { + .name = "Linux32", /* name */ + .handler = default_handler, /* lcall7 causes a seg fault. */ + .pers_low = PER_LINUX32, + .pers_high = PER_LINUX32, + .signal_map = ident_map, /* Identity map signals. */ + .signal_invmap = ident_map, /* - both ways. */ +}; +#endif + struct exec_domain default_exec_domain = { .name = "Linux", /* name */ .handler = default_handler, /* lcall7 causes a seg fault. */ @@ -41,6 +52,9 @@ struct exec_domain default_exec_domain = .pers_high = 0, /* PER_LINUX personality. */ .signal_map = ident_map, /* Identity map signals. */ .signal_invmap = ident_map, /* - both ways. */ +#ifdef CONFIG_COMPAT + .next = &linux32_exec_domain, +#endif }; _ Patches currently in -mm which might be from ddaney@xxxxxxxxxxxxxxxxxx are linux-next.patch binfmt_elf-quiet-gcc-46-set-but-not-used-warning-in-load_elf_binary.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html