[PATCH] ARM: Avoid discarding sections that might have SMP_ON_UP fixups
Dave Martin
dave.martin at linaro.org
Fri Feb 11 11:17:48 EST 2011
On Fri, Feb 11, 2011 at 4:05 PM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Fri, Feb 11, 2011 at 10:52:17AM +0000, Dave Martin wrote:
>> On Fri, Feb 11, 2011 at 10:13 AM, Russell King - ARM Linux
>> <linux at arm.linux.org.uk> wrote:
>> > On Fri, Feb 11, 2011 at 09:33:56AM +0000, Dave Martin wrote:
>> >> Agreed -- actually, I suspected we might need to support this. But I
>> >> don't think solving this problem (= keeping the fixup implementation
>> >> in memory and enhancing the module loader) solved the
>> >> fixups-referencing-sections-discarded-from-vmlinux problem. These
>> >> seem to be two separate issues. I am filing to understand something?
>> >
>> > They are separate, but related issues. They both ultimately have the
>> > same cause - the placement of the spinlock code inline rather than
>> > out of line, resulting in fixups appearing all over the place rather
>> > than just in kernel/spinlock.o.
>>
>> I guess what I want to understand is whether I (or someone) still
>> need(s) to sort out the vmlinux.lds issue.
>
> Yes we do - if you build your kernel you should find that your link
> fails because of discarded sections being referenced.
Yep -- I'm still applying my original patch to work around that, but
it sounds like I need to tidy that up. Can you elaborate on what you
meant by defining a "KEEP_EXIT" macro to handle this?
>
>> If we're keeping inline spinlocks (I currently assume "yes"), then the
>> vmlinux.lds issue still needs fixing. Is that correct? However, if
>> we get rid of inline spinlocks we won't have the problem, though there
>> may be some performance impact -- hard to judge how significant.
>
> I don't see that we can get rid of inline spinlocks - it's controlled
> by stuff external to the arch.
That's fine -- just wanted to make sure I had the right understanding.
Cheers
---Dave
More information about the linux-arm-kernel
mailing list