And you know what? This is likely not the end yet! It's possible
spin_lock_irqXXX, __wake_up_common, waitqueue_active or bit_waitqueue
are inlines - I didn't check.
--
vda
Yes, that's 0.2% code size increase
...In just 17 callsites in entire kernel.
(or none increase, if drop
inline-__wake_up_bit.patch and apply only the other patches).
Now this is a better approach - to actually see how many
callsites are there, and inlining only where makes sense.
But in practice it's hard to do and also is changing all the time
during development. What is optimal today won't be optimal in
2.6.45 :)
Ingo's suggestion to talk to gcc people to remedy
insane call convention sounds as a more workable solution.
BTW, i386 uses regparm call convention, is similar trick
possible for sparc64?
--To me it
seems crazy, how this code was refactored again and again over time, up to
8 levels of functions (including passing a pointer to a method). In 2.0.x
kernel series, it was just a single call to wake up a queue.
Yes, probably... If you can simplify it, everyone will be glad.
--
vda