Randy Dunlap wrote: > Good question. I don't see much doc on that subject. > Rusty could probably answer that better than me. > Yep, it is definitely his problem, since he wrote both halves of the equation... > Something like this: > > .exit.text section(s) can be discarded from built-in (non-modular) > code (or not even loaded at all). > > .exit.text section(s) in modules is only loaded when > CONFIG_MODULE_UNLOAD=y. > > > so what are the .parainstructions text sections for? > Are they for replacing code instructions based on some > condition(s)? (like <gag> self-modifying code? </gag>) You can compile in support for multiple paravirtualizing hypervisors (ie, Xen, VMI and/or lhype), and it will work out which backend is appropriate to use at runtime. Once it has done that, the backends have the option to patch inline code to implement simple operations (sti, for example). So the .parainstructions section marks where there are instructions which the backend may want to replace, and the substitution happens relatively early in the kernel boot process (and on module load, I assume, but I haven't checked). J