linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6.20-rc4-rt0: i386 assembler in kernel/sys.c
@ 2007-01-08 16:30 Sascha Hauer
  2007-01-09  8:45 ` [patch] paravirt: disable Kbuild option for now Ingo Molnar
  0 siblings, 1 reply; 5+ messages in thread
From: Sascha Hauer @ 2007-01-08 16:30 UTC (permalink / raw)
  To: linux-rt-users

Hi all,

Looks like some debug code accidently leaked into this kernel/sys.c:

	if (option == 9998) {
		int i;
		for (i = 0; i < arg2; i++)
			asm ("movl $0x12341234, %%eax; movl %%eax, %%cr3":::"eax");
		return 1;
	}
	if (option == 9999) {
		int i;
		for (i = 0; i < arg2; i++)
			asm (".byte 0x0f, 0x01, 0xc1");
		return 0;
	}

In include/linux/irqflags.h safe_halt changed from a macro to a static
inline function which results in tons of warnings for architectures
other than x86[-64]:

include/linux/irqflags.h:99: warning: implicit declaration of function 'raw_safe_halt'

Apart from these two issues 2.6.20-rc4-rt0 seems to run on my arm
system.

Sascha

-- 
 Dipl.-Ing. Sascha Hauer | http://www.pengutronix.de
  Pengutronix - Linux Solutions for Science and Industry
    Handelsregister: Amtsgericht Hildesheim, HRA 2686
      Hannoversche Str. 2, 31134 Hildesheim, Germany
    Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9

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

* [patch] paravirt: disable Kbuild option for now
  2007-01-08 16:30 2.6.20-rc4-rt0: i386 assembler in kernel/sys.c Sascha Hauer
@ 2007-01-09  8:45 ` Ingo Molnar
  2007-01-09 12:05   ` Rusty Russell
  0 siblings, 1 reply; 5+ messages in thread
From: Ingo Molnar @ 2007-01-09  8:45 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: linux-rt-users, Rusty Russell, Andrew Morton


* Sascha Hauer <s.hauer@pengutronix.de> wrote:

> In include/linux/irqflags.h safe_halt changed from a macro to a static 
> inline function which results in tons of warnings for architectures 
> other than x86[-64]:
> 
> include/linux/irqflags.h:99: warning: implicit declaration of function 
> 'raw_safe_halt'

ok, this is still not fixed in rt2 - which is using Rusty's 
paravirt-unexport patch.

Andrew, we need to fix this before v2.6.20 is released. Simplest 
upstream fix is to just disable the CONFIG_PARAVIRT Kbuild option, as 
per the patch below. Rusty's unexport patch is promising in many ways, 
but it's v2.6.21 stuff IMO.

i'm keeping it enabled in -rt, which makes actual use of this 
infrastructure via KVM-paravirt, so it wont be forgotten.

	Ingo

-------------->
From: Ingo Molnar <mingo@elte.hu>
Subject: [patch] paravirt: disable Kbuild option for now

disable CONFIG_PARAVIRT for now - it's not like that it is useful for 
anything in-tree at the moment. I'll make sure it's fixed in v2.6.21.

Signed-off-by: Ingo Molnar <mingo@elte.hu>

Index: linux/arch/i386/Kconfig
===================================================================
--- linux.orig/arch/i386/Kconfig
+++ linux/arch/i386/Kconfig
@@ -199,6 +199,12 @@ endchoice
 
 config PARAVIRT
 	bool "Paravirtualization support (EXPERIMENTAL)"
+
+	#
+	# Work in progress, disable for now:
+	#
+	depends on 0
+
 	depends on EXPERIMENTAL
 	depends on !(X86_VISWS || X86_VOYAGER)
 	help

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

* Re: [patch] paravirt: disable Kbuild option for now
  2007-01-09  8:45 ` [patch] paravirt: disable Kbuild option for now Ingo Molnar
