* 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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.