lkml.org 
[lkml]   [2010]   [Jan]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Question] For what stand's __initdata, __devinit etc. ?
Tilman Schmidt wrote:
> Am 2010-01-13 00:42 schrieb Henrique de Moraes Holschuh:
>> On Tue, 12 Jan 2010, René Bolldorf wrote:
>>> Hi,
>>> Do we really need this?
>>> It will be nice if someone can me explain this.
>>
>> http://kernelnewbies.org/FAQ/InitExitMacros
>
> That's far from complete. It does not, for example, mention __devinit.

This wiki contains also somewhat misleadingly worded text: "But why
must you use these macros ?" This should read: "But why would you want
to use these macros?"

Answer: They are a micro-optimization which allows the kernel to free
memory that was occupied by this code at some point, because that code
won't be used after that point anymore. (In case of exit macros: These
are hints to discard some code from a build in case of certain kernel
configurations.) These macros only affect code which is statically
linked into the kernel.

Some macros, like for example __devinit, have so obscure uses and
marginal benefits that a normal developer should not bother about them.
__devinit in particular does not have any effect at all --- except if
CONFIG_HOTPLUG is not defined. This may happen in configurations for
embedded systems. But the majority of device drivers that you can find
in the kernel tree are irrelevant (i.e. configured off) on such systems
anyway.

Some more information on these macros can be found in Corbet, Rubini,
Kroah-Hartman: Linux Device Drivers, 3rd edition a.k.a. LDD3, which is
also gratis available on the Web.
--
Stefan Richter
-=====-==-=- ---= -==-=
http://arcgraph.de/sr/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2010-01-13 17:41    [W:0.115 / U:0.780 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site