Re: .exit.text section in vmlinux
- From: Chase Venters <chase.venters@xxxxxxxxxxxx>
- Date: Fri, 30 Jun 2006 11:31:54 -0500 (CDT)
On Fri, 30 Jun 2006, Magnus Damm wrote:
Hi guys,
I understand why ".exit.text" is present in the case of modules, but I
can't get my head around why it is included in the vmlinux file.
Functions like the ones below puzzle me:
kernel/configs.c: static void __exit ikconfig_cleanup(void)
drivers/net/ne2k-pci.c: static void __exit ne2k_pci_cleanup(void)
drivers/net/ne2k-pci.c: static void __devexit ne2k_pci_remove_one
(struct pci_dev *pdev)
I can see how the last "__devexit" function might be called during
some hotplug event, but are the two "__exit" functions ever going to
be called from the kernel? Since my kernel is configured without
CONFIG_HOTPLUG both both "__exit" and "__devexit" end up in the
".exit.text" section.
The linker script arch/i386/kernel/vmlinux.lds.S mentions the following:
/* .exit.text is discard at runtime, not link time, to deal with references
from .altinstructions and .eh_frame */
.altinstructions is for alternatives code (code that is rewritten at runtime based on some factor such as UP-vs-SMP). .eh_frame has call framing information used for unwinding. I think it's copied into the vsyscall page (not entirely familiar with this mechanism though).
The text above seems to answer my question, but I cannot say I fully
understand the comment. I'd appreciate if someone could explain a bit
more if possible.
Ok, so the section should be discarded at runtime. Sounds ok. But
where in the code is this section discarded? -ENOSYS?
When you see "Freeing unused kernel memory", the memory between __init_begin and __init_end (as marked in vmlinux.ld.S) is released. See arch-specific mm/init.c.
Thanks,
/ magnus
Thanks,
Chase
-
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/
- References:
- .exit.text section in vmlinux
- From: Magnus Damm
- .exit.text section in vmlinux
- Prev by Date: Re: [Alsa-devel] OSS driver removal, 2nd round
- Next by Date: Re: [PATCH 0 of 39] ipath - bug fixes, performance enhancements,and portability improvements
- Previous by thread: .exit.text section in vmlinux
- Next by thread: [PATCH-v3] Documentation: remove duplicated words
- Index(es):