public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM
@ 2008-03-14 17:44 Randy Dunlap
  2008-03-16 11:13 ` Avi Kivity
  2008-03-25 23:08 ` [PATCH v2] x86: don't allow KVM_CLOCK on Voyager or Visual WS Randy Dunlap
  0 siblings, 2 replies; 6+ messages in thread
From: Randy Dunlap @ 2008-03-14 17:44 UTC (permalink / raw)
  To: lkml, linux-next; +Cc: kvm-devel, avi, tglx, mingo, hpa

From: Randy Dunlap <randy.dunlap@oracle.com>

Make KVM_CLOCK depend on HAVE_KVM.  Otherwise a Voyager build can
fail with:

  CC      arch/x86/kernel/asm-offsets.s
In file included from include2/asm/irqflags.h:59,
                 from /local/linsrc/next-20080314/include/linux/irqflags.h:46,
                 from include2/asm/system.h:11,
                 from include2/asm/processor.h:21,
                 from include2/asm/atomic_32.h:5,
                 from include2/asm/atomic.h:2,
                 from /local/linsrc/next-20080314/include/linux/crypto.h:20,
                 from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets_32.c:7,
                 from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets.c:2:
include2/asm/paravirt.h: In function 'startup_ipi_hook':
include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
include2/asm/paravirt.h:856: error: memory input 4 is not directly addressable
make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
make[1]: *** [prepare0] Error 2
make: *** [sub-make] Error 2

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
 arch/x86/Kconfig |    1 +
 1 file changed, 1 insertion(+)

--- next-20080314.orig/arch/x86/Kconfig
+++ next-20080314/arch/x86/Kconfig
@@ -370,6 +370,7 @@ config VMI
 config KVM_CLOCK
 	bool "KVM paravirtualized clock"
 	select PARAVIRT
+	depends on HAVE_KVM
 	help
 	  Turning on this option will allow you to run a paravirtualized clock
 	  when running over the KVM hypervisor. Instead of relying on a PIT

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