@ 2007-01-09 12:05   ` Rusty Russell
  2007-01-09 12:11     ` Ingo Molnar
  2007-01-09 12:39     ` Rusty Russell
  0 siblings, 2 replies; 5+ messages in thread
From: Rusty Russell @ 2007-01-09 12:05 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Sascha Hauer, linux-rt-users, Andrew Morton

On Tue, 2007-01-09 at 09:45 +0100, Ingo Molnar wrote:
> * Sascha Hauer <s.hauer@pengutronix.de> wrote:
> 
> > In include/linux/irqflags.h safe_halt changed from a macro to a static 
> > inline function which results in tons of warnings for architectures 
> > other than x86[-64]:
> > 
> > include/linux/irqflags.h:99: warning: implicit declaration of function 
> > 'raw_safe_halt'
> 
> ok, this is still not fixed in rt2 - which is using Rusty's 
> paravirt-unexport patch.
> 
> Andrew, we need to fix this before v2.6.20 is released. Simplest 
> upstream fix is to just disable the CONFIG_PARAVIRT Kbuild option, as 
> per the patch below. Rusty's unexport patch is promising in many ways, 
> but it's v2.6.21 stuff IMO.

No.  Just drop the whole "don't export paravirt_ops" idea, and we'll
work on that for 2.6.21.

I don't see a problem with exporting paravirt_ops, I was just trying to
keep you happy.  I'm happy to remove the export in 2.6.21, but as we've
seen it's non-trivial to ensure all configs still work.

Rusty.

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

* Re: [patch] paravirt: disable Kbuild option for now
  2007-01-09 12:05   ` Rusty Russell
@ 2007-01-09 12:11     ` Ingo Molnar
  2007-01-09 12:39     ` Rusty Russell
  1 sibling, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2007-01-09 12:11 UTC (permalink / raw)
  To: Rusty Russell; +Cc: Sascha Hauer, linux-rt-users, Andrew Morton


* Rusty Russell <rusty@rustcorp.com.au> wrote:

> > Andrew, we need to fix this before v2.6.20 is released. Simplest 
> > upstream fix is to just disable the CONFIG_PARAVIRT Kbuild option, 
> > as per the patch below. Rusty's unexport patch is promising in many 
> > ways, but it's v2.6.21 stuff IMO.
> 
> No.  Just drop the whole "don't export paravirt_ops" idea, and we'll 
> work on that for 2.6.21.
> 
> I don't see a problem with exporting paravirt_ops, [...]

I do see a problem with it: it's been poorly done /because/ nothing 
in-kernel uses it. We can fix it for 2.6.21, but lets disable it for 
2.6.20 - or make the export _GPL as per the patch below. We can enable 
it no problem. Or if that doesnt happen i'm strongly NACK-ing the whole 
paravirt subsystem in its current form.

	Ingo

---------------->
From: Ingo Molnar <mingo@elte.hu>
Subject: [patch] paravirt: mark the export GPL

the paravirt subsystem is still in flux so all exports from it are 
definitely internal use only. The APIs around this /will/ change.

Signed-off-by: Ingo Molnar <mingo@elte.hu>

Index: linux/arch/i386/kernel/paravirt.c
===================================================================
--- linux.orig/arch/i386/kernel/paravirt.c
+++ linux/arch/i386/kernel/paravirt.c
@@ -566,4 +566,4 @@ struct paravirt_ops paravirt_ops = {
 	.irq_enable_sysexit = native_irq_enable_sysexit,
 	.iret = native_iret,
 };
-EXPORT_SYMBOL(paravirt_ops);
+EXPORT_SYMBOL_GPL(paravirt_ops);

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

* Re: [patch] paravirt: disable Kbuild option for now
  2007-01-09 12:05   ` Rusty Russell
  2007-01-09 12:11     ` Ingo Molnar
