Re: devinit

From: Tom Rini (trini@kernel.crashing.org)
Date: Thu Aug 07 2003 - 15:26:58 EST


On Wed, Aug 06, 2003 at 04:31:03PM -0700, Greg KH wrote:

> On Wed, Aug 06, 2003 at 07:21:23PM -0400, Jeff Garzik wrote:
> > Greg KH wrote:
> > >I've applied the 2.6 patch to my trees and will send it on to Linus in a
> > >few days, thanks.
> >
> >
> > Speaking of PCI... are we gonna have to zap __devinit too? Another
> > option is to think of add-new-pci-ids-on-the-fly as a CONFIG_HOTPLUG
> > feature, which should(?) maintain the current __devinit semantics: no
> > re-probes.
>
> Yeah, that option does break almost all current usages of __devinit* in
> pci drivers today with CONFIG_HOTPLUG disabled :(
>
> So either making it a different config option, or just dropping
> __devinit* all together is fine with me, one of them needs to happen.
>
> Any preferences from anyone else?

Make it an option.

> > OTOH, __devinit already is a no-op for CONFIG_HOTPLUG cases (read: most
> > everybody), so I wonder if we care enough about __devinit anymore? I
> > used the same logic to support __devinitdata removal, after all.
>
> If we drop __devinit* then having CONFIG_HOTPLUG as a config option is
> almost pointless as it doesn't really affect much code at all. Any
> objections to just always enabling it?
>
> Anyone want to make up any before and after memory usages with
> CONFIG_HOTPLUG enabled and disabled to see if it's really as small as
> I'm thinking it is?

Well, here's some numbers I came up with on 2.6.0-test2 on PPC. I
picked 3 boards, EmbeddedPlanet 8260, IBM Spruce and IBM Walnut, made
the vmlinux (with an occasional fix here and there for other issues),
and came up with the following size changes (see arch/ppc/configs/ for
the base config). From HOTPLUG=n to HOTPLUG=y, and with __devinit stuff
put in it's own section I got:
EmbeddedPlanet 8260 (PPC8260, CONFIG_PCI==n):
.text: +2580
.exit.text: same
.rodata: +104
__ksymtab: same
.data: +352
.init.text (excluding __devinit): same.
.init.dev.text: 1692.
.init.data vs .init.data: 84

IBM Spruce (PPC750):
.text: +18528
.exit.text: -300
.rodata: +956
__ksymstab: +96
.data: +6816
.init.text (excluding __devinit): +132
.init.dev.text: 13032

IBM Walnut (PPC405):
.text: +17648
.exit.text: -300
.rodata: +1288
__ksymstab: +96
.data: +5312
.init.text (excluding __devinit): +128
.init.dev.text: 10508

The 8260 board is almost all 'custom' drivers inside of arch/ppc (long
story) and don't make much use of __init-style markups. The other
boards make use of more standard drivers, and have PCI. Since this is
-test2, and not current BK I'm not sure how correct the .data figures
are now, but it looks like CONFIG_HOTPLUG adds ~13kB to a kernel. So
how about stubbing things out if that makes it easier to code up hotplug
stuff (which can be important on some embedded devices too) so there's
choice?

-- 
Tom Rini
http://gate.crashing.org/~trini/


- 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/



This archive was generated by hypermail 2b29 : Thu Aug 07 2003 - 22:00:40 EST