* Re: [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM
  2008-03-14 17:44 [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM Randy Dunlap
@ 2008-03-16 11:13 ` Avi Kivity
  2008-03-17 15:55   ` Randy Dunlap
  2008-03-25 23:08 ` [PATCH v2] x86: don't allow KVM_CLOCK on Voyager or Visual WS Randy Dunlap
  1 sibling, 1 reply; 6+ messages in thread
From: Avi Kivity @ 2008-03-16 11:13 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: lkml, linux-next, kvm-devel, tglx, mingo, hpa

Randy Dunlap wrote:
> From: Randy Dunlap <randy.dunlap@oracle.com>
>
> Make KVM_CLOCK depend on HAVE_KVM.  Otherwise a Voyager build can
> fail with:
>
>   CC      arch/x86/kernel/asm-offsets.s
> In file included from include2/asm/irqflags.h:59,
>                  from /local/linsrc/next-20080314/include/linux/irqflags.h:46,
>                  from include2/asm/system.h:11,
>                  from include2/asm/processor.h:21,
>                  from include2/asm/atomic_32.h:5,
>                  from include2/asm/atomic.h:2,
>                  from /local/linsrc/next-20080314/include/linux/crypto.h:20,
>                  from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets_32.c:7,
>                  from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets.c:2:
> include2/asm/paravirt.h: In function 'startup_ipi_hook':
> include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
> include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
> include2/asm/paravirt.h:856: error: memory input 4 is not directly addressable
> make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
> make[1]: *** [prepare0] Error 2
> make: *** [sub-make] Error 2
>
>   

Looks like it's a general paravirt vs voyager issue, nothing kvmclock 
specific about it.  Wouldn't it be better to have voyager and paravirt 
mutually exclude each other, rather than every paravirt user?

HAVE_KVM is intended for the host, not the guest, btw.

-- 
error compiling committee.c: too many arguments to function


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

* Re: [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM
  2008-03-16 11:13 ` Avi Kivity
@ 2008-03-17 15:55   ` Randy Dunlap
  2008-03-17 17:01     ` [kvm-devel] " Avi Kivity
  0 siblings, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2008-03-17 15:55 UTC (permalink / raw)
  To: Avi Kivity; +Cc: lkml, linux-next, kvm-devel, tglx, mingo, hpa

On Sun, 16 Mar 2008 13:13:08 +0200 Avi Kivity wrote:

> Randy Dunlap wrote:
> > From: Randy Dunlap <randy.dunlap@oracle.com>
> >
> > Make KVM_CLOCK depend on HAVE_KVM.  Otherwise a Voyager build can
> > fail with:
> >
> >   CC      arch/x86/kernel/asm-offsets.s
> > In file included from include2/asm/irqflags.h:59,
> >                  from /local/linsrc/next-20080314/include/linux/irqflags.h:46,
> >                  from include2/asm/system.h:11,
> >                  from include2/asm/processor.h:21,
> >                  from include2/asm/atomic_32.h:5,
> >                  from include2/asm/atomic.h:2,
> >                  from /local/linsrc/next-20080314/include/linux/crypto.h:20,
> >                  from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets_32.c:7,
> >                  from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets.c:2:
> > include2/asm/paravirt.h: In function 'startup_ipi_hook':
> > include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
> > include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
> > include2/asm/paravirt.h:856: error: memory input 4 is not directly addressable
> > make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
> > make[1]: *** [prepare0] Error 2
> > make: *** [sub-make] Error 2
> >
> >   
> 
> Looks like it's a general paravirt vs voyager issue, nothing kvmclock 
> specific about it.  Wouldn't it be better to have voyager and paravirt 
> mutually exclude each other, rather than every paravirt user?

They do generally mutually exclude each other.  I think that the problem
is just that dirty old "select PARAVIRT" in config KVM_CLOCK.
PARAVIRT depends on !(X86_VISWS || X86_VOYAGER), but "select" doesn't
care^W honor that.  As Documentation/kbuild/kconfig-language.txt says:

	"In general use select only for
	non-visible symbols (no prompts anywhere) and for symbols with
	no dependencies. That will limit the usefulness but on the
	other hand avoid the illegal configurations all over. kconfig
	should one day warn about such things."

so changing the select to depends on would fix it, but that's the
only fix that I know of.

> HAVE_KVM is intended for the host, not the guest, btw.


---
~Randy

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

* Re: [kvm-devel] [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM
  2008-03-17 15:55   ` Randy Dunlap
@ 2008-03-17 17:01     ` Avi Kivity
  0 siblings, 0 replies; 6+ messages in thread
From: Avi Kivity @ 2008-03-17 17:01 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: kvm-devel, lkml, linux-next, hpa, mingo

Randy Dunlap wrote:
> On Sun, 16 Mar 2008 13:13:08 +0200 Avi Kivity wrote:
>
>   
>> Randy Dunlap wrote:
>>     
>>> From: Randy Dunlap <randy.dunlap@oracle.com>
>>>
>>> Make KVM_CLOCK depend on HAVE_KVM.  Otherwise a Voyager build can
>>> fail with:
>>>
>>>   CC      arch/x86/kernel/asm-offsets.s
>>> In file included from include2/asm/irqflags.h:59,
>>>                  from /local/linsrc/next-20080314/include/linux/irqflags.h:46,
>>>                  from include2/asm/system.h:11,
>>>                  from include2/asm/processor.h:21,
>>>                  from include2/asm/atomic_32.h:5,
>>>                  from include2/asm/atomic.h:2,
>>>                  from /local/linsrc/next-20080314/include/linux/crypto.h:20,
>>>                  from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets_32.c:7,
>>>                  from /local/linsrc/next-20080314/arch/x86/kernel/asm-offsets.c:2:
>>> include2/asm/paravirt.h: In function 'startup_ipi_hook':
>>> include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
>>> include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
>>> include2/asm/paravirt.h:856: error: memory input 4 is not directly addressable
>>> make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1
>>> make[1]: *** [prepare0] Error 2
>>> make: *** [sub-make] Error 2
>>>
>>>   
>>>       
>> Looks like it's a general paravirt vs voyager issue, nothing kvmclock 
>> specific about it.  Wouldn't it be better to have voyager and paravirt 
>> mutually exclude each other, rather than every paravirt user?
>>     
>
> They do generally mutually exclude each other.  I think that the problem
> is just that dirty old "select PARAVIRT" in config KVM_CLOCK.
> PARAVIRT depends on !(X86_VISWS || X86_VOYAGER), but "select" doesn't
> care^W honor that.  As Documentation/kbuild/kconfig-language.txt says:
>
> 	"In general use select only for
> 	non-visible symbols (no prompts anywhere) and for symbols with
> 	no dependencies. That will limit the usefulness but on the
> 	other hand avoid the illegal configurations all over. kconfig
> 	should one day warn about such things."
>
> so changing the select to depends on would fix it, but that's the
> only fix that I know of.
>   

A depends is horrible from the user point of view as it hides the 
feature completely if paravirt is not enabled.  So your original 
workaround is probably best.

Or maybe
   depends on PARAVIRT_CAPABLE
   selects PARAVIRT

Where PARAVIRT_CAPABLE is a synonym for !(X86_REMOVE_ME || 
X86_TOTAL_SILLYNESS), so we don't have to repeat it everywhere.

-- 
error compiling committee.c: too many arguments to function


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

* [PATCH v2] x86: don't allow KVM_CLOCK on Voyager or Visual WS
  2008-03-14 17:44 [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM Randy Dunlap
  2008-03-16 11:13 ` Avi Kivity
@ 2008-03-25 23:08 ` Randy Dunlap
  2008-03-27  8:25   ` [kvm-devel] " Avi Kivity
  1 sibling, 1 reply; 6+ messages in thread
From: Randy Dunlap @ 2008-03-25 23:08 UTC (permalink / raw)
  To: lkml; +Cc: linux-next, kvm-devel, avi, tglx, mingo, hpa

From: Randy Dunlap <randy.dunlap@oracle.com>

Prevent failed randconfig builds with KVM_CLOCK being enabled
on Voyager or VISWS.

build-rand9.out:  Using /local/linsrc/next-20080325 as source for kernel
build-rand9.out:                 from /local/linsrc/next-20080325/include/linux/irqflags.h:46,
build-rand9.out:                 from include2/asm/system.h:11,
build-rand9.out:                 from include2/asm/processor.h:21,
build-rand9.out:                 from include2/asm/atomic_32.h:5,
build-rand9.out:                 from include2/asm/atomic.h:2,
build-rand9.out:                 from /local/linsrc/next-20080325/include/linux/crypto.h:20,
build-rand9.out:                 from /local/linsrc/next-20080325/arch/x86/kernel/asm-offsets_32.c:7,
build-rand9.out:                 from /local/linsrc/next-20080325/arch/x86/kernel/asm-offsets.c:2:
build-rand9.out:include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
build-rand9.out:include2/asm/paravirt.h:856: error: 'struct pv_apic_ops' has no member named 'startup_ipi_hook'
build-rand9.out:include2/asm/paravirt.h:856: error: memory input 4 is not directly addressable
build-rand9.out:make[2]: *** [arch/x86/kernel/asm-offsets.s] Error 1

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
---
 arch/x86/Kconfig |    1 +
 1 file changed, 1 insertion(+)

--- next-20080325.orig/arch/x86/Kconfig
+++ next-20080325/arch/x86/Kconfig
@@ -370,6 +370,7 @@ config VMI
 config KVM_CLOCK
 	bool "KVM paravirtualized clock"
 	select PARAVIRT
+	depends on !(X86_VISWS || X86_VOYAGER)
 	help
 	  Turning on this option will allow you to run a paravirtualized clock
 	  when running over the KVM hypervisor. Instead of relying on a PIT

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

* Re: [kvm-devel] [PATCH v2] x86: don't allow KVM_CLOCK on Voyager or Visual WS
  2008-03-25 23:08 ` [PATCH v2] x86: don't allow KVM_CLOCK on Voyager or Visual WS Randy Dunlap
@ 2008-03-27  8:25   ` Avi Kivity
  0 siblings, 0 replies; 6+ messages in thread
From: Avi Kivity @ 2008-03-27  8:25 UTC (permalink / raw)
  To: Randy Dunlap; +Cc: lkml, kvm-devel, linux-next, hpa, mingo

Randy Dunlap wrote:
> From: Randy Dunlap <randy.dunlap@oracle.com>
>
> Prevent failed randconfig builds with KVM_CLOCK being enabled
> on Voyager or VISWS.
>
>   

Applies, thanks.

-- 
error compiling committee.c: too many arguments to function


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

end of thread, other threads:[~2008-03-27  8:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-14 17:44 [PATCH] x86: don't allow KVM_CLOCK without HAVE_KVM Randy Dunlap
2008-03-16 11:13 ` Avi Kivity
2008-03-17 15:55   ` Randy Dunlap
2008-03-17 17:01     ` [kvm-devel] " Avi Kivity
2008-03-25 23:08 ` [PATCH v2] x86: don't allow KVM_CLOCK on Voyager or Visual WS Randy Dunlap
2008-03-27  8:25   ` [kvm-devel] " Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox