Messages in this thread | ![/](/images/icornerl.gif) | | Date | Thu, 7 Aug 2003 13:26:58 -0700 | From | Tom Rini <> | Subject | Re: devinit |
| |
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/ [unhandled content-type:application/pgp-signature] | ![\](/images/icornerr.gif) |