linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] jump-label: initialize jump-label subsystem somewhat later
@ 2011-12-14 16:48 David Daney
  2011-12-14 16:51 ` Peter Zijlstra
  2011-12-14 18:31 ` Sergei Shtylyov
  0 siblings, 2 replies; 4+ messages in thread
From: David Daney @ 2011-12-14 16:48 UTC (permalink / raw)
  To: ralf, Linus Torvalds, Andrew Morton, linux-mips,
	Jeremy Fitzhardinge, Peter Zijlstra
  Cc: linux-kernel, Jason Baron, David Daney

From: David Daney <david.daney@cavium.com>

commit 97ce2c88f9ad42e3c60a9beb9fca87abf3639faa breaks MIPS.

The jump-lable initialization does I-Cache flushing after modifying
code.  On MIPS this is done by calling through the function pointer
flush_icache_range().  This function pointer is initialized mm_init().

As things stand, we cannot be calling jump_label_init() until after
mm_init() completes, so we move the call down to satisfy this
constraint.

Signed-off-by: David Daney <david.daney@cavium.com>
---
 init/main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/init/main.c b/init/main.c
index 217ed23..8c6a155 100644
--- a/init/main.c
+++ b/init/main.c
@@ -513,8 +513,6 @@ asmlinkage void __init start_kernel(void)
 		   __stop___param - __start___param,
 		   &unknown_bootoption);
 
-	jump_label_init();
-
 	/*
 	 * These use large bootmem allocations and must precede
 	 * kmem_cache_init()
@@ -526,6 +524,8 @@ asmlinkage void __init start_kernel(void)
 	trap_init();
 	mm_init();
 
+	jump_label_init();
+
 	/*
 	 * Set up the scheduler prior starting any interrupts (such as the
 	 * timer interrupt). Full topology setup happens at smp_init()
-- 
1.7.2.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] jump-label: initialize jump-label subsystem somewhat later
  2011-12-14 16:48 [PATCH] jump-label: initialize jump-label subsystem somewhat later David Daney
@ 2011-12-14 16:51 ` Peter Zijlstra
  2011-12-14 17:17   ` David Daney
  2011-12-14 18:31 ` Sergei Shtylyov
  1 sibling, 1 reply; 4+ messages in thread
From: Peter Zijlstra @ 2011-12-14 16:51 UTC (permalink / raw)
  To: David Daney
  Cc: ralf, Linus Torvalds, Andrew Morton, linux-mips,
	Jeremy Fitzhardinge, linux-kernel, Jason Baron, David Daney

On Wed, 2011-12-14 at 08:48 -0800, David Daney wrote:
> From: David Daney <david.daney@cavium.com>
> 
> commit 97ce2c88f9ad42e3c60a9beb9fca87abf3639faa breaks MIPS.
> 
> The jump-lable initialization does I-Cache flushing after modifying
> code.  On MIPS this is done by calling through the function pointer
> flush_icache_range().  This function pointer is initialized mm_init().
> 
> As things stand, we cannot be calling jump_label_init() until after
> mm_init() completes, so we move the call down to satisfy this
> constraint.

I'm fine as long as it stays before sched_init(), which it does. Jeremy
is this still early enough for you?


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] jump-label: initialize jump-label subsystem somewhat later
  2011-12-14 16:51 ` Peter Zijlstra
@ 2011-12-14 17:17   ` David Daney
  0 siblings, 0 replies; 4+ messages in thread
From: David Daney @ 2011-12-14 17:17 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: David Daney, ralf, Linus Torvalds, Andrew Morton, linux-mips,
	Jeremy Fitzhardinge, linux-kernel, Jason Baron

On 12/14/2011 08:51 AM, Peter Zijlstra wrote:
> On Wed, 2011-12-14 at 08:48 -0800, David Daney wrote:
>> From: David Daney<david.daney@cavium.com>
>>
>> commit 97ce2c88f9ad42e3c60a9beb9fca87abf3639faa breaks MIPS.
>>
>> The jump-lable initialization does I-Cache flushing after modifying
>> code.  On MIPS this is done by calling through the function pointer
>> flush_icache_range().  This function pointer is initialized mm_init().

Actually I misspoke, for MIPS we need jump_label_init() after 
trap_init(), not mm_init().

>>
>> As things stand, we cannot be calling jump_label_init() until after
>> mm_init() completes, so we move the call down to satisfy this
>> constraint.
>
> I'm fine as long as it stays before sched_init(), which it does. Jeremy
> is this still early enough for you?
>

Just tested a revised patch that moves it to between trap_init() and 
mm_init(), I propose that we do that instead.

New patch in a couple of minutes.

David Daney

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] jump-label: initialize jump-label subsystem somewhat later
  2011-12-14 16:48 [PATCH] jump-label: initialize jump-label subsystem somewhat later David Daney
  2011-12-14 16:51 ` Peter Zijlstra
@ 2011-12-14 18:31 ` Sergei Shtylyov
  1 sibling, 0 replies; 4+ messages in thread
From: Sergei Shtylyov @ 2011-12-14 18:31 UTC (permalink / raw)
  To: David Daney
  Cc: ralf, Linus Torvalds, Andrew Morton, linux-mips,
	Jeremy Fitzhardinge, Peter Zijlstra, linux-kernel, Jason Baron,
	David Daney

Hello.

On 12/14/2011 07:48 PM, David Daney wrote:

> From: David Daney <david.daney@cavium.com>

> commit 97ce2c88f9ad42e3c60a9beb9fca87abf3639faa breaks MIPS.

    Please also specify that commit's summary (in parens).

> The jump-lable initialization does I-Cache flushing after modifying

    Label.

> code.  On MIPS this is done by calling through the function pointer
> flush_icache_range().  This function pointer is initialized mm_init().

    "By" missing?

> As things stand, we cannot be calling jump_label_init() until after
> mm_init() completes, so we move the call down to satisfy this
> constraint.

> Signed-off-by: David Daney<david.daney@cavium.com>

WBR, Sergei

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-12-14 17:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-14 16:48 [PATCH] jump-label: initialize jump-label subsystem somewhat later David Daney
2011-12-14 16:51 ` Peter Zijlstra
2011-12-14 17:17   ` David Daney
2011-12-14 18:31 ` Sergei Shtylyov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).