linux-mips
[Top] [All Lists]

Re: [PATCH] jump label: Add MIPS support.

To: David Daney <ddaney@caviumnetworks.com>
Subject: Re: [PATCH] jump label: Add MIPS support.
From: Jason Baron <jbaron@redhat.com>
Date: Mon, 4 Oct 2010 13:50:39 -0400
Cc: Rabin Vincent <rabin@rab.in>, linux-mips@linux-mips.org, ralf@linux-mips.org, linux-kernel@vger.kernel.org, rostedt@goodmis.org, David Miller <davem@davemloft.net>
In-reply-to: <4CAA122B.40502@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <1285697432-29244-1-git-send-email-ddaney@caviumnetworks.com> <AANLkTimEJQE3i9Wa1X=Rkw1goJA9c5Sso-iWV=hLG6KF@mail.gmail.com> <4CAA122B.40502@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.18 (2008-05-17)
On Mon, Oct 04, 2010 at 10:43:07AM -0700, David Daney wrote:
> On 10/03/2010 11:15 AM, Rabin Vincent wrote:
>> On Tue, Sep 28, 2010 at 11:40 PM, David Daney<ddaney@caviumnetworks.com>  
>> wrote:
>>> +void arch_jump_label_text_poke_early(jump_label_t addr)
>>> +{
>>> +       union mips_instruction *insn_p =
>>> +               (union mips_instruction *)(unsigned long)addr;
>>> +
>>> +       insn_p->word = 0; /* nop */
>>> +       flush_icache_range((unsigned long)insn_p,
>>> +                          (unsigned long)insn_p + sizeof(*insn_p));
>>> +}
>>
>> Can't this function be a no-op on MIPS?  This seems to be
>> used on x86 to patch in the optimal nop instruction, but
>> on MIPS the optimal/only nop instruction should already
>> be in place at build time.  Same thing for the SPARC
>> implementation.
>>
>
> Yes, I think you are correct.
>
> On MIPS the NOP is already optimal.  I will respin the MIPS patch to  
> make arch_jump_label_text_poke_early() be empty.
>
> davem wasn't CCed on the original message, so I added him.  I would  
> defer to him on the SPARC version.
>
>

that's right, arch_jump_label_text_poke_early() can probably be a no-op
for most arches.

We can also look at adding an empty definition into the generic
header. So that arches don't have to provide an empty definition.

thanks,

-Jason

<Prev in Thread] Current Thread [Next in Thread>