@ 2007-01-09 12:39     ` Rusty Russell
  1 sibling, 0 replies; 5+ messages in thread
From: Rusty Russell @ 2007-01-09 12:39 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: Sascha Hauer, linux-rt-users, Andrew Morton, Linus Torvalds

On Tue, 2007-01-09 at 23:05 +1100, Rusty Russell wrote:
> On Tue, 2007-01-09 at 09:45 +0100, Ingo Molnar wrote:
> > * Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > 
> > > In include/linux/irqflags.h safe_halt changed from a macro to a static 
> > > inline function which results in tons of warnings for architectures 
> > > other than x86[-64]:
> No.  Just drop the whole "don't export paravirt_ops" idea, and we'll
> work on that for 2.6.21.

Or, apply this.  Compile & boot tested.

Name: Revert safe_halt to a macro: instead rename paravirt_ops op to avoid the namespace pollution

Making "safe_halt()" an inline function gives lots of warning on other
archs, so it's easiest to just avoid that name.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

diff -r 3bbc1e7384c9 arch/i386/kernel/paravirt.c
--- a/arch/i386/kernel/paravirt.c	Tue Jan 09 17:28:27 2007 +1100
+++ b/arch/i386/kernel/paravirt.c	Tue Jan 09 23:16:30 2007 +1100
@@ -683,13 +773,13 @@ EXPORT_SYMBOL(wbinvd);
 
 void raw_safe_halt(void)
 {
-	paravirt_ops.safe_halt();
+	paravirt_ops.halt_safe();
 }
 EXPORT_SYMBOL_GPL(raw_safe_halt);
 
 void halt(void)
 {
-	paravirt_ops.safe_halt();
+	paravirt_ops.halt();
 }
 EXPORT_SYMBOL_GPL(halt);
 
@@ -750,7 +840,7 @@ struct paravirt_ops paravirt_ops = {
 	.restore_fl = native_restore_fl,
 	.irq_disable = native_irq_disable,
 	.irq_enable = native_irq_enable,
-	.safe_halt = native_safe_halt,
+	.halt_safe = native_safe_halt,
 	.halt = native_halt,
 	.wbinvd = native_wbinvd,
 	.read_msr = native_read_msr,
diff -r 3bbc1e7384c9 include/asm-i386/paravirt.h
--- a/include/asm-i386/paravirt.h	Tue Jan 09 17:28:27 2007 +1100
+++ b/include/asm-i386/paravirt.h	Tue Jan 09 23:15:22 2007 +1100
@@ -94,7 +94,7 @@ struct paravirt_ops
 	void (fastcall *restore_fl)(unsigned long);
 	void (fastcall *irq_disable)(void);
 	void (fastcall *irq_enable)(void);
-	void (fastcall *safe_halt)(void);
+	void (fastcall *halt_safe)(void);
 	void (fastcall *halt)(void);
 	void (fastcall *wbinvd)(void);
 
diff -r 3bbc1e7384c9 include/linux/irqflags.h
--- a/include/linux/irqflags.h	Tue Jan 09 17:28:27 2007 +1100
+++ b/include/linux/irqflags.h	Tue Jan 09 23:12:20 2007 +1100
@@ -74,11 +74,11 @@
 #endif /* CONFIG_TRACE_IRQFLAGS_SUPPORT */
 
 #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
-static inline void safe_halt(void)
-{
-	trace_hardirqs_on();
-	raw_safe_halt();
-}
+#define safe_halt()						\
+	do {							\
+		trace_hardirqs_on();				\
+		raw_safe_halt();				\
+	} while (0)
 
 #define local_save_flags(flags)		raw_local_save_flags(flags)
 

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

end of thread, other threads:[~2007-01-09 12:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-01-08 16:30 2.6.20-rc4-rt0: i386 assembler in kernel/sys.c Sascha Hauer
2007-01-09  8:45 ` [patch] paravirt: disable Kbuild option for now Ingo Molnar
2007-01-09 12:05   ` Rusty Russell
2007-01-09 12:11     ` Ingo Molnar
2007-01-09 12:39     ` Rusty Russell

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).