Andi Kleen wrote: > On Wednesday 01 November 2006 11:27, Rusty Russell wrote: > >> Create a paravirt.h header for all the critical operations which need >> to be replaced with hypervisor calls, and include that instead of >> defining native operations, when CONFIG_PARAVIRT. >> > > Hmm, did this all ever compile in mainline? I had to do a few merges > and in the end i get > > /home/lsrc/quilt/linux/kernel/spinlock.c: In function ?_spin_lock_irqsave?: > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > include2/asm/spinlock.h:59: error: invalid 'asm': operand number missing after % > -letter > {standard input}: Assembler messages: > {standard input}:593: Error: undefined symbol `paravirt_ops' in operation > {standard input}:593: Error: undefined symbol `PARAVIRT_irq_enable' in operation > {standard input}:605: Error: undefined symbol `paravirt_ops' in operation > {standard input}:605: Error: undefined symbol `PARAVIRT_irq_disable' in operatio > n > Not seeing that here (on 2.6.19-rc2-mm2 with gcc 4.0.2). > and lots of new warnings like > > /home/lsrc/quilt/linux/arch/i386/kernel/traps.c: In function ?set_intr_gate?: > /home/lsrc/quilt/linux/arch/i386/kernel/traps.c:1165: warning: implicit declarat > ion of function ?_set_gate? > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/common.c: In function ?_cpu_init?: > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/common.c:754: warning: implicit decl > aration of function ?__set_tss_desc' > Sounds like desc.h got reordered. Somewhere, there was a broken patch once that did this, I thought we fixed that. > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c: In function ?intel_mach > ine_check?: > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.eax? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.ebx? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.ecx? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.edx? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.esi? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.edi? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.ebp? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.esp? > may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.eflag > s? may be used uninitialized in this function > /home/lsrc/quilt/linux/arch/i386/kernel/cpu/mcheck/p4.c:158: warning: ?dbg.eip? > may be used uninitialized in this function > Those appear to be valid warnings, with or without paravirt, due to the tacky glued inline oddity of intel_get_extended_msrs. Zach