Messages in this thread | | | Date | Sun, 2 Nov 2008 18:47:23 +0000 | From | Al Viro <> | Subject | Re: [PATCH] el3_common_init() should be __devinit, not __init |
| |
On Sun, Nov 02, 2008 at 10:13:03AM -0800, Linus Torvalds wrote: > > > On Sat, 1 Nov 2008, Sam Ravnborg wrote: > > > > For cpuinit/cpuexit the gain turned out to be minimal. > > Quite frankly, I'm not convinced. > > Yeah, yeah, most distro's end up always enabling CPU hotplug due to > suspend/resume, but: > > - desktop PC's aren't where most memory pressures are anyway > > - on UP, CONFIG_HOTPLUG_CPU isn't on even if you do have suspend/resume > > - we should still care about embedded devices, and while some of them are > growing up (and having SMP and not caring about a few tens of kB of > memory), I don't think that's a valid argument for the other ones. > > So. I'd rather we try to keep our init sections, and continue to spend > effort on fixing them. If at all possible.
FWIW, I've tweaked that stuff yesterday for a while. Results so far: alpha, arm[*], s390, s390x, uml - all down to zero section conflicts; amd64 (UP and SMP) - one conflict, and it looks like a real issue. i386 - same + one false positive. sparc32 - one potential real issue (cpuinit, BTW) sparc64 - one conflict, again likely to be a real problem m68k - 3 conflicts, one of them looking like a real bug m32r - 4 conflicts, by the look of it boiling down to single misannotation ppc, ppc64, ia64 - 7--10 conflicts on each, hadn't looked into them yet.
That - from one afternoon of hacking. And I'm yet to look at ppc/ppc64/ia64; I would be very surprised if these didn't have low-hanging fruits.
[*] 2 arm configs I have sitting around - didn't do all subarchitectures.
Now, what we *really* ought to do is taking that crap to sparse where it really can be handled sanely, without "variable name ends on magical string '_shp', so we won't complain about pointers to .init.text anywhere in it" kind of "logics".
What we need is something along the lines of "->probe() in pci_driver can be in .devinit.text and it can be called only if...". Which is much, _much_ easier for sparse to handle. We need to figure out what to do with *.S, but other than that... this is really not a job for modpost.
| |