linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
@ 2013-04-12 18:19 Borislav Petkov
  2013-04-12 20:08 ` Randy Dunlap
  2013-04-14  9:31 ` Pekka Enberg
  0 siblings, 2 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-04-12 18:19 UTC (permalink / raw)
  To: Ingo Molnar, H. Peter Anvin
  Cc: Pekka Enberg, Sasha Levin, Fengguang Wu, lkml, x86-ml

Right,

so I'm currently experimenting with my randconfig build scripts and
thought that maybe it would be a cool thing to not only do the random
builds only but also boot-test them in kvm. Which reminded me that we
have that KVMTOOL_TEST_ENABLE config option in the kvmtool with which we
can select all the stuff needed to boot the kernel in kvm.

So I copied it. I now have an all.config in the repo with
CONFIG_KVM_TEST_ENABLE=y in it so that the random builds can have the
required support.

So what do people think?

It is pretty helpful for such testing; AFAICT Fengguang is doing his
testing with kvm so he probably could use it too. And regardless, there
are more and more reasons to boot the kernel in kvm so having a single
option which selects the needed support makes more sense with time.

And I haven't picked up the 'make kvmconfig' functionality because it
is not strictly needed (yet) but it wouldn't hurt if we took it because
someone has a good reason for needing it.

Thanks.

--
>From efa9a7f7a460bc46d1dd37b691afa88070a34059 Mon Sep 17 00:00:00 2001
From: Borislav Petkov <bp@suse.de>
Date: Fri, 12 Apr 2013 20:01:47 +0200
Subject: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel

This is pretty useful for the case where people want to boot the
resulting kernel in qemu/kvm. Instead of going and searching for each
required option through the Kconfig maze, this single option should
simply enable all stuff which is required to boot the resulting kernel
in the guest.

Originally-by: Pekka Enberg <penberg@kernel.org>
Originally-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Fengguang Wu <fengguang.wu@intel.com>
---
 arch/x86/Kconfig | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 70c0f3da0476..3ca241172812 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -596,6 +596,43 @@ config SCHED_OMIT_FRAME_POINTER
 
 	  If in doubt, say "Y".
 
+config KVM_TEST_ENABLE
+	bool "Enable options for a kernel suitable for testing in kvm"
+	select NET
+	select NETDEVICES
+	select PCI
+	select BLOCK
+	select BLK_DEV
+	select NETWORK_FILESYSTEMS
+	select INET
+	select EXPERIMENTAL
+	select TTY
+	select SERIAL_8250
+	select SERIAL_8250_CONSOLE
+	select IP_PNP
+	select IP_PNP_DHCP
+	select BINFMT_ELF
+	select PCI_MSI
+	select HAVE_ARCH_KGDB
+	select DEBUG_KERNEL
+	select KGDB
+	select KGDB_SERIAL_CONSOLE
+	select VIRTUALIZATION
+	select VIRTIO
+	select VIRTIO_RING
+	select VIRTIO_PCI
+	select VIRTIO_BLK
+	select VIRTIO_CONSOLE
+	select VIRTIO_NET
+	select 9P_FS
+	select NET_9P
+	select NET_9P_VIRTIO
+	---help---
+	  Select stuff which is required for booting the kernel as a guest
+	  in qemu/kvm. This entails basic stuff like serial support, kgdb
+	  9p virtio and other basic functionality so that you can be able
+	  to have serial output from the guest, networking, etc.
+
 menuconfig PARAVIRT_GUEST
 	bool "Paravirtualized guest support"
 	---help---
-- 
1.8.2.135.g7b592fa

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-12 18:19 [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel Borislav Petkov
@ 2013-04-12 20:08 ` Randy Dunlap
  2013-04-14  9:31 ` Pekka Enberg
  1 sibling, 0 replies; 64+ messages in thread
From: Randy Dunlap @ 2013-04-12 20:08 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, Pekka Enberg, Sasha Levin,
	Fengguang Wu, lkml, x86-ml

On 04/12/13 11:19, Borislav Petkov wrote:
> --
> From efa9a7f7a460bc46d1dd37b691afa88070a34059 Mon Sep 17 00:00:00 2001
> From: Borislav Petkov <bp@suse.de>
> Date: Fri, 12 Apr 2013 20:01:47 +0200
> Subject: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
> 
> This is pretty useful for the case where people want to boot the
> resulting kernel in qemu/kvm. Instead of going and searching for each
> required option through the Kconfig maze, this single option should
> simply enable all stuff which is required to boot the resulting kernel
> in the guest.
> 
> Originally-by: Pekka Enberg <penberg@kernel.org>
> Originally-by: Sasha Levin <levinsasha928@gmail.com>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Cc: Fengguang Wu <fengguang.wu@intel.com>
> ---
>  arch/x86/Kconfig | 37 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
> 
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 70c0f3da0476..3ca241172812 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -596,6 +596,43 @@ config SCHED_OMIT_FRAME_POINTER
>  
>  	  If in doubt, say "Y".
>  
> +config KVM_TEST_ENABLE
> +	bool "Enable options for a kernel suitable for testing in kvm"
> +	select NET
> +	select NETDEVICES
> +	select PCI
> +	select BLOCK
> +	select BLK_DEV
> +	select NETWORK_FILESYSTEMS
> +	select INET
> +	select EXPERIMENTAL
> +	select TTY
> +	select SERIAL_8250
> +	select SERIAL_8250_CONSOLE
> +	select IP_PNP
> +	select IP_PNP_DHCP
> +	select BINFMT_ELF
> +	select PCI_MSI
> +	select HAVE_ARCH_KGDB
> +	select DEBUG_KERNEL
> +	select KGDB
> +	select KGDB_SERIAL_CONSOLE
> +	select VIRTUALIZATION
> +	select VIRTIO
> +	select VIRTIO_RING
> +	select VIRTIO_PCI
> +	select VIRTIO_BLK
> +	select VIRTIO_CONSOLE
> +	select VIRTIO_NET
> +	select 9P_FS
> +	select NET_9P
> +	select NET_9P_VIRTIO
> +	---help---
> +	  Select stuff which is required for booting the kernel as a guest
> +	  in qemu/kvm. This entails basic stuff like serial support, kgdb

Use commas, please:

	                                        like serial support, kgdb,
	  9p, virtio, and other basic ...

> +	  9p virtio and other basic functionality so that you can be able
> +	  to have serial output from the guest, networking, etc.
> +
>  menuconfig PARAVIRT_GUEST
>  	bool "Paravirtualized guest support"
>  	---help---
> 


-- 
~Randy

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-12 18:19 [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel Borislav Petkov
  2013-04-12 20:08 ` Randy Dunlap
@ 2013-04-14  9:31 ` Pekka Enberg
  2013-04-14 11:03   ` Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: Pekka Enberg @ 2013-04-14  9:31 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, Sasha Levin, Fengguang Wu, lkml, x86-ml

Hello,

On 4/12/13 9:19 PM, Borislav Petkov wrote:
> so I'm currently experimenting with my randconfig build scripts and
> thought that maybe it would be a cool thing to not only do the random
> builds only but also boot-test them in kvm. Which reminded me that we
> have that KVMTOOL_TEST_ENABLE config option in the kvmtool with which we
> can select all the stuff needed to boot the kernel in kvm.
>
> So I copied it. I now have an all.config in the repo with
> CONFIG_KVM_TEST_ENABLE=y in it so that the random builds can have the
> required support.
>
> So what do people think?
>
> It is pretty helpful for such testing; AFAICT Fengguang is doing his
> testing with kvm so he probably could use it too. And regardless, there
> are more and more reasons to boot the kernel in kvm so having a single
> option which selects the needed support makes more sense with time.
>
> And I haven't picked up the 'make kvmconfig' functionality because it
> is not strictly needed (yet) but it wouldn't hurt if we took it because
> someone has a good reason for needing it.

I obviously support having something like this in mainline. I wonder 
though if we could just call this "default standalone KVM guest config" 
instead of emphasizing testing angle.

			Pekka

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-14  9:31 ` Pekka Enberg
@ 2013-04-14 11:03   ` Borislav Petkov
  2013-04-16 16:18     ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-04-14 11:03 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Ingo Molnar, H. Peter Anvin, Sasha Levin, Fengguang Wu, lkml, x86-ml

On Sun, Apr 14, 2013 at 12:31:12PM +0300, Pekka Enberg wrote:
> I obviously support having something like this in mainline. I wonder
> though if we could just call this "default standalone KVM guest
> config" instead of emphasizing testing angle.

/me nods agreeingly...

And it should be unter HYPERVISOR_GUEST where the rest of this stuff
resides. Good point.

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-14 11:03   ` Borislav Petkov
@ 2013-04-16 16:18     ` Borislav Petkov
  2013-04-17  0:38       ` Sasha Levin
  2013-04-17 23:25       ` Marcelo Tosatti
  0 siblings, 2 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-04-16 16:18 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Ingo Molnar, H. Peter Anvin, Sasha Levin, Fengguang Wu, lkml,
	x86-ml, kvm

On Sun, Apr 14, 2013 at 01:03:20PM +0200, Borislav Petkov wrote:
> On Sun, Apr 14, 2013 at 12:31:12PM +0300, Pekka Enberg wrote:
> > I obviously support having something like this in mainline. I wonder
> > though if we could just call this "default standalone KVM guest
> > config" instead of emphasizing testing angle.
> 
> /me nods agreeingly...
> 
> And it should be unter HYPERVISOR_GUEST where the rest of this stuff
> resides. Good point.

Sanity check question:

Why not add the select stuff, i.e. this:

	select NET
	select NETDEVICES
	select PCI
	select BLOCK
	select BLK_DEV
	select NETWORK_FILESYSTEMS
	select INET
	select EXPERIMENTAL
	select TTY
	select SERIAL_8250
	select SERIAL_8250_CONSOLE
	select IP_PNP
	select IP_PNP_DHCP
	select BINFMT_ELF
	select PCI_MSI
	select HAVE_ARCH_KGDB
	select DEBUG_KERNEL
	select KGDB
	select KGDB_SERIAL_CONSOLE
	select VIRTUALIZATION
	select VIRTIO
	select VIRTIO_RING
	select VIRTIO_PCI
	select VIRTIO_BLK
	select VIRTIO_CONSOLE
	select VIRTIO_NET
	select 9P_FS
	select NET_9P
	select NET_9P_VIRTIO

to the option below which we already have. It is in the same sense a KVM
guest support deal.

Hmm.

KVM people, any objections?

config KVM_GUEST
        bool "KVM Guest support (including kvmclock)"
        depends on PARAVIRT
        select PARAVIRT_CLOCK
        default y
        ---help---
          This option enables various optimizations for running under the KVM
          hypervisor. It includes a paravirtualized clock, so that instead
          of relying on a PIT (or probably other) emulation by the
          underlying device model, the host provides the guest with
          timing infrastructure such as time of day, and system time

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-16 16:18     ` Borislav Petkov
@ 2013-04-17  0:38       ` Sasha Levin
  2013-04-17  7:50         ` Borislav Petkov
  2013-04-17 23:25       ` Marcelo Tosatti
  1 sibling, 1 reply; 64+ messages in thread
From: Sasha Levin @ 2013-04-17  0:38 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Fengguang Wu, lkml,
	x86-ml, kvm

On 04/16/2013 12:18 PM, Borislav Petkov wrote:
> On Sun, Apr 14, 2013 at 01:03:20PM +0200, Borislav Petkov wrote:
>> On Sun, Apr 14, 2013 at 12:31:12PM +0300, Pekka Enberg wrote:
>>> I obviously support having something like this in mainline. I wonder
>>> though if we could just call this "default standalone KVM guest
>>> config" instead of emphasizing testing angle.
>>
>> /me nods agreeingly...
>>
>> And it should be unter HYPERVISOR_GUEST where the rest of this stuff
>> resides. Good point.
> 
> Sanity check question:
> 
> Why not add the select stuff, i.e. this:
> 
> 	select NET
> 	select NETDEVICES
> 	select PCI
> 	select BLOCK
> 	select BLK_DEV
> 	select NETWORK_FILESYSTEMS
> 	select INET
> 	select EXPERIMENTAL
> 	select TTY
> 	select SERIAL_8250
> 	select SERIAL_8250_CONSOLE
> 	select IP_PNP
> 	select IP_PNP_DHCP
> 	select BINFMT_ELF
> 	select PCI_MSI
> 	select HAVE_ARCH_KGDB
> 	select DEBUG_KERNEL
> 	select KGDB
> 	select KGDB_SERIAL_CONSOLE
> 	select VIRTUALIZATION
> 	select VIRTIO
> 	select VIRTIO_RING
> 	select VIRTIO_PCI
> 	select VIRTIO_BLK
> 	select VIRTIO_CONSOLE
> 	select VIRTIO_NET
> 	select 9P_FS
> 	select NET_9P
> 	select NET_9P_VIRTIO
> 
> to the option below which we already have. It is in the same sense a KVM
> guest support deal.
> 
> Hmm.
> 
> KVM people, any objections?
> 
> config KVM_GUEST
>         bool "KVM Guest support (including kvmclock)"
>         depends on PARAVIRT
>         select PARAVIRT_CLOCK
>         default y
>         ---help---
>           This option enables various optimizations for running under the KVM
>           hypervisor. It includes a paravirtualized clock, so that instead
>           of relying on a PIT (or probably other) emulation by the
>           underlying device model, the host provides the guest with
>           timing infrastructure such as time of day, and system time

KVM guests don't need a serial device, KGDB, DEBUG_KERNEL or 9p in particular.


Thanks,
Sasha

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-17  0:38       ` Sasha Levin
@ 2013-04-17  7:50         ` Borislav Petkov
  0 siblings, 0 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-04-17  7:50 UTC (permalink / raw)
  To: Sasha Levin
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Fengguang Wu, lkml,
	x86-ml, kvm

On Tue, Apr 16, 2013 at 08:38:56PM -0400, Sasha Levin wrote:
> > 	select NET
> > 	select NETDEVICES
> > 	select PCI
> > 	select BLOCK
> > 	select BLK_DEV
> > 	select NETWORK_FILESYSTEMS
> > 	select INET
> > 	select EXPERIMENTAL
> > 	select TTY
> > 	select SERIAL_8250
> > 	select SERIAL_8250_CONSOLE
> > 	select IP_PNP
> > 	select IP_PNP_DHCP
> > 	select BINFMT_ELF
> > 	select PCI_MSI
> > 	select HAVE_ARCH_KGDB
> > 	select DEBUG_KERNEL
> > 	select KGDB
> > 	select KGDB_SERIAL_CONSOLE
> > 	select VIRTUALIZATION
> > 	select VIRTIO
> > 	select VIRTIO_RING
> > 	select VIRTIO_PCI
> > 	select VIRTIO_BLK
> > 	select VIRTIO_CONSOLE
> > 	select VIRTIO_NET
> > 	select 9P_FS
> > 	select NET_9P
> > 	select NET_9P_VIRTIO
> > 
> > to the option below which we already have. It is in the same sense a KVM
> > guest support deal.
> > 
> > Hmm.
> > 
> > KVM people, any objections?
> > 
> > config KVM_GUEST
> >         bool "KVM Guest support (including kvmclock)"
> >         depends on PARAVIRT
> >         select PARAVIRT_CLOCK
> >         default y
> >         ---help---
> >           This option enables various optimizations for running under the KVM
> >           hypervisor. It includes a paravirtualized clock, so that instead
> >           of relying on a PIT (or probably other) emulation by the
> >           underlying device model, the host provides the guest with
> >           timing infrastructure such as time of day, and system time
> 
> KVM guests don't need a serial device, KGDB, DEBUG_KERNEL or 9p in particular.

Let's see:

* we need serial device for catching serial output on the host from the guest
  kernel

* KGDB - I guess this was meant to jump into the debugger when the guest crashes
  or so, we could drop it.

* DEBUG_KERNEL is also good for testing kernels
* 9p is needed for -virtfs folder sharing, AFAICT: http://wiki.qemu.org/Documentation/9psetup

So, I guess we can have another KVM_GUEST_KERNEL_TESTING option which
enables those additional, good for debugging options (except 9p - it
should be in the main thing) and which depends on KVM_GUEST. It would also
contain other DEBUG_* stuff.

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-16 16:18     ` Borislav Petkov
  2013-04-17  0:38       ` Sasha Levin
@ 2013-04-17 23:25       ` Marcelo Tosatti
  2013-04-18  9:46         ` Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: Marcelo Tosatti @ 2013-04-17 23:25 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Tue, Apr 16, 2013 at 06:18:52PM +0200, Borislav Petkov wrote:
> On Sun, Apr 14, 2013 at 01:03:20PM +0200, Borislav Petkov wrote:
> > On Sun, Apr 14, 2013 at 12:31:12PM +0300, Pekka Enberg wrote:
> > > I obviously support having something like this in mainline. I wonder
> > > though if we could just call this "default standalone KVM guest
> > > config" instead of emphasizing testing angle.
> > 
> > /me nods agreeingly...
> > 
> > And it should be unter HYPERVISOR_GUEST where the rest of this stuff
> > resides. Good point.
> 
> Sanity check question:
> 
> Why not add the select stuff, i.e. this:
> 
> 	select NET
> 	select NETDEVICES
> 	select PCI
> 	select BLOCK
> 	select BLK_DEV
> 	select NETWORK_FILESYSTEMS
> 	select INET
> 	select EXPERIMENTAL
> 	select TTY
> 	select SERIAL_8250
> 	select SERIAL_8250_CONSOLE
> 	select IP_PNP
> 	select IP_PNP_DHCP
> 	select BINFMT_ELF
> 	select PCI_MSI
> 	select HAVE_ARCH_KGDB
> 	select DEBUG_KERNEL
> 	select KGDB
> 	select KGDB_SERIAL_CONSOLE
> 	select VIRTUALIZATION
> 	select VIRTIO
> 	select VIRTIO_RING
> 	select VIRTIO_PCI
> 	select VIRTIO_BLK
> 	select VIRTIO_CONSOLE
> 	select VIRTIO_NET
> 	select 9P_FS
> 	select NET_9P
> 	select NET_9P_VIRTIO
> 
> to the option below which we already have. It is in the same sense a KVM
> guest support deal.
> 
> Hmm.
> 
> KVM people, any objections?

None, but please don't mix it with 'KVM_GUEST' flag below. 

Actually, what about adding kvm variants of the two files at
arch/x86/configs/ ?

> config KVM_GUEST
>         bool "KVM Guest support (including kvmclock)"
>         depends on PARAVIRT
>         select PARAVIRT_CLOCK
>         default y
>         ---help---
>           This option enables various optimizations for running under the KVM
>           hypervisor. It includes a paravirtualized clock, so that instead
>           of relying on a PIT (or probably other) emulation by the
>           underlying device model, the host provides the guest with
>           timing infrastructure such as time of day, and system time


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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-17 23:25       ` Marcelo Tosatti
@ 2013-04-18  9:46         ` Borislav Petkov
  2013-04-18  9:55           ` Geert Uytterhoeven
  2013-04-18 13:36           ` Marcelo Tosatti
  0 siblings, 2 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-04-18  9:46 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Wed, Apr 17, 2013 at 08:25:07PM -0300, Marcelo Tosatti wrote:
> On Tue, Apr 16, 2013 at 06:18:52PM +0200, Borislav Petkov wrote:
> > On Sun, Apr 14, 2013 at 01:03:20PM +0200, Borislav Petkov wrote:
> > > On Sun, Apr 14, 2013 at 12:31:12PM +0300, Pekka Enberg wrote:
> > > > I obviously support having something like this in mainline. I wonder
> > > > though if we could just call this "default standalone KVM guest
> > > > config" instead of emphasizing testing angle.
> > > 
> > > /me nods agreeingly...
> > > 
> > > And it should be unter HYPERVISOR_GUEST where the rest of this stuff
> > > resides. Good point.
> > 
> > Sanity check question:
> > 
> > Why not add the select stuff, i.e. this:
> > 
> > 	select NET
> > 	select NETDEVICES
> > 	select PCI
> > 	select BLOCK
> > 	select BLK_DEV
> > 	select NETWORK_FILESYSTEMS
> > 	select INET
> > 	select EXPERIMENTAL
> > 	select TTY
> > 	select SERIAL_8250
> > 	select SERIAL_8250_CONSOLE
> > 	select IP_PNP
> > 	select IP_PNP_DHCP
> > 	select BINFMT_ELF
> > 	select PCI_MSI
> > 	select HAVE_ARCH_KGDB
> > 	select DEBUG_KERNEL
> > 	select KGDB
> > 	select KGDB_SERIAL_CONSOLE
> > 	select VIRTUALIZATION
> > 	select VIRTIO
> > 	select VIRTIO_RING
> > 	select VIRTIO_PCI
> > 	select VIRTIO_BLK
> > 	select VIRTIO_CONSOLE
> > 	select VIRTIO_NET
> > 	select 9P_FS
> > 	select NET_9P
> > 	select NET_9P_VIRTIO
> > 
> > to the option below which we already have. It is in the same sense a KVM
> > guest support deal.
> > 
> > Hmm.
> > 
> > KVM people, any objections?
> 
> None, but please don't mix it with 'KVM_GUEST' flag below. 
> 
> Actually, what about adding kvm variants of the two files at
> arch/x86/configs/ ?

two files?

> 
> > config KVM_GUEST
> >         bool "KVM Guest support (including kvmclock)"
> >         depends on PARAVIRT
> >         select PARAVIRT_CLOCK
> >         default y
> >         ---help---
> >           This option enables various optimizations for running under the KVM
> >           hypervisor. It includes a paravirtualized clock, so that instead
> >           of relying on a PIT (or probably other) emulation by the
> >           underlying device model, the host provides the guest with
> >           timing infrastructure such as time of day, and system time

Hmm,

ok, maybe I wasn't clear enough. My proposal was to actually add all (or
maybe not *all* of them, but most) those selects above to the KVM_GUEST
config option. Because, you very probably want to select all that stuff
above anyway if you want to build a kvm guest kernel, no?

IOW, something which says "Enable KVM guest support" should enable all
the stuff needed for that.

Or do you want to keep the current CONFIG_KVM_GUEST separate for special
stuff?

And yes, Sasha's suggestion to have an additional
CONFIG_KVM_GUEST_KERNEL_TESTING or so option which enables debug
stuff for people who write patches for the kernel and want to quickly
smoke-test it in kvm.

Basically, I'm looking from the perspective of a kernel dev who would
like to make an optimal use of kvm for testing kernels.

Does that make more sense?

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-18  9:46         ` Borislav Petkov
@ 2013-04-18  9:55           ` Geert Uytterhoeven
  2013-04-18 10:18             ` Borislav Petkov
  2013-04-18 13:36           ` Marcelo Tosatti
  1 sibling, 1 reply; 64+ messages in thread
From: Geert Uytterhoeven @ 2013-04-18  9:55 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Marcelo Tosatti, Pekka Enberg, Ingo Molnar, H. Peter Anvin,
	Sasha Levin, Fengguang Wu, lkml, x86-ml, kvm

On Thu, Apr 18, 2013 at 11:46 AM, Borislav Petkov <bp@alien8.de> wrote:
> ok, maybe I wasn't clear enough. My proposal was to actually add all (or
> maybe not *all* of them, but most) those selects above to the KVM_GUEST
> config option. Because, you very probably want to select all that stuff
> above anyway if you want to build a kvm guest kernel, no?
>
> IOW, something which says "Enable KVM guest support" should enable all
> the stuff needed for that.

"needed" yes,
"probably" no, as there's no way to disable them if they're selected
unconditionally.

Perhaps you can make the "probably" selects depend on !EXPERT to fix this?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-18  9:55           ` Geert Uytterhoeven
@ 2013-04-18 10:18             ` Borislav Petkov
  0 siblings, 0 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-04-18 10:18 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Marcelo Tosatti, Pekka Enberg, Ingo Molnar, H. Peter Anvin,
	Sasha Levin, Fengguang Wu, lkml, x86-ml, kvm

On Thu, Apr 18, 2013 at 11:55:33AM +0200, Geert Uytterhoeven wrote:
> On Thu, Apr 18, 2013 at 11:46 AM, Borislav Petkov <bp@alien8.de> wrote:
> > ok, maybe I wasn't clear enough. My proposal was to actually add all (or
> > maybe not *all* of them, but most) those selects above to the KVM_GUEST
> > config option. Because, you very probably want to select all that stuff
> > above anyway if you want to build a kvm guest kernel, no?
> >
> > IOW, something which says "Enable KVM guest support" should enable all
> > the stuff needed for that.
> 
> "needed" yes,
> "probably" no, as there's no way to disable them if they're selected
> unconditionally.
> 
> Perhaps you can make the "probably" selects depend on !EXPERT to fix this?

Nah, I don't want to really involve EXPERT here. You could point,
though, which are the ones one probably won't select even though it
would be good to have them on and I could stick them in the second,
kernel testing option.

IOW, The way it currently shapes up is this:

* CONFIG_KVM_GUEST - maybe not change it at all, depending on what kvm
people want in the end.

* CONFIG_KVM_KERNEL_TESTING - all the things you would - probably or
really - need selected so that you don't go and hunt Kconfig options
just so the damn guest kernel boots. And not only that but also
convenience stuff like debugging options and such so that you have the
chance of getting some more info when the guest dies.

That second option is to be enabled when building the guest kernel only,
of course.

Better?

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-18  9:46         ` Borislav Petkov
  2013-04-18  9:55           ` Geert Uytterhoeven
@ 2013-04-18 13:36           ` Marcelo Tosatti
  2013-04-19 10:35             ` Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: Marcelo Tosatti @ 2013-04-18 13:36 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Thu, Apr 18, 2013 at 11:46:29AM +0200, Borislav Petkov wrote:
> On Wed, Apr 17, 2013 at 08:25:07PM -0300, Marcelo Tosatti wrote:
> > On Tue, Apr 16, 2013 at 06:18:52PM +0200, Borislav Petkov wrote:
> > > On Sun, Apr 14, 2013 at 01:03:20PM +0200, Borislav Petkov wrote:
> > > > On Sun, Apr 14, 2013 at 12:31:12PM +0300, Pekka Enberg wrote:
> > > > > I obviously support having something like this in mainline. I wonder
> > > > > though if we could just call this "default standalone KVM guest
> > > > > config" instead of emphasizing testing angle.
> > > > 
> > > > /me nods agreeingly...
> > > > 
> > > > And it should be unter HYPERVISOR_GUEST where the rest of this stuff
> > > > resides. Good point.
> > > 
> > > Sanity check question:
> > > 
> > > Why not add the select stuff, i.e. this:
> > > 
> > > 	select NET
> > > 	select NETDEVICES
> > > 	select PCI
> > > 	select BLOCK
> > > 	select BLK_DEV
> > > 	select NETWORK_FILESYSTEMS
> > > 	select INET
> > > 	select EXPERIMENTAL
> > > 	select TTY
> > > 	select SERIAL_8250
> > > 	select SERIAL_8250_CONSOLE
> > > 	select IP_PNP
> > > 	select IP_PNP_DHCP
> > > 	select BINFMT_ELF
> > > 	select PCI_MSI
> > > 	select HAVE_ARCH_KGDB
> > > 	select DEBUG_KERNEL
> > > 	select KGDB
> > > 	select KGDB_SERIAL_CONSOLE
> > > 	select VIRTUALIZATION
> > > 	select VIRTIO
> > > 	select VIRTIO_RING
> > > 	select VIRTIO_PCI
> > > 	select VIRTIO_BLK
> > > 	select VIRTIO_CONSOLE
> > > 	select VIRTIO_NET
> > > 	select 9P_FS
> > > 	select NET_9P
> > > 	select NET_9P_VIRTIO
> > > 
> > > to the option below which we already have. It is in the same sense a KVM
> > > guest support deal.
> > > 
> > > Hmm.
> > > 
> > > KVM people, any objections?
> > 
> > None, but please don't mix it with 'KVM_GUEST' flag below. 
> > 
> > Actually, what about adding kvm variants of the two files at
> > arch/x86/configs/ ?
> 
> two files?

x86_64, x86_32.

> > 
> > > config KVM_GUEST
> > >         bool "KVM Guest support (including kvmclock)"
> > >         depends on PARAVIRT
> > >         select PARAVIRT_CLOCK
> > >         default y
> > >         ---help---
> > >           This option enables various optimizations for running under the KVM
> > >           hypervisor. It includes a paravirtualized clock, so that instead
> > >           of relying on a PIT (or probably other) emulation by the
> > >           underlying device model, the host provides the guest with
> > >           timing infrastructure such as time of day, and system time
> 
> Hmm,
> 
> ok, maybe I wasn't clear enough. My proposal was to actually add all (or
> maybe not *all* of them, but most) those selects above to the KVM_GUEST
> config option. Because, you very probably want to select all that stuff
> above anyway if you want to build a kvm guest kernel, no?

Very probably but not certainly.

> IOW, something which says "Enable KVM guest support" should enable all
> the stuff needed for that.

I get your point, but thats up to the person selecting the options.

> Or do you want to keep the current CONFIG_KVM_GUEST separate for special
> stuff?

Yes.

> And yes, Sasha's suggestion to have an additional
> CONFIG_KVM_GUEST_KERNEL_TESTING or so option which enables debug
> stuff for people who write patches for the kernel and want to quickly
> smoke-test it in kvm.

Thats fine.

> Basically, I'm looking from the perspective of a kernel dev who would
> like to make an optimal use of kvm for testing kernels.
> 
> Does that make more sense?

Understood (just don't mix it with the current CONFIG_KVM_GUEST option).

Even though can't see why those options can live in defconfig files as
suggested.


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

* Re: [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel
  2013-04-18 13:36           ` Marcelo Tosatti
@ 2013-04-19 10:35             ` Borislav Petkov
  2013-04-26  0:05               ` [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-04-19 10:35 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Thu, Apr 18, 2013 at 10:36:31AM -0300, Marcelo Tosatti wrote:
> > IOW, something which says "Enable KVM guest support" should enable all
> > the stuff needed for that.
> 
> I get your point, but thats up to the person selecting the options.

Ok.

> > Or do you want to keep the current CONFIG_KVM_GUEST separate for special
> > stuff?
> 
> Yes.

Ok.

> > Basically, I'm looking from the perspective of a kernel dev who would
> > like to make an optimal use of kvm for testing kernels.
> > 
> > Does that make more sense?
> 
> Understood (just don't mix it with the current CONFIG_KVM_GUEST option).

Ok, got it - we want those additional options in another Kconfig option,
probably depending on KVM_GUEST.

> Even though can't see why those options can live in defconfig files as
> suggested.

Well, for one, some of the options are already in the defconfig files.
However, you want to have a single shortcut option which selects those
when building randconfigs and trying to boot them in kvm. I.e., you want
some basic functionality to be always present, even with randconfigs.
And you won't have that functionality enabled if you put them in a
defconfig, AFAICT.

Now, I do that already in my tests by having those and other options in
an all.config file in the kernel repo which gets parsed by Kconfig.

The reason for adding this to the kernel though was to save other people
the time of looking for all those options everytime but have one single
shortcut. Which can also be updated by kvm people whenever they feel
like new guest kernel functionality should be enabled.

If people still feel like this is not a good idea, I can drop it. But it
makes a bunch of sense to me, currently at least :).

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel
  2013-04-19 10:35             ` Borislav Petkov
@ 2013-04-26  0:05               ` Borislav Petkov
  2013-04-26  6:42                 ` Ingo Molnar
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-04-26  0:05 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Pekka Enberg, Ingo Molnar, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

From: Borislav Petkov <bp@suse.de>
Date: Tue, 16 Apr 2013 18:24:34 +0200
Subject: [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel

This is pretty useful for the case where people want to boot the
resulting kernel in qemu/kvm. Instead of going and searching for each
required option through the Kconfig maze, this single option should
simply enable everything required/good to have to boot the resulting
kernel in the guest.

Cc: Fengguang Wu <fengguang.wu@intel.com>
Originally-by: Pekka Enberg <penberg@kernel.org>
Originally-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
---


Here's v2 which should be addressing all review comments so far.


 arch/x86/Kconfig | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 5651374d179f..76a95ffa959a 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -680,6 +680,44 @@ config KVM_GUEST
 	  underlying device model, the host provides the guest with
 	  timing infrastructure such as time of day, and system time
 
+config KVM_GUEST_COMMODITY_OPTIONS
+	bool "Enable commodity options for a standalone KVM guest"
+	depends on KVM_GUEST
+	select NET
+	select NETDEVICES
+	select BLOCK
+	select BLK_DEV
+	select NETWORK_FILESYSTEMS
+	select INET
+	select EXPERIMENTAL
+	select TTY
+	select SERIAL_8250
+	select SERIAL_8250_CONSOLE
+	select IP_PNP
+	select IP_PNP_DHCP
+	select BINFMT_ELF
+	select PCI_MSI
+	select HAVE_ARCH_KGDB
+	select DEBUG_KERNEL
+	select KGDB
+	select KGDB_SERIAL_CONSOLE
+	select VIRTUALIZATION
+	select VIRTIO
+	select VIRTIO_RING
+	select VIRTIO_PCI
+	select VIRTIO_BLK
+	select VIRTIO_CONSOLE
+	select VIRTIO_NET
+	select 9P_FS
+	select NET_9P
+	select NET_9P_VIRTIO
+	---help---
+	  Select guest kernel functionality which facilitates booting the
+	  kernel as a guest in qemu/kvm. This entails basic stuff like
+	  serial support, kgdb, virtio and other so that you can be able to
+	  have commodity functionality like serial output from the guest,
+	  networking, etc.
+
 source "arch/x86/lguest/Kconfig"
 
 config PARAVIRT_TIME_ACCOUNTING
-- 
1.8.2.135.g7b592fa

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel
  2013-04-26  0:05               ` [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel Borislav Petkov
@ 2013-04-26  6:42                 ` Ingo Molnar
  2013-04-26  9:51                   ` [PATCH -v2.1] " Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Ingo Molnar @ 2013-04-26  6:42 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Marcelo Tosatti, Pekka Enberg, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm


* Borislav Petkov <bp@alien8.de> wrote:

> From: Borislav Petkov <bp@suse.de>
> Date: Tue, 16 Apr 2013 18:24:34 +0200
> Subject: [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel
> 
> This is pretty useful for the case where people want to boot the
> resulting kernel in qemu/kvm. Instead of going and searching for each
> required option through the Kconfig maze, this single option should
> simply enable everything required/good to have to boot the resulting
> kernel in the guest.

Please mention:

 ' This patch is based on a similar utility patch of the external
   lkvm tree. '

> 
> Cc: Fengguang Wu <fengguang.wu@intel.com>
> Originally-by: Pekka Enberg <penberg@kernel.org>
> Originally-by: Sasha Levin <levinsasha928@gmail.com>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> ---
> 
> 
> Here's v2 which should be addressing all review comments so far.
> 
> 
>  arch/x86/Kconfig | 38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
> 
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 5651374d179f..76a95ffa959a 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -680,6 +680,44 @@ config KVM_GUEST
>  	  underlying device model, the host provides the guest with
>  	  timing infrastructure such as time of day, and system time
>  
> +config KVM_GUEST_COMMODITY_OPTIONS

Call this KVM_GUEST_COMMON_OPTIONS?

> +	bool "Enable commodity options for a standalone KVM guest"
> +	depends on KVM_GUEST
> +	select NET
> +	select NETDEVICES
> +	select BLOCK
> +	select BLK_DEV
> +	select NETWORK_FILESYSTEMS
> +	select INET
> +	select EXPERIMENTAL
> +	select TTY
> +	select SERIAL_8250
> +	select SERIAL_8250_CONSOLE
> +	select IP_PNP
> +	select IP_PNP_DHCP
> +	select BINFMT_ELF
> +	select PCI_MSI
> +	select HAVE_ARCH_KGDB
> +	select DEBUG_KERNEL
> +	select KGDB
> +	select KGDB_SERIAL_CONSOLE
> +	select VIRTUALIZATION
> +	select VIRTIO
> +	select VIRTIO_RING
> +	select VIRTIO_PCI
> +	select VIRTIO_BLK
> +	select VIRTIO_CONSOLE
> +	select VIRTIO_NET
> +	select 9P_FS
> +	select NET_9P
> +	select NET_9P_VIRTIO
> +	---help---
> +	  Select guest kernel functionality which facilitates booting the
> +	  kernel as a guest in qemu/kvm. This entails basic stuff like

s/qemu/qemu or lkvm

> +	  serial support, kgdb, virtio and other so that you can be able to
> +	  have commodity functionality like serial output from the guest,
> +	  networking, etc.

And seemless host file system integration into guest context. (that is 
what the 9P options are about)

Thanks,

	Ingo

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

* [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel
  2013-04-26  6:42                 ` Ingo Molnar
@ 2013-04-26  9:51                   ` Borislav Petkov
  2013-04-30 16:49                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
                                       ` (2 more replies)
  0 siblings, 3 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-04-26  9:51 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Marcelo Tosatti, Pekka Enberg, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Fri, Apr 26, 2013 at 08:42:50AM +0200, Ingo Molnar wrote:
>
> ... < take all review comments >

Here it is:

--
>From 56880e448600ca1504df8c68c59f31153f7b5b0f Mon Sep 17 00:00:00 2001
From: Borislav Petkov <bp@suse.de>
Date: Tue, 16 Apr 2013 18:24:34 +0200
Subject: [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel

This is pretty useful for the case where people want to boot the
resulting kernel in qemu/kvm or lkvm. Instead of going and searching for
each required option through the Kconfig maze, this single option should
simply enable everything required/good to have to boot the resulting
kernel in the guest.

Patch has been adapted from a version in the external lkvm tree.

Cc: Fengguang Wu <fengguang.wu@intel.com>
Originally-by: Pekka Enberg <penberg@kernel.org>
Originally-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/Kconfig | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 5651374d179f..432478a7b814 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -680,6 +680,45 @@ config KVM_GUEST
 	  underlying device model, the host provides the guest with
 	  timing infrastructure such as time of day, and system time
 
+config KVM_GUEST_COMMON_OPTIONS
+	bool "Enable commodity options for a standalone KVM guest"
+	depends on KVM_GUEST
+	select NET
+	select NETDEVICES
+	select BLOCK
+	select BLK_DEV
+	select NETWORK_FILESYSTEMS
+	select INET
+	select EXPERIMENTAL
+	select TTY
+	select SERIAL_8250
+	select SERIAL_8250_CONSOLE
+	select IP_PNP
+	select IP_PNP_DHCP
+	select BINFMT_ELF
+	select PCI_MSI
+	select HAVE_ARCH_KGDB
+	select DEBUG_KERNEL
+	select KGDB
+	select KGDB_SERIAL_CONSOLE
+	select VIRTUALIZATION
+	select VIRTIO
+	select VIRTIO_RING
+	select VIRTIO_PCI
+	select VIRTIO_BLK
+	select VIRTIO_CONSOLE
+	select VIRTIO_NET
+	select 9P_FS
+	select NET_9P
+	select NET_9P_VIRTIO
+	---help---
+	  Select guest kernel functionality which facilitates booting the
+	  kernel as a guest in qemu or lkvm. This entails basic stuff like
+	  serial support, kgdb, virtio and other so that you can be able to
+	  have commodity functionality like serial output from the guest,
+	  networking, seamless host file system integration into guest context
+	  and other useful things.
+
 source "arch/x86/lguest/Kconfig"
 
 config PARAVIRT_TIME_ACCOUNTING
-- 
1.8.2.135.g7b592fa

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels
  2013-04-26  9:51                   ` [PATCH -v2.1] " Borislav Petkov
@ 2013-04-30 16:49                     ` tip-bot for Borislav Petkov
  2013-05-01 19:53                       ` David Rientjes
  2013-05-01 13:19                     ` [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel Marcelo Tosatti
  2013-05-02 17:23                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
  2 siblings, 1 reply; 64+ messages in thread
From: tip-bot for Borislav Petkov @ 2013-04-30 16:49 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, penberg, bp, levinsasha928, mtosatti,
	tglx, fengguang.wu, bp

Commit-ID:  83aee67833071c7b73a83f7803388f7a9e481908
Gitweb:     http://git.kernel.org/tip/83aee67833071c7b73a83f7803388f7a9e481908
Author:     Borislav Petkov <bp@alien8.de>
AuthorDate: Fri, 26 Apr 2013 11:51:40 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 30 Apr 2013 11:00:11 +0200

x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels

This is pretty useful for the case where people want to boot the
resulting kernel in qemu/kvm or lkvm. Instead of going and
searching for each required option through the Kconfig maze,
this single option should simply enable everything required/good
to have to boot the resulting kernel in the guest.

Patch has been adapted from a version in the external lkvm tree.

Originally-by: Pekka Enberg <penberg@kernel.org>
Originally-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Sasha Levin <levinsasha928@gmail.com>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Link: http://lkml.kernel.org/r/20130426095140.GA15361@pd.tnic
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/Kconfig | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 15b5cef..1d053dc 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -633,6 +633,45 @@ config KVM_GUEST
 	  underlying device model, the host provides the guest with
 	  timing infrastructure such as time of day, and system time
 
+config KVM_GUEST_COMMON_OPTIONS
+	bool "Enable commodity options for a standalone KVM guest"
+	depends on KVM_GUEST
+	select NET
+	select NETDEVICES
+	select BLOCK
+	select BLK_DEV
+	select NETWORK_FILESYSTEMS
+	select INET
+	select EXPERIMENTAL
+	select TTY
+	select SERIAL_8250
+	select SERIAL_8250_CONSOLE
+	select IP_PNP
+	select IP_PNP_DHCP
+	select BINFMT_ELF
+	select PCI_MSI
+	select HAVE_ARCH_KGDB
+	select DEBUG_KERNEL
+	select KGDB
+	select KGDB_SERIAL_CONSOLE
+	select VIRTUALIZATION
+	select VIRTIO
+	select VIRTIO_RING
+	select VIRTIO_PCI
+	select VIRTIO_BLK
+	select VIRTIO_CONSOLE
+	select VIRTIO_NET
+	select 9P_FS
+	select NET_9P
+	select NET_9P_VIRTIO
+	---help---
+	  Select guest kernel functionality which facilitates booting the
+	  kernel as a guest in qemu or lkvm. This entails basic stuff like
+	  serial support, kgdb, virtio and other so that you can be able to
+	  have commodity functionality like serial output from the guest,
+	  networking, seamless host file system integration into guest context
+	  and other useful things.
+
 source "arch/x86/lguest/Kconfig"
 
 config PARAVIRT

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

* Re: [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel
  2013-04-26  9:51                   ` [PATCH -v2.1] " Borislav Petkov
  2013-04-30 16:49                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
@ 2013-05-01 13:19                     ` Marcelo Tosatti
  2013-05-01 23:21                       ` Borislav Petkov
  2013-05-02 17:23                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
  2 siblings, 1 reply; 64+ messages in thread
From: Marcelo Tosatti @ 2013-05-01 13:19 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, Pekka Enberg, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Fri, Apr 26, 2013 at 11:51:40AM +0200, Borislav Petkov wrote:
> On Fri, Apr 26, 2013 at 08:42:50AM +0200, Ingo Molnar wrote:
> >
> > ... < take all review comments >
> 
> Here it is:
> 
> --
> >From 56880e448600ca1504df8c68c59f31153f7b5b0f Mon Sep 17 00:00:00 2001
> From: Borislav Petkov <bp@suse.de>
> Date: Tue, 16 Apr 2013 18:24:34 +0200
> Subject: [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel
> 
> This is pretty useful for the case where people want to boot the
> resulting kernel in qemu/kvm or lkvm. Instead of going and searching for
> each required option through the Kconfig maze, this single option should
> simply enable everything required/good to have to boot the resulting
> kernel in the guest.
> 
> Patch has been adapted from a version in the external lkvm tree.
> 
> Cc: Fengguang Wu <fengguang.wu@intel.com>
> Originally-by: Pekka Enberg <penberg@kernel.org>
> Originally-by: Sasha Levin <levinsasha928@gmail.com>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> ---
>  arch/x86/Kconfig | 39 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)

Applied, thanks.


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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-04-30 16:49                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
@ 2013-05-01 19:53                       ` David Rientjes
  2013-05-01 20:35                         ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-01 19:53 UTC (permalink / raw)
  To: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	Borislav Petkov, levinsasha928, mtosatti, tglx, Borislav Petkov,
	fengguang.wu
  Cc: linux-tip-commits

[-- Attachment #1: Type: TEXT/PLAIN, Size: 5280 bytes --]

On Tue, 30 Apr 2013, tip-bot for Borislav Petkov wrote:

> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 15b5cef..1d053dc 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -633,6 +633,45 @@ config KVM_GUEST
>  	  underlying device model, the host provides the guest with
>  	  timing infrastructure such as time of day, and system time
>  
> +config KVM_GUEST_COMMON_OPTIONS
> +	bool "Enable commodity options for a standalone KVM guest"
> +	depends on KVM_GUEST
> +	select NET
> +	select NETDEVICES
> +	select BLOCK
> +	select BLK_DEV
> +	select NETWORK_FILESYSTEMS
> +	select INET
> +	select EXPERIMENTAL
> +	select TTY
> +	select SERIAL_8250
> +	select SERIAL_8250_CONSOLE
> +	select IP_PNP
> +	select IP_PNP_DHCP
> +	select BINFMT_ELF
> +	select PCI_MSI
> +	select HAVE_ARCH_KGDB
> +	select DEBUG_KERNEL
> +	select KGDB
> +	select KGDB_SERIAL_CONSOLE
> +	select VIRTUALIZATION
> +	select VIRTIO
> +	select VIRTIO_RING
> +	select VIRTIO_PCI
> +	select VIRTIO_BLK
> +	select VIRTIO_CONSOLE
> +	select VIRTIO_NET
> +	select 9P_FS
> +	select NET_9P
> +	select NET_9P_VIRTIO
> +	---help---
> +	  Select guest kernel functionality which facilitates booting the
> +	  kernel as a guest in qemu or lkvm. This entails basic stuff like
> +	  serial support, kgdb, virtio and other so that you can be able to
> +	  have commodity functionality like serial output from the guest,
> +	  networking, seamless host file system integration into guest context
> +	  and other useful things.
> +
>  source "arch/x86/lguest/Kconfig"
>  
>  config PARAVIRT

This causes

warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)
warning: (KVM_GUEST_COMMON_OPTIONS) selects VIRTIO_PCI which has unmet direct dependencies (PCI)

in linux-next which results in

drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_request_msix_irqs’:
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:911:10: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:911:52: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:927:26: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:937:2: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:937:41: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:950:3: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:950:33: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_free_irq’:
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1007:2: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1007:32: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1016:3: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1016:33: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_irq_disable’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1039:3: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1039:40: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_acquire_msix_vectors’:
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1767:3: error: implicit declaration of function ‘pci_enable_msix’ [-Werror=implicit-function-declaration]
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_set_interrupt_capability’:
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1887:13: error: invalid application of ‘sizeof’ to incomplete type ‘struct msix_entry’ 
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1894:3: error: invalid use of undefined type ‘struct msix_entry’
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1894:24: error: dereferencing pointer to incomplete type
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_reset_interrupt_capability’:
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:1976:2: error: implicit declaration of function ‘pci_disable_msix’ [-Werror=implicit-function-declaration]
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function ‘ixgbevf_resume’:
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:3212:2: error: implicit declaration of function ‘pci_enable_device_mem’ [-Werror=implicit-function-declaration]

since KVM_GUEST_COMMON_OPTIONS selects PCI_MSI without selecting PCI.

If we select PCI in KVM_GUEST_COMMON_OPTIONS, we get:

arch/x86/Kconfig:651:error: recursive dependency detected!
arch/x86/Kconfig:651:	symbol KVM_GUEST_COMMON_OPTIONS depends on HYPERVISOR_GUEST
arch/x86/Kconfig:597:	symbol HYPERVISOR_GUEST is selected by X86_VSMP
arch/x86/Kconfig:388:	symbol X86_VSMP depends on PCI
arch/x86/Kconfig:2042:	symbol PCI is selected by KVM_GUEST_COMMON_OPTIONS

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 19:53                       ` David Rientjes
@ 2013-05-01 20:35                         ` Borislav Petkov
  2013-05-01 21:00                           ` David Rientjes
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 20:35 UTC (permalink / raw)
  To: David Rientjes
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 12:53:03PM -0700, David Rientjes wrote:
> since KVM_GUEST_COMMON_OPTIONS selects PCI_MSI without selecting PCI.
> 
> If we select PCI in KVM_GUEST_COMMON_OPTIONS, we get:
> 
> arch/x86/Kconfig:651:error: recursive dependency detected!
> arch/x86/Kconfig:651:	symbol KVM_GUEST_COMMON_OPTIONS depends on HYPERVISOR_GUEST
> arch/x86/Kconfig:597:	symbol HYPERVISOR_GUEST is selected by X86_VSMP
> arch/x86/Kconfig:388:	symbol X86_VSMP depends on PCI
> arch/x86/Kconfig:2042:	symbol PCI is selected by KVM_GUEST_COMMON_OPTIONS

Well, this was the reason why I dropped CONFIG_PCI from
KVM_GUEST_COMMON_OPTIONS in the first place - to not have the circular
dependency splat above and assuming that people simply have CONFIG_PCI
enabled already.

Well, off the top of my head, we could do the following; I'd need to
hammer on it for a while though before it feels ok with all that Kconfig
jumble. Unless someone has a better idea, of course...

---
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index e8fff2f4ecb7..4f8ef85b0633 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -389,7 +389,8 @@ config X86_VSMP
 	bool "ScaleMP vSMP"
 	select HYPERVISOR_GUEST
 	select PARAVIRT
-	depends on X86_64 && PCI
+	select PCI
+	depends on X86_64
 	depends on X86_EXTENDED_PLATFORM
 	depends on SMP
 	---help---
@@ -664,6 +665,7 @@ config KVM_GUEST_COMMON_OPTIONS
 	select IP_PNP
 	select IP_PNP_DHCP
 	select BINFMT_ELF
+	select PCI
 	select PCI_MSI
 	select HAVE_ARCH_KGDB
 	select DEBUG_KERNEL
--

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 20:35                         ` Borislav Petkov
@ 2013-05-01 21:00                           ` David Rientjes
  2013-05-01 21:10                             ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-01 21:00 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, 1 May 2013, Borislav Petkov wrote:

> ---
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index e8fff2f4ecb7..4f8ef85b0633 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -389,7 +389,8 @@ config X86_VSMP
>  	bool "ScaleMP vSMP"
>  	select HYPERVISOR_GUEST
>  	select PARAVIRT
> -	depends on X86_64 && PCI
> +	select PCI
> +	depends on X86_64
>  	depends on X86_EXTENDED_PLATFORM
>  	depends on SMP
>  	---help---
> @@ -664,6 +665,7 @@ config KVM_GUEST_COMMON_OPTIONS
>  	select IP_PNP
>  	select IP_PNP_DHCP
>  	select BINFMT_ELF
> +	select PCI
>  	select PCI_MSI
>  	select HAVE_ARCH_KGDB
>  	select DEBUG_KERNEL

With this applied, two other types of conflicting dependencies:

warning: (KVM_GUEST_COMMON_OPTIONS) selects VIRTIO_NET which has unmet direct dependencies (NETDEVICES && NET_CORE && VIRTIO)

and

warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 21:00                           ` David Rientjes
@ 2013-05-01 21:10                             ` Borislav Petkov
  2013-05-01 21:30                               ` David Rientjes
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 21:10 UTC (permalink / raw)
  To: David Rientjes
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 02:00:06PM -0700, David Rientjes wrote:
> With this applied, two other types of conflicting dependencies:
> 
> warning: (KVM_GUEST_COMMON_OPTIONS) selects VIRTIO_NET which has unmet direct dependencies (NETDEVICES && NET_CORE && VIRTIO)
> 
> and
> 
> warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)

How do you trigger those? I don't see them here with this applied.

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 21:10                             ` Borislav Petkov
@ 2013-05-01 21:30                               ` David Rientjes
  2013-05-01 21:56                                 ` Borislav Petkov
  2013-05-02  7:08                                 ` Ingo Molnar
  0 siblings, 2 replies; 64+ messages in thread
From: David Rientjes @ 2013-05-01 21:30 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, 1 May 2013, Borislav Petkov wrote:

> > warning: (KVM_GUEST_COMMON_OPTIONS) selects VIRTIO_NET which has unmet direct dependencies (NETDEVICES && NET_CORE && VIRTIO)
> > 
> > and
> > 
> > warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)
> 
> How do you trigger those? I don't see them here with this applied.
> 

It's an allnoconfig with HYPERVISOR_GUEST, PARAVIRT, KVM_GUEST, and 
KVM_GUEST_COMMON_OPTIONS enabled.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 21:30                               ` David Rientjes
@ 2013-05-01 21:56                                 ` Borislav Petkov
  2013-05-01 22:09                                   ` David Rientjes
  2013-05-02  7:08                                 ` Ingo Molnar
  1 sibling, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 21:56 UTC (permalink / raw)
  To: David Rientjes
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 02:30:05PM -0700, David Rientjes wrote:
> It's an allnoconfig with HYPERVISOR_GUEST, PARAVIRT, KVM_GUEST, and
> KVM_GUEST_COMMON_OPTIONS enabled.

Hmm:

$ make mrproper
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
  CLEAN   include/config
  CLEAN   .config
$ make allnoconfig
  HOSTCC  scripts/basic/fixdep
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf --allnoconfig Kconfig
#
# configuration written to .config
#
$ make menuconfig				<--- select the options you mention above
  HOSTCC  scripts/kconfig/mconf.o
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTLD  scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
configuration written to .config

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

Nada. No warnings.

However, it doesn't build:

arch/x86/built-in.o:(.data+0x2a0): undefined reference to `native_setup_msi_irqs'
arch/x86/built-in.o:(.data+0x2a8): undefined reference to `native_teardown_msi_irq'

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 21:56                                 ` Borislav Petkov
@ 2013-05-01 22:09                                   ` David Rientjes
  2013-05-01 22:28                                     ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-01 22:09 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

[-- Attachment #1: Type: TEXT/PLAIN, Size: 1560 bytes --]

On Wed, 1 May 2013, Borislav Petkov wrote:

> $ make allnoconfig
>   HOSTCC  scripts/basic/fixdep
>   SHIPPED scripts/kconfig/zconf.tab.c
>   SHIPPED scripts/kconfig/zconf.lex.c
>   HOSTCC  scripts/kconfig/conf.o
>   SHIPPED scripts/kconfig/zconf.hash.c
>   HOSTCC  scripts/kconfig/zconf.tab.o
>   HOSTLD  scripts/kconfig/conf
> scripts/kconfig/conf --allnoconfig Kconfig
> #
> # configuration written to .config
> #
> $ make menuconfig				<--- select the options you mention above

menuconfig is going to give you defaults that the newly-enabled options 
allow to be configured without you knowing.  It's better to just flip 
these options my hand and use make oldconfig (or yes "n" | make 
oldconfig) to disable everything else that is now configurable.

This is done because we're addressing unmet dependency problems, so we'll 
want to disable as much as allowed.  Those dependencies are usually signs 
of real build errors (as they were for the PCI problem) since we're 
enabling options that don't have their prerequisites.

Unfortunately, the way you're implementing KVM_GUEST_COMMON_OPTIONS will 
typically result in this if the options you "select" get new dependencies 
in the future.  So you'll always be updating this option constantly with 
these types of problems.

I've attached the config that emits both these warnings (copy it as 
.config and use make oldconfig) on top of today's linux-next and your 
suggested patch.

The errors are rather straightforward, though: we aren't depending or 
selecting on CONFIG_NET_CORE and ARCH_SUPPORTS_MSI.

[-- Attachment #2: Type: TEXT/PLAIN, Size: 38418 bytes --]

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.9.0 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_LAZY_GS=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_FHANDLE is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y
CONFIG_KTIME_SCALAR=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_STALL_COMMON is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
# CONFIG_CGROUPS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_NET_NS=y
CONFIG_UIDGID_CONVERTED=y
# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HOTPLUG=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_JUMP_LABEL is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y

#
# GCOV-based kernel profiling
#
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
CONFIG_BLOCK=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_EFI_PARTITION=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_FREEZER is not set

#
# Processor type and features
#
CONFIG_ZONE_DMA=y
# CONFIG_SMP is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_32_IRIS is not set
# CONFIG_SCHED_OMIT_FRAME_POINTER is not set
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_XEN_PRIVILEGED_GUEST is not set
CONFIG_KVM_GUEST=y
CONFIG_KVM_GUEST_COMMON_OPTIONS=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
CONFIG_M686=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MELAN is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=5
CONFIG_X86_L1_CACHE_SHIFT=5
# CONFIG_X86_PPRO_FENCE is not set
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=5
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
# CONFIG_HPET_TIMER is not set
CONFIG_DMI=y
CONFIG_NR_CPUS=1
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_X86_UP_APIC is not set
# CONFIG_X86_MCE is not set
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_BOUNCE is not set
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
# CONFIG_TRANSPARENT_HUGEPAGE is not set
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_NEED_PER_CPU_KM=y
# CONFIG_CLEANCACHE is not set
# CONFIG_HIGHPTE is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW=64
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_X86_SMAP=y
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x1000000
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management and ACPI options
#
# CONFIG_SUSPEND is not set
# CONFIG_PM_RUNTIME is not set
# CONFIG_ACPI is not set
# CONFIG_SFI is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
# CONFIG_CPU_IDLE is not set
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
# CONFIG_PCI_PRI is not set
# CONFIG_PCI_PASID is not set
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_SCx200 is not set
# CONFIG_OLPC is not set
# CONFIG_ALIX is not set
# CONFIG_NET5501 is not set
# CONFIG_GEOS is not set
CONFIG_AMD_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_RAPIDIO is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_BINFMT_SCRIPT is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_HAVE_TEXT_POKE_SMP=y
CONFIG_NET=y
# CONFIG_NETLINK_MMAP is not set

#
# Networking options
#
# CONFIG_PACKET is not set
# CONFIG_UNIX is not set
# CONFIG_XFRM_USER is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
# CONFIG_NET_IP_TUNNEL is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
CONFIG_BQL=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
# CONFIG_CFG80211 is not set
# CONFIG_LIB80211 is not set

#
# CFG80211 needs to be enabled for MAC80211
#
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH=""
# CONFIG_DEVTMPFS is not set
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
# CONFIG_DMA_SHARED_BUFFER is not set
# CONFIG_CMA is not set

#
# Bus devices
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set
# CONFIG_BLOCKCONSOLE is not set

#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_INTEL_MID_PTI is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ATMEL_SSC is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_VMWARE_BALLOON is not set
# CONFIG_PCH_PHUB is not set
# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set

#
# EEPROM support
#
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_CB710_CORE is not set

#
# Texas Instruments shared transport line discipline
#

#
# Altera FPGA firmware download module
#
# CONFIG_VMWARE_VMCI is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NET_CORE is not set
CONFIG_VIRTIO_NET=y
# CONFIG_ARCNET is not set

#
# CAIF transport drivers
#
# CONFIG_VHOST_NET is not set

#
# Distributed Switch Architecture drivers
#
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
# CONFIG_NET_DSA_MV88E6131 is not set
# CONFIG_NET_DSA_MV88E6123_61_65 is not set
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_3COM=y
# CONFIG_VORTEX is not set
# CONFIG_TYPHOON is not set
CONFIG_NET_VENDOR_ADAPTEC=y
# CONFIG_ADAPTEC_STARFIRE is not set
CONFIG_NET_VENDOR_ALTEON=y
# CONFIG_ACENIC is not set
CONFIG_NET_VENDOR_AMD=y
# CONFIG_AMD8111_ETH is not set
# CONFIG_PCNET32 is not set
CONFIG_NET_VENDOR_ATHEROS=y
# CONFIG_ATL2 is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
# CONFIG_ATL1C is not set
CONFIG_NET_CADENCE=y
# CONFIG_ARM_AT91_ETHER is not set
# CONFIG_MACB is not set
CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set
# CONFIG_BNX2 is not set
# CONFIG_CNIC is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2X is not set
CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_BNA is not set
# CONFIG_NET_CALXEDA_XGMAC is not set
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_CHELSIO_T4 is not set
# CONFIG_CHELSIO_T4VF is not set
CONFIG_NET_VENDOR_CISCO=y
# CONFIG_ENIC is not set
# CONFIG_DNET is not set
CONFIG_NET_VENDOR_DEC=y
# CONFIG_NET_TULIP is not set
CONFIG_NET_VENDOR_DLINK=y
# CONFIG_DL2K is not set
# CONFIG_SUNDANCE is not set
CONFIG_NET_VENDOR_EMULEX=y
# CONFIG_BE2NET is not set
CONFIG_NET_VENDOR_EXAR=y
# CONFIG_S2IO is not set
# CONFIG_VXGE is not set
CONFIG_NET_VENDOR_HP=y
# CONFIG_HP100 is not set
CONFIG_NET_VENDOR_INTEL=y
# CONFIG_E100 is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
# CONFIG_IGB is not set
# CONFIG_IGBVF is not set
# CONFIG_IXGB is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
CONFIG_NET_VENDOR_I825XX=y
# CONFIG_IP1000 is not set
# CONFIG_JME is not set
CONFIG_NET_VENDOR_MARVELL=y
# CONFIG_MVMDIO is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_EN is not set
# CONFIG_MLX4_CORE is not set
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8851_MLL is not set
# CONFIG_KSZ884X_PCI is not set
CONFIG_NET_VENDOR_MYRI=y
# CONFIG_MYRI10GE is not set
# CONFIG_FEALNX is not set
CONFIG_NET_VENDOR_NATSEMI=y
# CONFIG_NATSEMI is not set
# CONFIG_NS83820 is not set
CONFIG_NET_VENDOR_8390=y
# CONFIG_NE2K_PCI is not set
CONFIG_NET_VENDOR_NVIDIA=y
# CONFIG_FORCEDETH is not set
CONFIG_NET_VENDOR_OKI=y
# CONFIG_PCH_GBE is not set
# CONFIG_ETHOC is not set
CONFIG_NET_PACKET_ENGINE=y
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_QLA3XXX is not set
# CONFIG_QLCNIC is not set
# CONFIG_QLGE is not set
# CONFIG_NETXEN_NIC is not set
CONFIG_NET_VENDOR_REALTEK=y
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_R8169 is not set
CONFIG_NET_VENDOR_RDC=y
# CONFIG_R6040 is not set
CONFIG_NET_VENDOR_SEEQ=y
CONFIG_NET_VENDOR_SILAN=y
# CONFIG_SC92031 is not set
CONFIG_NET_VENDOR_SIS=y
# CONFIG_SIS900 is not set
# CONFIG_SIS190 is not set
# CONFIG_SFC is not set
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_EPIC100 is not set
# CONFIG_SMSC9420 is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_STMMAC_ETH is not set
CONFIG_NET_VENDOR_SUN=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NIU is not set
CONFIG_NET_VENDOR_TEHUTI=y
# CONFIG_TEHUTI is not set
CONFIG_NET_VENDOR_TI=y
# CONFIG_TLAN is not set
CONFIG_NET_VENDOR_VIA=y
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_NET_VENDOR_WIZNET=y
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5300 is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PHYLIB is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
CONFIG_WLAN=y
# CONFIG_AIRO is not set
# CONFIG_ATMEL is not set
# CONFIG_PRISM54 is not set
# CONFIG_HOSTAP is not set
# CONFIG_WL_TI is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
# CONFIG_INPUT_MATRIXKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
# CONFIG_DEVKMEM is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
# CONFIG_SERIAL_8250_DW is not set

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_KGDB_NMI is not set
# CONFIG_SERIAL_MFD_HSU is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_CONSOLE_POLL=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_PCH_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
CONFIG_HVC_DRIVER=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
# CONFIG_I2C is not set
# CONFIG_SPI is not set

#
# Qualcomm MSM SSBI bus support
#
# CONFIG_SSBI is not set
# CONFIG_HSI is not set

#
# PPS support
#
# CONFIG_PPS is not set

#
# PPS generators support
#

#
# PTP clock support
#
# CONFIG_PTP_1588_CLOCK is not set

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
# CONFIG_PTP_1588_CLOCK_PCH is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_POWER_AVS is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y

#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
# CONFIG_FB is not set
# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_SOUND is not set

#
# HID support
#
# CONFIG_HID is not set
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_ARCH_HAS_XHCI=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO=y

#
# Virtio drivers
#
CONFIG_VIRTIO_PCI=y
# CONFIG_VIRTIO_BALLOON is not set
# CONFIG_VIRTIO_MMIO is not set

#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set
# CONFIG_X86_PLATFORM_DEVICES is not set

#
# Hardware Spinlock drivers
#
CONFIG_CLKSRC_I8253=y
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# CONFIG_MAILBOX is not set
# CONFIG_IOMMU_SUPPORT is not set

#
# Remoteproc drivers
#
# CONFIG_STE_MODEM_RPROC is not set

#
# Rpmsg drivers
#
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
# CONFIG_DMIID is not set
# CONFIG_DMI_SYSFS is not set
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_GOOGLE_FIRMWARE is not set

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_FILE_LOCKING=y
# CONFIG_FSNOTIFY is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
# CONFIG_TMPFS is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_9P_FS=y
# CONFIG_9P_FS_POSIX_ACL is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set
# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
# CONFIG_NLS_UTF8 is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
# CONFIG_DETECT_HUNG_TASK is not set
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not set
# CONFIG_BOOT_PRINTK_DELAY is not set

#
# RCU Debugging
#
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
# CONFIG_KGDB_TESTS is not set
# CONFIG_KGDB_LOW_LEVEL_TRAP is not set
# CONFIG_KGDB_KDB is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_STRICT_DEVMEM is not set
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_X86_PTDUMP is not set
CONFIG_DEBUG_RODATA=y
CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_USER is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set

#
# Block modes
#
# CONFIG_CRYPTO_CBC is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set

#
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not set
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set

#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CRC32C_INTEL is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set

#
# Ciphers
#
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_586 is not set
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set

#
# Compression
#
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set

#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_PADLOCK is not set
# CONFIG_CRYPTO_DEV_GEODE is not set
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
# CONFIG_LGUEST is not set
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
# CONFIG_CRC8 is not set
# CONFIG_XZ_DEC is not set
# CONFIG_XZ_DEC_BCJ is not set
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_DQL=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_AVERAGE is not set
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 22:09                                   ` David Rientjes
@ 2013-05-01 22:28                                     ` Borislav Petkov
  2013-05-01 22:37                                       ` David Rientjes
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 22:28 UTC (permalink / raw)
  To: David Rientjes
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 03:09:13PM -0700, David Rientjes wrote:
> Unfortunately, the way you're implementing KVM_GUEST_COMMON_OPTIONS
> will typically result in this if the options you "select" get new
> dependencies in the future. So you'll always be updating this option
> constantly with these types of problems.

Ok, so let's step back a bit here: I've added this option with the idea
to have it as a shortcut so that you don't go search for every commodity
option when you want to boot the kernel as a kvm guest. Currently I have
it in all.config when doing randconfig builds here. While I'm doing the
randbuilds, why not boot it in kvm too while at it.

Now, I really fail to see what you describe above to be a fairly normal
use case. I'm sure you can take Kconfig and abuse it so that it screams
all kinds of errors and we know select is evil and Kconfig is not
perfect, etc, etc...

So I'm pretty sure we won't be able to plug all holes. However, let's
try to plug only those which hinder *real* usage instead of contrived
stuff.

So, let's start again: is this something real you're triggering
with some random testing you're doing or are you simply
abusing^Wexperimenting with Kconfig and staring at what breaks?

Thanks.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 22:28                                     ` Borislav Petkov
@ 2013-05-01 22:37                                       ` David Rientjes
  2013-05-01 23:02                                         ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-01 22:37 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Thu, 2 May 2013, Borislav Petkov wrote:

> Ok, so let's step back a bit here: I've added this option with the idea
> to have it as a shortcut so that you don't go search for every commodity
> option when you want to boot the kernel as a kvm guest. Currently I have
> it in all.config when doing randconfig builds here. While I'm doing the
> randbuilds, why not boot it in kvm too while at it.
> 

If that shortcut is enabling options that fail to build, it may not be 
considered so useful.

> So I'm pretty sure we won't be able to plug all holes. However, let's
> try to plug only those which hinder *real* usage instead of contrived
> stuff.
> 

It's contrived to not have CONFIG_NET_CORE enabled?

And why are you enabling CONFIG_PCI_MSI for systems that don't have 
ARCH_SUPPORTS_MSI?  You need CONFIG_X86_LOCAL_APIC and CONFIG_X86_IO_APIC.

So let's take a step back from your step back: you want to have a shortcut 
to build a guest.  Great, so you're enabling options that such a kernel 
needs.  The problem is that you're neglecting options that those options 
need.  It means your patch is incomplete.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 22:37                                       ` David Rientjes
@ 2013-05-01 23:02                                         ` Borislav Petkov
  2013-05-01 23:04                                           ` H. Peter Anvin
  2013-05-01 23:16                                           ` David Rientjes
  0 siblings, 2 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 23:02 UTC (permalink / raw)
  To: David Rientjes
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 03:37:28PM -0700, David Rientjes wrote:
> It means your patch is incomplete.

I'll gladly test and ack a patch which makes it complete.

Simple exercises in rhetoric about what does and what doesn't make sense
means a rat's ass to me. You need to show me a *real* use case which you
*actually* hit and this patch breaks it.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:02                                         ` Borislav Petkov
@ 2013-05-01 23:04                                           ` H. Peter Anvin
  2013-05-01 23:09                                             ` Borislav Petkov
  2013-05-02  7:06                                             ` Ingo Molnar
  2013-05-01 23:16                                           ` David Rientjes
  1 sibling, 2 replies; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-01 23:04 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: David Rientjes, Ingo Molnar, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On 05/01/2013 04:02 PM, Borislav Petkov wrote:
> On Wed, May 01, 2013 at 03:37:28PM -0700, David Rientjes wrote:
>> It means your patch is incomplete.
> 
> I'll gladly test and ack a patch which makes it complete.
> 
> Simple exercises in rhetoric about what does and what doesn't make sense
> means a rat's ass to me. You need to show me a *real* use case which you
> *actually* hit and this patch breaks it.
> 

The fundamental problem is that "select" is broken and doesn't track
dependencies of things selected.

	-hpa


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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:04                                           ` H. Peter Anvin
@ 2013-05-01 23:09                                             ` Borislav Petkov
  2013-05-01 23:16                                               ` H. Peter Anvin
  2013-05-02  7:06                                             ` Ingo Molnar
  1 sibling, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 23:09 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: David Rientjes, Ingo Molnar, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 04:04:12PM -0700, H. Peter Anvin wrote:
> The fundamental problem is that "select" is broken and doesn't track
> dependencies of things selected.

Yep, ancient history.

And yet, I'm using this option to do randconfig builds and then boot
them and I see almost no build breakages, at least none caused by this
Kconfig option.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:09                                             ` Borislav Petkov
@ 2013-05-01 23:16                                               ` H. Peter Anvin
  2013-05-01 23:23                                                 ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-01 23:16 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: David Rientjes, Ingo Molnar, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On 05/01/2013 04:09 PM, Borislav Petkov wrote:
> On Wed, May 01, 2013 at 04:04:12PM -0700, H. Peter Anvin wrote:
>> The fundamental problem is that "select" is broken and doesn't track
>> dependencies of things selected.
> 
> Yep, ancient history.
> 
> And yet, I'm using this option to do randconfig builds and then boot
> them and I see almost no build breakages, at least none caused by this
> Kconfig option.
> 

Stupid question: would a defconfig be a better option for this?

	-hpa


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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:02                                         ` Borislav Petkov
  2013-05-01 23:04                                           ` H. Peter Anvin
@ 2013-05-01 23:16                                           ` David Rientjes
  2013-05-01 23:35                                             ` Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-01 23:16 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Thu, 2 May 2013, Borislav Petkov wrote:

> > It means your patch is incomplete.
> 
> I'll gladly test and ack a patch which makes it complete.
> 
> Simple exercises in rhetoric about what does and what doesn't make sense
> means a rat's ass to me. You need to show me a *real* use case which you
> *actually* hit and this patch breaks it.
> 

What makes sense = a build that works.

You reported the breakage yourself:

arch/x86/built-in.o:(.data+0x2a0): undefined reference to `native_setup_msi_irqs'
arch/x86/built-in.o:(.data+0x2a8): undefined reference to `native_teardown_msi_irq'

That's because of this:

warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)

So you're missing CONFIG_X86_LOCAL_APIC and/or CONFIG_X86_IO_APIC, as 
already stated.  Those are strict requirements for your 
CONFIG_KVM_GUEST_COMMON_OPTIONS to build.  I suggest depending on them, 
most configs already have them.

You'll probably also want to depend on NET_CORE since it requires that as 
well.

That would probably make your patch complete.  Ingo does a lot of 
randconfig testing himself, so he'll probably run into these same issues, 
I don't think the "aww, shucks, that config doesn't make sense, we can 
allow the build to break" excuse will work too well.

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

* Re: [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel
  2013-05-01 13:19                     ` [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel Marcelo Tosatti
@ 2013-05-01 23:21                       ` Borislav Petkov
  0 siblings, 0 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 23:21 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Ingo Molnar, Pekka Enberg, H. Peter Anvin, Sasha Levin,
	Fengguang Wu, lkml, x86-ml, kvm

On Wed, May 01, 2013 at 10:19:24AM -0300, Marcelo Tosatti wrote:
> Applied, thanks.

You shouldn't have - Ingo took it already.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:16                                               ` H. Peter Anvin
@ 2013-05-01 23:23                                                 ` Borislav Petkov
  0 siblings, 0 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 23:23 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: David Rientjes, Ingo Molnar, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 04:16:38PM -0700, H. Peter Anvin wrote:
> Stupid question: would a defconfig be a better option for this?

Yep, Marcelo suggested this already but you need to have this option
enabled (either in 'all.config' in the kernel directory or select it by
hand) when doing randconfigs and then booting them in kvm.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:16                                           ` David Rientjes
@ 2013-05-01 23:35                                             ` Borislav Petkov
  2013-05-02  0:07                                               ` David Rientjes
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-01 23:35 UTC (permalink / raw)
  To: David Rientjes
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Wed, May 01, 2013 at 04:16:40PM -0700, David Rientjes wrote:
> So you're missing CONFIG_X86_LOCAL_APIC and/or CONFIG_X86_IO_APIC,
> as already stated. Those are strict requirements for your
> CONFIG_KVM_GUEST_COMMON_OPTIONS to build. I suggest depending on them,
> most configs already have them.
>
> You'll probably also want to depend on NET_CORE since it requires that
> as well.
>
> That would probably make your patch complete.

See, we could've saved ourselves all the bullshit if you had started
with the above.

I'll add those to the lineup:

select PCI
select NET_CORE
select X86_IO_APIC
select X86_LOCAL_APIC

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:35                                             ` Borislav Petkov
@ 2013-05-02  0:07                                               ` David Rientjes
  0 siblings, 0 replies; 64+ messages in thread
From: David Rientjes @ 2013-05-02  0:07 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Thu, 2 May 2013, Borislav Petkov wrote:

> See, we could've saved ourselves all the bullshit if you had started
> with the above.
> 

I had thought 

warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)

was obvious.

> I'll add those to the lineup:
> 
> select PCI
> select NET_CORE
> select X86_IO_APIC
> select X86_LOCAL_APIC
> 

No, you want to depend on X86_IO_APIC and X86_LOCAL_APIC, otherwise you'll 
just face the same issue one level deeper.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 23:04                                           ` H. Peter Anvin
  2013-05-01 23:09                                             ` Borislav Petkov
@ 2013-05-02  7:06                                             ` Ingo Molnar
  2013-05-02 17:31                                               ` H. Peter Anvin
  1 sibling, 1 reply; 64+ messages in thread
From: Ingo Molnar @ 2013-05-02  7:06 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Borislav Petkov, David Rientjes, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits


* H. Peter Anvin <hpa@zytor.com> wrote:

> On 05/01/2013 04:02 PM, Borislav Petkov wrote:
> > On Wed, May 01, 2013 at 03:37:28PM -0700, David Rientjes wrote:
> >> It means your patch is incomplete.
> > 
> > I'll gladly test and ack a patch which makes it complete.
> > 
> > Simple exercises in rhetoric about what does and what doesn't make 
> > sense means a rat's ass to me. You need to show me a *real* use case 
> > which you *actually* hit and this patch breaks it.
> 
> The fundamental problem is that "select" is broken and doesn't track 
> dependencies of things selected.

The way I've been solving it in a similar usecase was to select the 
required options - plus its dependencies, manually.

That should be possible here as well, driven by any weird randconfig build 
failures that get found. Such a set of selects quickly converges.

Thanks,

	Ingo

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-01 21:30                               ` David Rientjes
  2013-05-01 21:56                                 ` Borislav Petkov
@ 2013-05-02  7:08                                 ` Ingo Molnar
  2013-05-02  7:16                                   ` David Rientjes
  1 sibling, 1 reply; 64+ messages in thread
From: Ingo Molnar @ 2013-05-02  7:08 UTC (permalink / raw)
  To: David Rientjes
  Cc: Borislav Petkov, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits


* David Rientjes <rientjes@google.com> wrote:

> On Wed, 1 May 2013, Borislav Petkov wrote:
> 
> > > warning: (KVM_GUEST_COMMON_OPTIONS) selects VIRTIO_NET which has unmet direct dependencies (NETDEVICES && NET_CORE && VIRTIO)
> > > 
> > > and
> > > 
> > > warning: (KVM_GUEST_COMMON_OPTIONS && AMD_IOMMU) selects PCI_MSI which has unmet direct dependencies (PCI && ARCH_SUPPORTS_MSI)
> > 
> > How do you trigger those? I don't see them here with this applied.
> > 
> 
> It's an allnoconfig with HYPERVISOR_GUEST, PARAVIRT, KVM_GUEST, and 
> KVM_GUEST_COMMON_OPTIONS enabled.

Please send a specific .config instead, with which you see warnings or 
build failures.

Thanks,

	Ingo

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02  7:08                                 ` Ingo Molnar
@ 2013-05-02  7:16                                   ` David Rientjes
  0 siblings, 0 replies; 64+ messages in thread
From: David Rientjes @ 2013-05-02  7:16 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Borislav Petkov, H. Peter Anvin, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

[-- Attachment #1: Type: TEXT/PLAIN, Size: 301 bytes --]

On Thu, 2 May 2013, Ingo Molnar wrote:

> > It's an allnoconfig with HYPERVISOR_GUEST, PARAVIRT, KVM_GUEST, and 
> > KVM_GUEST_COMMON_OPTIONS enabled.
> 
> Please send a specific .config instead, with which you see warnings or 
> build failures.
> 

Attached from my earlier email to Borislav on lkml.

[-- Attachment #2: Type: TEXT/PLAIN, Size: 38418 bytes --]

#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 3.9.0 Kernel Configuration
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf32-i386"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_MMU=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_HAS_CPU_RELAX=y
CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_ZONE_DMA32 is not set
# CONFIG_AUDIT_ARCH is not set
CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_X86_32_LAZY_GS=y
CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_EXTABLE_SORT=y

#
# General setup
#
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
# CONFIG_SWAP is not set
# CONFIG_SYSVIPC is not set
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_FHANDLE is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y

#
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y
CONFIG_KTIME_SCALAR=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y

#
# Timers subsystem
#
CONFIG_HZ_PERIODIC=y
# CONFIG_NO_HZ_IDLE is not set
# CONFIG_NO_HZ is not set
# CONFIG_HIGH_RES_TIMERS is not set

#
# CPU/Task time and stats accounting
#
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_IRQ_TIME_ACCOUNTING is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set

#
# RCU Subsystem
#
CONFIG_TINY_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_RCU_STALL_COMMON is not set
# CONFIG_TREE_RCU_TRACE is not set
# CONFIG_IKCONFIG is not set
CONFIG_LOG_BUF_SHIFT=17
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y
# CONFIG_CGROUPS is not set
# CONFIG_CHECKPOINT_RESTORE is not set
CONFIG_NAMESPACES=y
# CONFIG_UTS_NS is not set
# CONFIG_USER_NS is not set
# CONFIG_PID_NS is not set
CONFIG_NET_NS=y
CONFIG_UIDGID_CONVERTED=y
# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
# CONFIG_SCHED_AUTOGROUP is not set
# CONFIG_SYSFS_DEPRECATED is not set
# CONFIG_RELAY is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_HAVE_UID16=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HOTPLUG=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
# CONFIG_EXPERT is not set
CONFIG_UID16=y
# CONFIG_SYSCTL_SYSCALL is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_PCSPKR_PLATFORM=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_PCI_QUIRKS=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y

#
# Kernel Performance Events And Counters
#
CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLUB_DEBUG=y
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not set
CONFIG_SLUB=y
# CONFIG_PROFILING is not set
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
# CONFIG_JUMP_LABEL is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_OPTPROBES=y
CONFIG_HAVE_KPROBES_ON_FTRACE=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_MODULES_USE_ELF_REL=y
CONFIG_CLONE_BACKWARDS=y
CONFIG_OLD_SIGSUSPEND3=y
CONFIG_OLD_SIGACTION=y

#
# GCOV-based kernel profiling
#
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
# CONFIG_MODULES is not set
CONFIG_BLOCK=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
# CONFIG_BLK_DEV_BSGLIB is not set
# CONFIG_BLK_DEV_INTEGRITY is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y
CONFIG_EFI_PARTITION=y

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
CONFIG_INLINE_READ_UNLOCK=y
CONFIG_INLINE_READ_UNLOCK_IRQ=y
CONFIG_INLINE_WRITE_UNLOCK=y
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
# CONFIG_FREEZER is not set

#
# Processor type and features
#
CONFIG_ZONE_DMA=y
# CONFIG_SMP is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
# CONFIG_X86_GOLDFISH is not set
# CONFIG_X86_32_IRIS is not set
# CONFIG_SCHED_OMIT_FRAME_POINTER is not set
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT=y
# CONFIG_PARAVIRT_DEBUG is not set
# CONFIG_XEN_PRIVILEGED_GUEST is not set
CONFIG_KVM_GUEST=y
CONFIG_KVM_GUEST_COMMON_OPTIONS=y
# CONFIG_LGUEST_GUEST is not set
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
CONFIG_PARAVIRT_CLOCK=y
CONFIG_NO_BOOTMEM=y
# CONFIG_MEMTEST is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
CONFIG_M686=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MELAN is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MCORE2 is not set
# CONFIG_MATOM is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_INTERNODE_CACHE_SHIFT=5
CONFIG_X86_L1_CACHE_SHIFT=5
# CONFIG_X86_PPRO_FENCE is not set
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=5
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
# CONFIG_HPET_TIMER is not set
CONFIG_DMI=y
CONFIG_NR_CPUS=1
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_X86_UP_APIC is not set
# CONFIG_X86_MCE is not set
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ILLEGAL_POINTER_VALUE=0
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_HAVE_MEMBLOCK=y
CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_ARCH_DISCARD_MEMBLOCK=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
# CONFIG_BOUNCE is not set
CONFIG_VIRT_TO_BUS=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
# CONFIG_TRANSPARENT_HUGEPAGE is not set
# CONFIG_CROSS_MEMORY_ATTACH is not set
CONFIG_NEED_PER_CPU_KM=y
# CONFIG_CLEANCACHE is not set
# CONFIG_HIGHPTE is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
CONFIG_X86_RESERVE_LOW=64
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
CONFIG_X86_PAT=y
CONFIG_ARCH_USES_PG_UNCACHED=y
CONFIG_ARCH_RANDOM=y
CONFIG_X86_SMAP=y
# CONFIG_SECCOMP is not set
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x1000000
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

#
# Power management and ACPI options
#
# CONFIG_SUSPEND is not set
# CONFIG_PM_RUNTIME is not set
# CONFIG_ACPI is not set
# CONFIG_SFI is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
# CONFIG_CPU_IDLE is not set
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set

#
# Bus options (PCI etc.)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_PCI_MSI=y
# CONFIG_PCI_DEBUG is not set
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
# CONFIG_PCI_PRI is not set
# CONFIG_PCI_PASID is not set
CONFIG_PCI_LABEL=y
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_SCx200 is not set
# CONFIG_OLPC is not set
# CONFIG_ALIX is not set
# CONFIG_NET5501 is not set
# CONFIG_GEOS is not set
CONFIG_AMD_NB=y
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_RAPIDIO is not set

#
# Executable file formats / Emulations
#
CONFIG_BINFMT_ELF=y
CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_BINFMT_SCRIPT is not set
CONFIG_HAVE_AOUT=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set
CONFIG_COREDUMP=y
CONFIG_HAVE_ATOMIC_IOMAP=y
CONFIG_HAVE_TEXT_POKE_SMP=y
CONFIG_NET=y
# CONFIG_NETLINK_MMAP is not set

#
# Networking options
#
# CONFIG_PACKET is not set
# CONFIG_UNIX is not set
# CONFIG_XFRM_USER is not set
# CONFIG_NET_KEY is not set
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
# CONFIG_IP_PNP_BOOTP is not set
# CONFIG_IP_PNP_RARP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE_DEMUX is not set
# CONFIG_NET_IP_TUNNEL is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_BEET is not set
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IPV6 is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_IEEE802154 is not set
# CONFIG_NET_SCHED is not set
# CONFIG_DCB is not set
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
CONFIG_BQL=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_CAN is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_AF_RXRPC is not set
CONFIG_WIRELESS=y
# CONFIG_CFG80211 is not set
# CONFIG_LIB80211 is not set

#
# CFG80211 needs to be enabled for MAC80211
#
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
# CONFIG_NET_9P_DEBUG is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_UEVENT_HELPER_PATH=""
# CONFIG_DEVTMPFS is not set
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_FIRMWARE_IN_KERNEL is not set
CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER is not set
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_SYS_HYPERVISOR is not set
# CONFIG_GENERIC_CPU_DEVICES is not set
# CONFIG_DMA_SHARED_BUFFER is not set
# CONFIG_CMA is not set

#
# Bus devices
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
# CONFIG_PARPORT is not set
CONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_DRBD is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
CONFIG_VIRTIO_BLK=y
# CONFIG_BLK_DEV_HD is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set
# CONFIG_BLOCKCONSOLE is not set

#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_INTEL_MID_PTI is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not set
# CONFIG_ATMEL_SSC is not set
# CONFIG_ENCLOSURE_SERVICES is not set
# CONFIG_HP_ILO is not set
# CONFIG_VMWARE_BALLOON is not set
# CONFIG_PCH_PHUB is not set
# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set

#
# EEPROM support
#
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_CB710_CORE is not set

#
# Texas Instruments shared transport line discipline
#

#
# Altera FPGA firmware download module
#
# CONFIG_VMWARE_VMCI is not set
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set

#
# SCSI device support
#
CONFIG_SCSI_MOD=y
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set
# CONFIG_SCSI_DMA is not set
# CONFIG_SCSI_NETLINK is not set
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set
CONFIG_NETDEVICES=y
# CONFIG_NET_CORE is not set
CONFIG_VIRTIO_NET=y
# CONFIG_ARCNET is not set

#
# CAIF transport drivers
#
# CONFIG_VHOST_NET is not set

#
# Distributed Switch Architecture drivers
#
# CONFIG_NET_DSA_MV88E6XXX is not set
# CONFIG_NET_DSA_MV88E6060 is not set
# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
# CONFIG_NET_DSA_MV88E6131 is not set
# CONFIG_NET_DSA_MV88E6123_61_65 is not set
CONFIG_ETHERNET=y
CONFIG_NET_VENDOR_3COM=y
# CONFIG_VORTEX is not set
# CONFIG_TYPHOON is not set
CONFIG_NET_VENDOR_ADAPTEC=y
# CONFIG_ADAPTEC_STARFIRE is not set
CONFIG_NET_VENDOR_ALTEON=y
# CONFIG_ACENIC is not set
CONFIG_NET_VENDOR_AMD=y
# CONFIG_AMD8111_ETH is not set
# CONFIG_PCNET32 is not set
CONFIG_NET_VENDOR_ATHEROS=y
# CONFIG_ATL2 is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
# CONFIG_ATL1C is not set
CONFIG_NET_CADENCE=y
# CONFIG_ARM_AT91_ETHER is not set
# CONFIG_MACB is not set
CONFIG_NET_VENDOR_BROADCOM=y
# CONFIG_B44 is not set
# CONFIG_BNX2 is not set
# CONFIG_CNIC is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2X is not set
CONFIG_NET_VENDOR_BROCADE=y
# CONFIG_BNA is not set
# CONFIG_NET_CALXEDA_XGMAC is not set
CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_CHELSIO_T4 is not set
# CONFIG_CHELSIO_T4VF is not set
CONFIG_NET_VENDOR_CISCO=y
# CONFIG_ENIC is not set
# CONFIG_DNET is not set
CONFIG_NET_VENDOR_DEC=y
# CONFIG_NET_TULIP is not set
CONFIG_NET_VENDOR_DLINK=y
# CONFIG_DL2K is not set
# CONFIG_SUNDANCE is not set
CONFIG_NET_VENDOR_EMULEX=y
# CONFIG_BE2NET is not set
CONFIG_NET_VENDOR_EXAR=y
# CONFIG_S2IO is not set
# CONFIG_VXGE is not set
CONFIG_NET_VENDOR_HP=y
# CONFIG_HP100 is not set
CONFIG_NET_VENDOR_INTEL=y
# CONFIG_E100 is not set
# CONFIG_E1000 is not set
# CONFIG_E1000E is not set
# CONFIG_IGB is not set
# CONFIG_IGBVF is not set
# CONFIG_IXGB is not set
# CONFIG_IXGBE is not set
# CONFIG_IXGBEVF is not set
CONFIG_NET_VENDOR_I825XX=y
# CONFIG_IP1000 is not set
# CONFIG_JME is not set
CONFIG_NET_VENDOR_MARVELL=y
# CONFIG_MVMDIO is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_EN is not set
# CONFIG_MLX4_CORE is not set
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8851_MLL is not set
# CONFIG_KSZ884X_PCI is not set
CONFIG_NET_VENDOR_MYRI=y
# CONFIG_MYRI10GE is not set
# CONFIG_FEALNX is not set
CONFIG_NET_VENDOR_NATSEMI=y
# CONFIG_NATSEMI is not set
# CONFIG_NS83820 is not set
CONFIG_NET_VENDOR_8390=y
# CONFIG_NE2K_PCI is not set
CONFIG_NET_VENDOR_NVIDIA=y
# CONFIG_FORCEDETH is not set
CONFIG_NET_VENDOR_OKI=y
# CONFIG_PCH_GBE is not set
# CONFIG_ETHOC is not set
CONFIG_NET_PACKET_ENGINE=y
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
CONFIG_NET_VENDOR_QLOGIC=y
# CONFIG_QLA3XXX is not set
# CONFIG_QLCNIC is not set
# CONFIG_QLGE is not set
# CONFIG_NETXEN_NIC is not set
CONFIG_NET_VENDOR_REALTEK=y
# CONFIG_8139CP is not set
# CONFIG_8139TOO is not set
# CONFIG_R8169 is not set
CONFIG_NET_VENDOR_RDC=y
# CONFIG_R6040 is not set
CONFIG_NET_VENDOR_SEEQ=y
CONFIG_NET_VENDOR_SILAN=y
# CONFIG_SC92031 is not set
CONFIG_NET_VENDOR_SIS=y
# CONFIG_SIS900 is not set
# CONFIG_SIS190 is not set
# CONFIG_SFC is not set
CONFIG_NET_VENDOR_SMSC=y
# CONFIG_EPIC100 is not set
# CONFIG_SMSC9420 is not set
CONFIG_NET_VENDOR_STMICRO=y
# CONFIG_STMMAC_ETH is not set
CONFIG_NET_VENDOR_SUN=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NIU is not set
CONFIG_NET_VENDOR_TEHUTI=y
# CONFIG_TEHUTI is not set
CONFIG_NET_VENDOR_TI=y
# CONFIG_TLAN is not set
CONFIG_NET_VENDOR_VIA=y
# CONFIG_VIA_RHINE is not set
# CONFIG_VIA_VELOCITY is not set
CONFIG_NET_VENDOR_WIZNET=y
# CONFIG_WIZNET_W5100 is not set
# CONFIG_WIZNET_W5300 is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PHYLIB is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
CONFIG_WLAN=y
# CONFIG_AIRO is not set
# CONFIG_ATMEL is not set
# CONFIG_PRISM54 is not set
# CONFIG_HOSTAP is not set
# CONFIG_WL_TI is not set

#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
# CONFIG_INPUT_MATRIXKMAP is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_OPENCORES is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
# CONFIG_SERIO_ARC_PS2 is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_TTY=y
CONFIG_VT=y
CONFIG_CONSOLE_TRANSLATIONS=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_LEGACY_PTYS is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not set
# CONFIG_DEVKMEM is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_FIX_EARLYCON_MEM=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
# CONFIG_SERIAL_8250_DW is not set

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_KGDB_NMI is not set
# CONFIG_SERIAL_MFD_HSU is not set
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_CONSOLE_POLL=y
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_PCH_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
CONFIG_HVC_DRIVER=y
CONFIG_VIRTIO_CONSOLE=y
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_NVRAM is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
CONFIG_DEVPORT=y
# CONFIG_I2C is not set
# CONFIG_SPI is not set

#
# Qualcomm MSM SSBI bus support
#
# CONFIG_SSBI is not set
# CONFIG_HSI is not set

#
# PPS support
#
# CONFIG_PPS is not set

#
# PPS generators support
#

#
# PTP clock support
#
# CONFIG_PTP_1588_CLOCK is not set

#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
#
# CONFIG_PTP_1588_CLOCK_PCH is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIO_DEVRES=y
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_POWER_AVS is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not set
# CONFIG_WATCHDOG is not set
CONFIG_SSB_POSSIBLE=y

#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
CONFIG_BCMA_POSSIBLE=y

#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_MFD_CS5535 is not set
# CONFIG_MFD_CROS_EC is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set

#
# Graphics support
#
# CONFIG_AGP is not set
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
# CONFIG_DRM is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
# CONFIG_FB is not set
# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_SOUND is not set

#
# HID support
#
# CONFIG_HID is not set
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_ARCH_HAS_XHCI=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
# CONFIG_RTC_CLASS is not set
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO=y

#
# Virtio drivers
#
CONFIG_VIRTIO_PCI=y
# CONFIG_VIRTIO_BALLOON is not set
# CONFIG_VIRTIO_MMIO is not set

#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set
# CONFIG_X86_PLATFORM_DEVICES is not set

#
# Hardware Spinlock drivers
#
CONFIG_CLKSRC_I8253=y
CONFIG_CLKEVT_I8253=y
CONFIG_I8253_LOCK=y
CONFIG_CLKBLD_I8253=y
# CONFIG_MAILBOX is not set
# CONFIG_IOMMU_SUPPORT is not set

#
# Remoteproc drivers
#
# CONFIG_STE_MODEM_RPROC is not set

#
# Rpmsg drivers
#
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not set
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
CONFIG_FIRMWARE_MEMMAP=y
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
# CONFIG_DMIID is not set
# CONFIG_DMI_SYSFS is not set
# CONFIG_ISCSI_IBFT_FIND is not set
# CONFIG_GOOGLE_FIRMWARE is not set

#
# File systems
#
CONFIG_DCACHE_WORD_ACCESS=y
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not set
# CONFIG_EXT4_FS is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_FILE_LOCKING=y
# CONFIG_FSNOTIFY is not set
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
# CONFIG_FANOTIFY is not set
# CONFIG_QUOTA is not set
# CONFIG_QUOTACTL is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# Caches
#
# CONFIG_FSCACHE is not set

#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
# CONFIG_PROC_KCORE is not set
CONFIG_PROC_SYSCTL=y
CONFIG_PROC_PAGE_MONITOR=y
CONFIG_SYSFS=y
# CONFIG_TMPFS is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_MISC_FILESYSTEMS is not set
CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
# CONFIG_CEPH_FS is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
CONFIG_9P_FS=y
# CONFIG_9P_FS_POSIX_ACL is not set
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_MAC_ROMAN is not set
# CONFIG_NLS_MAC_CELTIC is not set
# CONFIG_NLS_MAC_CENTEURO is not set
# CONFIG_NLS_MAC_CROATIAN is not set
# CONFIG_NLS_MAC_CYRILLIC is not set
# CONFIG_NLS_MAC_GAELIC is not set
# CONFIG_NLS_MAC_GREEK is not set
# CONFIG_NLS_MAC_ICELAND is not set
# CONFIG_NLS_MAC_INUIT is not set
# CONFIG_NLS_MAC_ROMANIAN is not set
# CONFIG_NLS_MAC_TURKISH is not set
# CONFIG_NLS_UTF8 is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
# CONFIG_ENABLE_WARN_DEPRECATED is not set
# CONFIG_ENABLE_MUST_CHECK is not set
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_UNUSED_SYMBOLS is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
# CONFIG_LOCKUP_DETECTOR is not set
# CONFIG_PANIC_ON_OOPS is not set
CONFIG_PANIC_ON_OOPS_VALUE=0
# CONFIG_DETECT_HUNG_TASK is not set
CONFIG_SCHED_DEBUG=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_LOCK_ALLOC is not set
# CONFIG_PROVE_LOCKING is not set
# CONFIG_LOCK_STAT is not set
# CONFIG_DEBUG_ATOMIC_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_VM is not set
# CONFIG_DEBUG_VIRTUAL is not set
# CONFIG_DEBUG_WRITECOUNT is not set
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_LIST is not set
# CONFIG_TEST_LIST_SORT is not set
# CONFIG_DEBUG_SG is not set
# CONFIG_DEBUG_NOTIFIERS is not set
# CONFIG_DEBUG_CREDENTIALS is not set
CONFIG_ARCH_WANT_FRAME_POINTERS=y
# CONFIG_FRAME_POINTER is not set
# CONFIG_BOOT_PRINTK_DELAY is not set

#
# RCU Debugging
#
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_RCU_TRACE is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
# CONFIG_NOTIFIER_ERROR_INJECTION is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
# CONFIG_DEBUG_PAGEALLOC is not set
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
CONFIG_HAVE_C_RECORDMCOUNT=y
CONFIG_TRACING_SUPPORT=y
# CONFIG_FTRACE is not set
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_DMA_API_DEBUG is not set
# CONFIG_ATOMIC64_SELFTEST is not set
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
# CONFIG_KGDB_TESTS is not set
# CONFIG_KGDB_LOW_LEVEL_TRAP is not set
# CONFIG_KGDB_KDB is not set
CONFIG_HAVE_ARCH_KMEMCHECK=y
# CONFIG_KMEMCHECK is not set
# CONFIG_TEST_STRING_HELPERS is not set
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_STRICT_DEVMEM is not set
# CONFIG_X86_VERBOSE_BOOTUP is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_X86_PTDUMP is not set
CONFIG_DEBUG_RODATA=y
CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
# CONFIG_IOMMU_STRESS is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
CONFIG_IO_DELAY_TYPE_0X80=0
CONFIG_IO_DELAY_TYPE_0XED=1
CONFIG_IO_DELAY_TYPE_UDELAY=2
CONFIG_IO_DELAY_TYPE_NONE=3
CONFIG_IO_DELAY_0X80=y
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
# CONFIG_IO_DELAY_NONE is not set
CONFIG_DEFAULT_IO_DELAY_TYPE=0
# CONFIG_CPA_DEBUG is not set
# CONFIG_OPTIMIZE_INLINING is not set

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not set
# CONFIG_SECURITY is not set
# CONFIG_SECURITYFS is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_DEFAULT_SECURITY=""
CONFIG_CRYPTO=y

#
# Crypto core or helper
#
# CONFIG_CRYPTO_FIPS is not set
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_ALGAPI2=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_RNG2=y
# CONFIG_CRYPTO_MANAGER is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_USER is not set
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_CRYPTD is not set
# CONFIG_CRYPTO_AUTHENC is not set

#
# Authenticated Encryption with Associated Data
#
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_SEQIV is not set

#
# Block modes
#
# CONFIG_CRYPTO_CBC is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_CTS is not set
# CONFIG_CRYPTO_ECB is not set
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_PCBC is not set
# CONFIG_CRYPTO_XTS is not set

#
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not set
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_VMAC is not set

#
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CRC32C_INTEL is not set
# CONFIG_CRYPTO_CRC32 is not set
# CONFIG_CRYPTO_CRC32_PCLMUL is not set
# CONFIG_CRYPTO_GHASH is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_MD5 is not set
# CONFIG_CRYPTO_MICHAEL_MIC is not set
# CONFIG_CRYPTO_RMD128 is not set
# CONFIG_CRYPTO_RMD160 is not set
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set

#
# Ciphers
#
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_586 is not set
# CONFIG_CRYPTO_AES_NI_INTEL is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SALSA20_586 is not set
# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SERPENT_SSE2_586 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set

#
# Compression
#
# CONFIG_CRYPTO_DEFLATE is not set
# CONFIG_CRYPTO_ZLIB is not set
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_LZ4 is not set
# CONFIG_CRYPTO_LZ4HC is not set

#
# Random Number Generation
#
CONFIG_CRYPTO_ANSI_CPRNG=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_PADLOCK is not set
# CONFIG_CRYPTO_DEV_GEODE is not set
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
# CONFIG_LGUEST is not set
# CONFIG_BINARY_PRINTF is not set

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
CONFIG_GENERIC_STRNLEN_USER=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
# CONFIG_CRC_T10DIF is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not set
CONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not set
# CONFIG_CRC7 is not set
# CONFIG_LIBCRC32C is not set
# CONFIG_CRC8 is not set
# CONFIG_XZ_DEC is not set
# CONFIG_XZ_DEC_BCJ is not set
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_DQL=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_AVERAGE is not set
# CONFIG_CORDIC is not set
# CONFIG_DDR is not set

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

* [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels
  2013-04-26  9:51                   ` [PATCH -v2.1] " Borislav Petkov
  2013-04-30 16:49                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
  2013-05-01 13:19                     ` [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel Marcelo Tosatti
@ 2013-05-02 17:23                     ` tip-bot for Borislav Petkov
  2013-05-02 18:06                       ` David Rientjes
  2 siblings, 1 reply; 64+ messages in thread
From: tip-bot for Borislav Petkov @ 2013-05-02 17:23 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, penberg, bp, levinsasha928, mtosatti,
	tglx, hpa, fengguang.wu, bp

Commit-ID:  7e0320e733eec67e40d2b53e438d9971f079862d
Gitweb:     http://git.kernel.org/tip/7e0320e733eec67e40d2b53e438d9971f079862d
Author:     Borislav Petkov <bp@alien8.de>
AuthorDate: Fri, 26 Apr 2013 11:51:40 +0200
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Thu, 2 May 2013 10:13:07 -0700

x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels

This is pretty useful for the case where people want to boot the
resulting kernel in qemu/kvm or lkvm. Instead of going and
searching for each required option through the Kconfig maze,
this single option should simply enable everything required/good
to have to boot the resulting kernel in the guest.

Patch has been adapted from a version in the external lkvm tree.

[ hpa: rebased to resolve a merge conflict ]

Originally-by: Pekka Enberg <penberg@kernel.org>
Originally-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Sasha Levin <levinsasha928@gmail.com>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Link: http://lkml.kernel.org/r/20130426095140.GA15361@pd.tnic
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/Kconfig | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 5db2117..f724671f 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -649,6 +649,45 @@ config KVM_GUEST
 	  underlying device model, the host provides the guest with
 	  timing infrastructure such as time of day, and system time
 
+config KVM_GUEST_COMMON_OPTIONS
+	bool "Enable commodity options for a standalone KVM guest"
+	depends on KVM_GUEST
+	select NET
+	select NETDEVICES
+	select BLOCK
+	select BLK_DEV
+	select NETWORK_FILESYSTEMS
+	select INET
+	select EXPERIMENTAL
+	select TTY
+	select SERIAL_8250
+	select SERIAL_8250_CONSOLE
+	select IP_PNP
+	select IP_PNP_DHCP
+	select BINFMT_ELF
+	select PCI_MSI
+	select HAVE_ARCH_KGDB
+	select DEBUG_KERNEL
+	select KGDB
+	select KGDB_SERIAL_CONSOLE
+	select VIRTUALIZATION
+	select VIRTIO
+	select VIRTIO_RING
+	select VIRTIO_PCI
+	select VIRTIO_BLK
+	select VIRTIO_CONSOLE
+	select VIRTIO_NET
+	select 9P_FS
+	select NET_9P
+	select NET_9P_VIRTIO
+	---help---
+	  Select guest kernel functionality which facilitates booting the
+	  kernel as a guest in qemu or lkvm. This entails basic stuff like
+	  serial support, kgdb, virtio and other so that you can be able to
+	  have commodity functionality like serial output from the guest,
+	  networking, seamless host file system integration into guest context
+	  and other useful things.
+
 source "arch/x86/lguest/Kconfig"
 
 config PARAVIRT_TIME_ACCOUNTING

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02  7:06                                             ` Ingo Molnar
@ 2013-05-02 17:31                                               ` H. Peter Anvin
  2013-05-02 19:43                                                 ` Ingo Molnar
  0 siblings, 1 reply; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-02 17:31 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Borislav Petkov, David Rientjes, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On 05/02/2013 12:06 AM, Ingo Molnar wrote:
> 
> * H. Peter Anvin <hpa@zytor.com> wrote:
> 
>> On 05/01/2013 04:02 PM, Borislav Petkov wrote:
>>> On Wed, May 01, 2013 at 03:37:28PM -0700, David Rientjes wrote:
>>>> It means your patch is incomplete.
>>>
>>> I'll gladly test and ack a patch which makes it complete.
>>>
>>> Simple exercises in rhetoric about what does and what doesn't make 
>>> sense means a rat's ass to me. You need to show me a *real* use case 
>>> which you *actually* hit and this patch breaks it.
>>
>> The fundamental problem is that "select" is broken and doesn't track 
>> dependencies of things selected.
> 
> The way I've been solving it in a similar usecase was to select the 
> required options - plus its dependencies, manually.
> 
> That should be possible here as well, driven by any weird randconfig build 
> failures that get found. Such a set of selects quickly converges.
> 

The problem is that it is a moving target.  We really need a
dependency-resolving version of select.

	-hpa



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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 17:23                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
@ 2013-05-02 18:06                       ` David Rientjes
  2013-05-02 18:07                         ` H. Peter Anvin
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-02 18:06 UTC (permalink / raw)
  To: hpa
  Cc: mingo, hpa, linux-kernel, penberg, bp, levinsasha928, mtosatti,
	tglx, bp, fengguang.wu, linux-tip-commits

On Thu, 2 May 2013, tip-bot for Borislav Petkov wrote:

> Commit-ID:  7e0320e733eec67e40d2b53e438d9971f079862d
> Gitweb:     http://git.kernel.org/tip/7e0320e733eec67e40d2b53e438d9971f079862d
> Author:     Borislav Petkov <bp@alien8.de>
> AuthorDate: Fri, 26 Apr 2013 11:51:40 +0200
> Committer:  H. Peter Anvin <hpa@linux.intel.com>
> CommitDate: Thu, 2 May 2013 10:13:07 -0700
> 
> x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels
> 
> This is pretty useful for the case where people want to boot the
> resulting kernel in qemu/kvm or lkvm. Instead of going and
> searching for each required option through the Kconfig maze,
> this single option should simply enable everything required/good
> to have to boot the resulting kernel in the guest.
> 
> Patch has been adapted from a version in the external lkvm tree.
> 
> [ hpa: rebased to resolve a merge conflict ]
> 
> Originally-by: Pekka Enberg <penberg@kernel.org>
> Originally-by: Sasha Levin <levinsasha928@gmail.com>
> Signed-off-by: Borislav Petkov <bp@suse.de>
> Cc: Marcelo Tosatti <mtosatti@redhat.com>
> Cc: Pekka Enberg <penberg@kernel.org>
> Cc: Sasha Levin <levinsasha928@gmail.com>
> Cc: Fengguang Wu <fengguang.wu@intel.com>
> Link: http://lkml.kernel.org/r/20130426095140.GA15361@pd.tnic
> Signed-off-by: Ingo Molnar <mingo@kernel.org>
> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>

Hi Peter,

You'll also need http://marc.info/?l=linux-kernel&m=136744052328802 when 
Borislav signs it off as it fixes one of the dependencies.  Still waiting 
on how X86_IO_APIC, X86_LOCAL_APIC, and NET_CORE will be resolved.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 18:06                       ` David Rientjes
@ 2013-05-02 18:07                         ` H. Peter Anvin
  2013-05-02 18:19                           ` David Rientjes
  2013-05-02 19:45                           ` Ingo Molnar
  0 siblings, 2 replies; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-02 18:07 UTC (permalink / raw)
  To: David Rientjes
  Cc: mingo, hpa, linux-kernel, penberg, bp, levinsasha928, mtosatti,
	tglx, bp, fengguang.wu, linux-tip-commits

On 05/02/2013 11:06 AM, David Rientjes wrote:
> 
> Hi Peter,
> 
> You'll also need http://marc.info/?l=linux-kernel&m=136744052328802 when 
> Borislav signs it off as it fixes one of the dependencies.  Still waiting 
> on how X86_IO_APIC, X86_LOCAL_APIC, and NET_CORE will be resolved.
> 

Hm.

Let's drop this one for right now.  I need to queue up some actual
urgent fixes...

	-hpa


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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 18:07                         ` H. Peter Anvin
@ 2013-05-02 18:19                           ` David Rientjes
  2013-05-02 19:45                           ` Ingo Molnar
  1 sibling, 0 replies; 64+ messages in thread
From: David Rientjes @ 2013-05-02 18:19 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: mingo, hpa, linux-kernel, penberg, bp, levinsasha928, mtosatti,
	tglx, bp, fengguang.wu, linux-tip-commits

On Thu, 2 May 2013, H. Peter Anvin wrote:

> Let's drop this one for right now.  I need to queue up some actual
> urgent fixes...
> 

Sounds good.  I think what you eluded to earlier, a "select" that resolves 
dependencies on the symbols it enables, would be the best way to implement 
something like KVM_GUEST_COMMON_OPTIONS so that it doesn't pick up a 
failure when an option it selects adds a new dependency.  It would reduce 
the size of this particular patch considerably and avoid constantly 
updating its list.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 17:31                                               ` H. Peter Anvin
@ 2013-05-02 19:43                                                 ` Ingo Molnar
  2013-05-02 19:48                                                   ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Ingo Molnar @ 2013-05-02 19:43 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Borislav Petkov, David Rientjes, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits


* H. Peter Anvin <hpa@zytor.com> wrote:

> > That should be possible here as well, driven by any weird randconfig 
> > build failures that get found. Such a set of selects quickly 
> > converges.
> 
> The problem is that it is a moving target.  We really need a 
> dependency-resolving version of select.

Dependencies are always a moving target - sometimes config names change, 
new dependencies come in.

I've maintained a similar solution for years, and once the initial list of 
selects has settled it's a low maintenance overhead thing.

Thanks,

	Ingo

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 18:07                         ` H. Peter Anvin
  2013-05-02 18:19                           ` David Rientjes
@ 2013-05-02 19:45                           ` Ingo Molnar
  2013-05-02 20:07                             ` Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: Ingo Molnar @ 2013-05-02 19:45 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: David Rientjes, hpa, linux-kernel, penberg, bp, levinsasha928,
	mtosatti, tglx, bp, fengguang.wu, linux-tip-commits


* H. Peter Anvin <hpa@linux.intel.com> wrote:

> On 05/02/2013 11:06 AM, David Rientjes wrote:
> > 
> > Hi Peter,
> > 
> > You'll also need http://marc.info/?l=linux-kernel&m=136744052328802 when 
> > Borislav signs it off as it fixes one of the dependencies.  Still waiting 
> > on how X86_IO_APIC, X86_LOCAL_APIC, and NET_CORE will be resolved.
> > 
> 
> Hm.

Boris, mind posting a working version?

Thanks,

	Ingo

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 19:43                                                 ` Ingo Molnar
@ 2013-05-02 19:48                                                   ` Borislav Petkov
  0 siblings, 0 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-05-02 19:48 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: H. Peter Anvin, David Rientjes, linux-kernel, Pekka Enberg,
	levinsasha928, mtosatti, tglx, Borislav Petkov, fengguang.wu,
	linux-tip-commits

On Thu, May 02, 2013 at 09:43:26PM +0200, Ingo Molnar wrote:
> Dependencies are always a moving target - sometimes config names
> change, new dependencies come in.
>
> I've maintained a similar solution for years, and once the initial
> list of selects has settled it's a low maintenance overhead thing.

Yeah, hpa's rebasing urgent anyway and he's taken it out so that I can
bake this a bit longer.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 19:45                           ` Ingo Molnar
@ 2013-05-02 20:07                             ` Borislav Petkov
  2013-05-03 14:29                               ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-02 20:07 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: H. Peter Anvin, David Rientjes, hpa, linux-kernel, penberg,
	levinsasha928, mtosatti, tglx, bp, fengguang.wu,
	linux-tip-commits

On Thu, May 02, 2013 at 09:45:56PM +0200, Ingo Molnar wrote:
> Boris, mind posting a working version?

Yeah, let's delay it for the next merge window - it looks like it needs
more experimenting and since it is not urgent enough...

FWIW, I did play a bit with it today and I ended up with the diff below
just to satisfy the CONFIG_PCI/MSI deps. However, if I want to shut them
all up, I need to pull in SMP, MODULE_UNLOAD, MODULE... and so on.

Which is kind of an overkill and I really don't want to do it.

I wonder if one can exclude options from randconfig until 'select' has
been taught to resolve dependencies...

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 9dae342fa6f6..4c826ea8dd29 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -390,9 +390,10 @@ config X86_VSMP
        bool "ScaleMP vSMP"
        select HYPERVISOR_GUEST
        select PARAVIRT
-       depends on X86_64 && PCI
+       select PCI
+       select SMP
+       depends on X86_64
        depends on X86_EXTENDED_PLATFORM
-       depends on SMP
        ---help---
          Support for ScaleMP vSMP systems.  Say 'Y' here if this kernel is
          supposed to run on these EM64T-based machines.  Only choose this option
@@ -685,6 +686,7 @@ config KVM_GUEST_COMMON_OPTIONS
        bool "Enable commodity options for a standalone KVM guest"
        depends on KVM_GUEST
        select NET
+       select NET_CORE
        select NETDEVICES
        select BLOCK
        select BLK_DEV
@@ -697,6 +699,12 @@ config KVM_GUEST_COMMON_OPTIONS
        select IP_PNP
        select IP_PNP_DHCP
        select BINFMT_ELF
+#      select SMP
+#      select MODULE_UNLOAD
+       select X86_LOCAL_APIC
+       select X86_IO_APIC
+       select ARCH_SUPPORTS_MSI
+       select PCI
        select PCI_MSI
        select HAVE_ARCH_KGDB
        select DEBUG_KERNEL



-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-02 20:07                             ` Borislav Petkov
@ 2013-05-03 14:29                               ` Borislav Petkov
  2013-05-03 14:54                                 ` Randy Dunlap
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-03 14:29 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: H. Peter Anvin, David Rientjes, hpa, linux-kernel, penberg,
	levinsasha928, mtosatti, tglx, bp, fengguang.wu,
	linux-tip-commits, Michal Marek

On Thu, May 02, 2013 at 10:07:03PM +0200, Borislav Petkov wrote:a
> I wonder if one can exclude options from randconfig until 'select' has
> been taught to resolve dependencies...

So I talked to Michal on IRC about the whole deal and the fact of the
matter is, unless someone steps up and rewrites the Kconfig solver so
that selects work as expected, this option would break whenever one
of those selected option's dependencies change or said option is made
configurable.

Which means, the next best thing would be to have a small file
somewhere, maybe in scripts/kconfig/ or so, called 'allrand.config' and
which has default settings for randconfig builds. It would have

# CONFIG_KVM_GUEST_COMMON_OPTIONS is not set

so that this option is always disabled in randconfigs.

Frankly, I much rather prefer this than going nuts and including every
possible dependency just so some obscure randconfigs don't break (that's
not the point of this option anyway); and then having to run around and
fix it once some of the selected option's dependencies change.

Opinions?

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 14:29                               ` Borislav Petkov
@ 2013-05-03 14:54                                 ` Randy Dunlap
  2013-05-03 15:08                                   ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Randy Dunlap @ 2013-05-03 14:54 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Ingo Molnar, H. Peter Anvin, David Rientjes, hpa, linux-kernel,
	penberg, levinsasha928, mtosatti, tglx, bp, fengguang.wu,
	linux-tip-commits, Michal Marek

On 05/03/13 07:29, Borislav Petkov wrote:
> On Thu, May 02, 2013 at 10:07:03PM +0200, Borislav Petkov wrote:a
>> I wonder if one can exclude options from randconfig until 'select' has
>> been taught to resolve dependencies...
> 
> So I talked to Michal on IRC about the whole deal and the fact of the
> matter is, unless someone steps up and rewrites the Kconfig solver so
> that selects work as expected, this option would break whenever one
> of those selected option's dependencies change or said option is made
> configurable.
> 
> Which means, the next best thing would be to have a small file
> somewhere, maybe in scripts/kconfig/ or so, called 'allrand.config' and
> which has default settings for randconfig builds. It would have
> 
> # CONFIG_KVM_GUEST_COMMON_OPTIONS is not set
> 
> so that this option is always disabled in randconfigs.
> 
> Frankly, I much rather prefer this than going nuts and including every
> possible dependency just so some obscure randconfigs don't break (that's
> not the point of this option anyway); and then having to run around and
> fix it once some of the selected option's dependencies change.
> 
> Opinions?


Could you alternately have a kvm_guest.config that should always work
for you?


-- 
~Randy

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 15:08                                   ` Borislav Petkov
@ 2013-05-03 15:06                                     ` H. Peter Anvin
  2013-05-03 15:10                                     ` Michal Marek
  1 sibling, 0 replies; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-03 15:06 UTC (permalink / raw)
  To: Borislav Petkov, Randy Dunlap
  Cc: Ingo Molnar, H. Peter Anvin, David Rientjes, linux-kernel,
	penberg, levinsasha928, mtosatti, tglx, bp, fengguang.wu,
	linux-tip-commits, Michal Marek

We can put a config file upstream, too.

Borislav Petkov <bp@alien8.de> wrote:

>On Fri, May 03, 2013 at 07:54:36AM -0700, Randy Dunlap wrote:
>> Could you alternately have a kvm_guest.config that should always work
>> for you?
>
>I could, and I do. The idea, however, is to have this option upstream
>so that people don't have to go search for every relevant option for
>running the kernel a kvm guest.
>
>Which reminds me: Pekka had a 'make kvmconfig' functionality in
>the kvmtool too. Which, TBH, is even better than having a Kconfig
>option with a bunch of selects. So, come to think of it, after all
>the controversy with such an option, having a 'make kvmconfig' do
>scripts/config -e <option> where <option> is in that list we select
>would be much better.
>
>This won't break randconfigs at all, btw. :-)
>
>Michal?

-- 
Sent from my mobile phone. Please excuse brevity and lack of formatting.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 14:54                                 ` Randy Dunlap
@ 2013-05-03 15:08                                   ` Borislav Petkov
  2013-05-03 15:06                                     ` H. Peter Anvin
  2013-05-03 15:10                                     ` Michal Marek
  0 siblings, 2 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-05-03 15:08 UTC (permalink / raw)
  To: Randy Dunlap
  Cc: Ingo Molnar, H. Peter Anvin, David Rientjes, hpa, linux-kernel,
	penberg, levinsasha928, mtosatti, tglx, bp, fengguang.wu,
	linux-tip-commits, Michal Marek

On Fri, May 03, 2013 at 07:54:36AM -0700, Randy Dunlap wrote:
> Could you alternately have a kvm_guest.config that should always work
> for you?

I could, and I do. The idea, however, is to have this option upstream
so that people don't have to go search for every relevant option for
running the kernel a kvm guest.

Which reminds me: Pekka had a 'make kvmconfig' functionality in
the kvmtool too. Which, TBH, is even better than having a Kconfig
option with a bunch of selects. So, come to think of it, after all
the controversy with such an option, having a 'make kvmconfig' do
scripts/config -e <option> where <option> is in that list we select
would be much better.

This won't break randconfigs at all, btw. :-)

Michal?

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 15:08                                   ` Borislav Petkov
  2013-05-03 15:06                                     ` H. Peter Anvin
@ 2013-05-03 15:10                                     ` Michal Marek
  2013-05-03 15:31                                       ` Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: Michal Marek @ 2013-05-03 15:10 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Randy Dunlap, Ingo Molnar, H. Peter Anvin, David Rientjes, hpa,
	linux-kernel, penberg, levinsasha928, mtosatti, tglx, bp,
	fengguang.wu, linux-tip-commits

On 3.5.2013 17:08, Borislav Petkov wrote:
> On Fri, May 03, 2013 at 07:54:36AM -0700, Randy Dunlap wrote:
>> Could you alternately have a kvm_guest.config that should always work
>> for you?
> 
> I could, and I do. The idea, however, is to have this option upstream
> so that people don't have to go search for every relevant option for
> running the kernel a kvm guest.
> 
> Which reminds me: Pekka had a 'make kvmconfig' functionality in
> the kvmtool too. Which, TBH, is even better than having a Kconfig
> option with a bunch of selects. So, come to think of it, after all
> the controversy with such an option, having a 'make kvmconfig' do
> scripts/config -e <option> where <option> is in that list we select
> would be much better.
> 
> This won't break randconfigs at all, btw. :-)

You still risk that you miss some new dependency, but for a normal
configs as a base, this won't be an issue in most cases. Whether this is
implemented as a series of scripts/config calls or if there is a
kvm_guest.config does not matter much, as long as randconfig does not
see it ;).

Michal

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 15:10                                     ` Michal Marek
@ 2013-05-03 15:31                                       ` Borislav Petkov
  2013-05-03 16:53                                         ` David Rientjes
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-03 15:31 UTC (permalink / raw)
  To: Michal Marek
  Cc: Randy Dunlap, Ingo Molnar, H. Peter Anvin, David Rientjes, hpa,
	linux-kernel, penberg, levinsasha928, mtosatti, tglx, bp,
	fengguang.wu, linux-tip-commits

On Fri, May 03, 2013 at 05:10:15PM +0200, Michal Marek wrote:
> You still risk that you miss some new dependency, but for a normal
> configs as a base, this won't be an issue in most cases. Whether this is
> implemented as a series of scripts/config calls or if there is a
> kvm_guest.config does not matter much, as long as randconfig does not
> see it ;).

Yep, I think we can do something along the lines of what hpa suggested:

* put a kvm_guest.config in arch/x86/configs/

* teach scripts/config/ to parse it and do set_var() for each line in
there.

* yes "" | make oldconfig - because we want to use the current config
as a base.

I think this is the easiest and cleanest of them all.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 15:31                                       ` Borislav Petkov
@ 2013-05-03 16:53                                         ` David Rientjes
  2013-05-03 17:10                                           ` H. Peter Anvin
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-03 16:53 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Michal Marek, Randy Dunlap, Ingo Molnar, H. Peter Anvin, hpa,
	linux-kernel, penberg, levinsasha928, mtosatti, tglx, bp,
	fengguang.wu, linux-tip-commits

On Fri, 3 May 2013, Borislav Petkov wrote:

> * yes "" | make oldconfig - because we want to use the current config
> as a base.
> 

This will select options that you don't necessarily need but default to 
enabled when they are selected from kvm_guest.config, so it will actually 
include much more than what's needed for a kvm guest.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 16:53                                         ` David Rientjes
@ 2013-05-03 17:10                                           ` H. Peter Anvin
  2013-05-03 17:19                                             ` David Rientjes
  0 siblings, 1 reply; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-03 17:10 UTC (permalink / raw)
  To: David Rientjes, Borislav Petkov
  Cc: Michal Marek, Randy Dunlap, Ingo Molnar, H. Peter Anvin,
	linux-kernel, penberg, levinsasha928, mtosatti, tglx, bp,
	fengguang.wu, linux-tip-commits

For minimal you'd probably use yes n | ...

David Rientjes <rientjes@google.com> wrote:

>On Fri, 3 May 2013, Borislav Petkov wrote:
>
>> * yes "" | make oldconfig - because we want to use the current config
>> as a base.
>> 
>
>This will select options that you don't necessarily need but default to
>
>enabled when they are selected from kvm_guest.config, so it will
>actually 
>include much more than what's needed for a kvm guest.

-- 
Sent from my mobile phone. Please excuse brevity and lack of formatting.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 17:10                                           ` H. Peter Anvin
@ 2013-05-03 17:19                                             ` David Rientjes
  2013-05-03 19:09                                               ` H. Peter Anvin
  0 siblings, 1 reply; 64+ messages in thread
From: David Rientjes @ 2013-05-03 17:19 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: Borislav Petkov, Michal Marek, Randy Dunlap, Ingo Molnar,
	H. Peter Anvin, linux-kernel, penberg, levinsasha928, mtosatti,
	tglx, bp, fengguang.wu, linux-tip-commits

On Fri, 3 May 2013, H. Peter Anvin wrote:

> For minimal you'd probably use yes n | ...
> 

Works fine unless kvm_guest.config enables an option that requires a 
numbered choice, such as CONFIG_EXPERT enabling the the ability to select 
CONFIG_SLOB from the list of allocators.  Instead of relying on yes(1), 
I think you'll need to modify this custom script to explicitly disable 
remaining options and select the default when there's a choice.

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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 17:19                                             ` David Rientjes
@ 2013-05-03 19:09                                               ` H. Peter Anvin
  2013-05-03 23:36                                                 ` Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: H. Peter Anvin @ 2013-05-03 19:09 UTC (permalink / raw)
  To: David Rientjes
  Cc: H. Peter Anvin, Borislav Petkov, Michal Marek, Randy Dunlap,
	Ingo Molnar, linux-kernel, penberg, levinsasha928, mtosatti,
	tglx, bp, fengguang.wu, linux-tip-commits

On 05/03/2013 10:19 AM, David Rientjes wrote:
> 
> Works fine unless kvm_guest.config enables an option that requires a 
> numbered choice, such as CONFIG_EXPERT enabling the the ability to select 
> CONFIG_SLOB from the list of allocators.  Instead of relying on yes(1), 
> I think you'll need to modify this custom script to explicitly disable 
> remaining options and select the default when there's a choice.
> 

Actually it is called:

KCONFIG_ALLCONFIG=kvm_guest.config make allnoconfig

	-hpa


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

* Re: [tip:x86/urgent] x86/kconfig:  Add a Kconfig shortcut for building working KVM guest kernels
  2013-05-03 19:09                                               ` H. Peter Anvin
@ 2013-05-03 23:36                                                 ` Borislav Petkov
  2013-05-22 14:46                                                   ` [PATCH -v2] x86: Add a kvm config file Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-05-03 23:36 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: David Rientjes, H. Peter Anvin, Michal Marek, Randy Dunlap,
	Ingo Molnar, linux-kernel, penberg, levinsasha928, mtosatti,
	tglx, bp, fengguang.wu, linux-tip-commits

On Fri, May 03, 2013 at 12:09:36PM -0700, H. Peter Anvin wrote:
> Actually it is called:
> 
> KCONFIG_ALLCONFIG=kvm_guest.config make allnoconfig

I guess we can do something like this - it is kinda noisy currently and
requires a previously present .config in $objtree to work.

---
 arch/x86/Makefile                 |  5 +++++
 arch/x86/configs/kvm_guest.config | 28 ++++++++++++++++++++++++++++
 2 files changed, 33 insertions(+)
 create mode 100644 arch/x86/configs/kvm_guest.config

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 5c477260294f..6f9c03ed999e 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,6 +220,11 @@ archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 	$(Q)$(MAKE) $(clean)=arch/x86/tools
 
+kvmconfig:
+	$(if $(wildcard $(objtree)/.config),, $(error You need an existing .config for this target))
+	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m -O $(objtree) $(objtree)/.config arch/x86/configs/kvm_guest.config
+	$(Q)yes "n" | $(MAKE) oldconfig
+
 define archhelp
   echo  '* bzImage      - Compressed kernel image (arch/x86/boot/bzImage)'
   echo  '  install      - Install kernel using'
diff --git a/arch/x86/configs/kvm_guest.config b/arch/x86/configs/kvm_guest.config
new file mode 100644
index 000000000000..2ac38a390db3
--- /dev/null
+++ b/arch/x86/configs/kvm_guest.config
@@ -0,0 +1,28 @@
+CONFIG_NET=y
+CONFIG_NET_CORE=y
+CONFIG_NETDEVICES=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_INET=y
+CONFIG_TTY=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_BINFMT_ELF=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_KGDB=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_NET=y
+CONFIG_9P_FS=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
-- 
1.8.3.rc0

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* [PATCH -v2] x86: Add a kvm config file
  2013-05-03 23:36                                                 ` Borislav Petkov
@ 2013-05-22 14:46                                                   ` Borislav Petkov
  2013-05-22 17:55                                                     ` Pekka Enberg
  2013-05-28 13:39                                                     ` [tip:x86/platform] x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs tip-bot for Borislav Petkov
  0 siblings, 2 replies; 64+ messages in thread
From: Borislav Petkov @ 2013-05-22 14:46 UTC (permalink / raw)
  To: H. Peter Anvin
  Cc: David Rientjes, Michal Marek, Randy Dunlap, Ingo Molnar,
	linux-kernel, penberg, levinsasha928, mtosatti, tglx, bp,
	fengguang.wu, linux-tip-commits

Add an config file snippet which enables additional options useful for
running the kernel in a kvm guest. When you execute 'make kvmconfig' it
merges those options with an already existing user config before you
build the kernel.

Based on an patch from the external lkvm tree.

Signed-off-by: Borislav Petkov <bp@suse.de>
---

So I've been running this for a while now and seems like the cleanest
solution to me ATM.

 arch/x86/Makefile                 |  6 ++++++
 arch/x86/configs/kvm_guest.config | 28 ++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)
 create mode 100644 arch/x86/configs/kvm_guest.config

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 5c477260294f..91ee171f1cff 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,6 +220,11 @@ archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 	$(Q)$(MAKE) $(clean)=arch/x86/tools
 
+kvmconfig:
+	$(if $(wildcard $(objtree)/.config),, $(error You need an existing .config for this target))
+	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m -O $(objtree) $(objtree)/.config arch/x86/configs/kvm_guest.config
+	$(Q)yes "" | $(MAKE) oldconfig
+
 define archhelp
   echo  '* bzImage      - Compressed kernel image (arch/x86/boot/bzImage)'
   echo  '  install      - Install kernel using'
@@ -233,4 +238,5 @@ define archhelp
   echo  '                  bzdisk/fdimage*/isoimage also accept:'
   echo  '                  FDARGS="..."  arguments for the booted kernel'
   echo  '                  FDINITRD=file initrd for the booted kernel'
+  echo  '  kvmconfig	- Enable additional options for guest kernel support'
 endef
diff --git a/arch/x86/configs/kvm_guest.config b/arch/x86/configs/kvm_guest.config
new file mode 100644
index 000000000000..f9affcc3b9f1
--- /dev/null
+++ b/arch/x86/configs/kvm_guest.config
@@ -0,0 +1,28 @@
+CONFIG_NET=y
+CONFIG_NET_CORE=y
+CONFIG_NETDEVICES=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_INET=y
+CONFIG_TTY=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_BINFMT_ELF=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+CONFIG_KVM_GUEST=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_NET=y
+CONFIG_9P_FS=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
-- 
1.8.3.rc0


-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

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

* Re: [PATCH -v2] x86: Add a kvm config file
  2013-05-22 14:46                                                   ` [PATCH -v2] x86: Add a kvm config file Borislav Petkov
@ 2013-05-22 17:55                                                     ` Pekka Enberg
  2013-05-28 13:39                                                     ` [tip:x86/platform] x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs tip-bot for Borislav Petkov
  1 sibling, 0 replies; 64+ messages in thread
From: Pekka Enberg @ 2013-05-22 17:55 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: H. Peter Anvin, David Rientjes, Michal Marek, Randy Dunlap,
	Ingo Molnar, linux-kernel, levinsasha928, mtosatti, tglx, bp,
	fengguang.wu, linux-tip-commits

On 5/22/13 5:46 PM, Borislav Petkov wrote:
> Add an config file snippet which enables additional options useful for
> running the kernel in a kvm guest. When you execute 'make kvmconfig' it
> merges those options with an already existing user config before you
> build the kernel.
>
> Based on an patch from the external lkvm tree.
>
> Signed-off-by: Borislav Petkov <bp@suse.de>

Acked-by: Pekka Enberg <penberg@kernel.org>


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

* [tip:x86/platform] x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs
  2013-05-22 14:46                                                   ` [PATCH -v2] x86: Add a kvm config file Borislav Petkov
  2013-05-22 17:55                                                     ` Pekka Enberg
@ 2013-05-28 13:39                                                     ` tip-bot for Borislav Petkov
  2013-06-21  8:04                                                       ` [PATCH] x86/platform: Add kvmconfig to the phony targets Borislav Petkov
  1 sibling, 1 reply; 64+ messages in thread
From: tip-bot for Borislav Petkov @ 2013-05-28 13:39 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, penberg, rdunlap, mmarek, bp, tglx, bp,
	rientjes

Commit-ID:  46ff53874bd935ab9955dee56d60212857e89bf3
Gitweb:     http://git.kernel.org/tip/46ff53874bd935ab9955dee56d60212857e89bf3
Author:     Borislav Petkov <bp@alien8.de>
AuthorDate: Wed, 22 May 2013 16:46:39 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 28 May 2013 12:11:32 +0200

x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs

Add an config file snippet which enables additional options
useful for running the kernel in a kvm guest. When you execute
'make kvmconfig' it merges those options with an already
existing user config before you build the kernel.

Based on an patch from the external lkvm tree.

Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: penberg@kernel.org
Cc: levinsasha928@gmail.com
Cc: mtosatti@redhat.com
Cc: fengguang.wu@intel.com
Link: http://lkml.kernel.org/r/20130522144638.GB15085@pd.tnic
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/Makefile                 |  6 ++++++
 arch/x86/configs/kvm_guest.config | 28 ++++++++++++++++++++++++++++
 2 files changed, 34 insertions(+)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 5c47726..91ee171 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,6 +220,11 @@ archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 	$(Q)$(MAKE) $(clean)=arch/x86/tools
 
+kvmconfig:
+	$(if $(wildcard $(objtree)/.config),, $(error You need an existing .config for this target))
+	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m -O $(objtree) $(objtree)/.config arch/x86/configs/kvm_guest.config
+	$(Q)yes "" | $(MAKE) oldconfig
+
 define archhelp
   echo  '* bzImage      - Compressed kernel image (arch/x86/boot/bzImage)'
   echo  '  install      - Install kernel using'
@@ -233,4 +238,5 @@ define archhelp
   echo  '                  bzdisk/fdimage*/isoimage also accept:'
   echo  '                  FDARGS="..."  arguments for the booted kernel'
   echo  '                  FDINITRD=file initrd for the booted kernel'
+  echo  '  kvmconfig	- Enable additional options for guest kernel support'
 endef
diff --git a/arch/x86/configs/kvm_guest.config b/arch/x86/configs/kvm_guest.config
new file mode 100644
index 0000000..f9affcc
--- /dev/null
+++ b/arch/x86/configs/kvm_guest.config
@@ -0,0 +1,28 @@
+CONFIG_NET=y
+CONFIG_NET_CORE=y
+CONFIG_NETDEVICES=y
+CONFIG_BLOCK=y
+CONFIG_BLK_DEV=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_INET=y
+CONFIG_TTY=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_BINFMT_ELF=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_DEBUG_KERNEL=y
+CONFIG_VIRTUALIZATION=y
+CONFIG_HYPERVISOR_GUEST=y
+CONFIG_PARAVIRT=y
+CONFIG_KVM_GUEST=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_VIRTIO_NET=y
+CONFIG_9P_FS=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y

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

* [PATCH] x86/platform: Add kvmconfig to the phony targets
  2013-05-28 13:39                                                     ` [tip:x86/platform] x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs tip-bot for Borislav Petkov
@ 2013-06-21  8:04                                                       ` Borislav Petkov
  2013-06-23 11:02                                                         ` [tip:x86/platform] " tip-bot for Borislav Petkov
  0 siblings, 1 reply; 64+ messages in thread
From: Borislav Petkov @ 2013-06-21  8:04 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: X86 ML, LKML, Borislav Petkov

From: Borislav Petkov <bp@suse.de>

... so as not to disable it with a file of the same name in the toplevel
build directory.

Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 91ee171f1cff..07639c656fcd 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,6 +220,7 @@ archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 	$(Q)$(MAKE) $(clean)=arch/x86/tools
 
+PHONY += kvmconfig
 kvmconfig:
 	$(if $(wildcard $(objtree)/.config),, $(error You need an existing .config for this target))
 	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m -O $(objtree) $(objtree)/.config arch/x86/configs/kvm_guest.config
-- 
1.8.3


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

* [tip:x86/platform] x86/platform: Add kvmconfig to the phony targets
  2013-06-21  8:04                                                       ` [PATCH] x86/platform: Add kvmconfig to the phony targets Borislav Petkov
@ 2013-06-23 11:02                                                         ` tip-bot for Borislav Petkov
  0 siblings, 0 replies; 64+ messages in thread
From: tip-bot for Borislav Petkov @ 2013-06-23 11:02 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, tglx, bp

Commit-ID:  fc58be7596b832ee9635b2f7090a589ac5cdb807
Gitweb:     http://git.kernel.org/tip/fc58be7596b832ee9635b2f7090a589ac5cdb807
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Fri, 21 Jun 2013 10:04:51 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sun, 23 Jun 2013 12:17:35 +0200

x86/platform: Add kvmconfig to the phony targets

... so as not to disable it with a file of the same name in the
toplevel build directory.

Signed-off-by: Borislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1371801891-23618-1-git-send-email-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 91ee171..07639c6 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,6 +220,7 @@ archclean:
 	$(Q)$(MAKE) $(clean)=$(boot)
 	$(Q)$(MAKE) $(clean)=arch/x86/tools
 
+PHONY += kvmconfig
 kvmconfig:
 	$(if $(wildcard $(objtree)/.config),, $(error You need an existing .config for this target))
 	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/kconfig/merge_config.sh -m -O $(objtree) $(objtree)/.config arch/x86/configs/kvm_guest.config

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

end of thread, other threads:[~2013-06-23 11:02 UTC | newest]

Thread overview: 64+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-12 18:19 [PATCH] x86: Add a Kconfig shortcut for a kvm-bootable kernel Borislav Petkov
2013-04-12 20:08 ` Randy Dunlap
2013-04-14  9:31 ` Pekka Enberg
2013-04-14 11:03   ` Borislav Petkov
2013-04-16 16:18     ` Borislav Petkov
2013-04-17  0:38       ` Sasha Levin
2013-04-17  7:50         ` Borislav Petkov
2013-04-17 23:25       ` Marcelo Tosatti
2013-04-18  9:46         ` Borislav Petkov
2013-04-18  9:55           ` Geert Uytterhoeven
2013-04-18 10:18             ` Borislav Petkov
2013-04-18 13:36           ` Marcelo Tosatti
2013-04-19 10:35             ` Borislav Petkov
2013-04-26  0:05               ` [PATCH -v2] x86: Add a Kconfig shortcut for kvm guest kernel Borislav Petkov
2013-04-26  6:42                 ` Ingo Molnar
2013-04-26  9:51                   ` [PATCH -v2.1] " Borislav Petkov
2013-04-30 16:49                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
2013-05-01 19:53                       ` David Rientjes
2013-05-01 20:35                         ` Borislav Petkov
2013-05-01 21:00                           ` David Rientjes
2013-05-01 21:10                             ` Borislav Petkov
2013-05-01 21:30                               ` David Rientjes
2013-05-01 21:56                                 ` Borislav Petkov
2013-05-01 22:09                                   ` David Rientjes
2013-05-01 22:28                                     ` Borislav Petkov
2013-05-01 22:37                                       ` David Rientjes
2013-05-01 23:02                                         ` Borislav Petkov
2013-05-01 23:04                                           ` H. Peter Anvin
2013-05-01 23:09                                             ` Borislav Petkov
2013-05-01 23:16                                               ` H. Peter Anvin
2013-05-01 23:23                                                 ` Borislav Petkov
2013-05-02  7:06                                             ` Ingo Molnar
2013-05-02 17:31                                               ` H. Peter Anvin
2013-05-02 19:43                                                 ` Ingo Molnar
2013-05-02 19:48                                                   ` Borislav Petkov
2013-05-01 23:16                                           ` David Rientjes
2013-05-01 23:35                                             ` Borislav Petkov
2013-05-02  0:07                                               ` David Rientjes
2013-05-02  7:08                                 ` Ingo Molnar
2013-05-02  7:16                                   ` David Rientjes
2013-05-01 13:19                     ` [PATCH -v2.1] x86: Add a Kconfig shortcut for kvm guest kernel Marcelo Tosatti
2013-05-01 23:21                       ` Borislav Petkov
2013-05-02 17:23                     ` [tip:x86/urgent] x86/kconfig: Add a Kconfig shortcut for building working KVM guest kernels tip-bot for Borislav Petkov
2013-05-02 18:06                       ` David Rientjes
2013-05-02 18:07                         ` H. Peter Anvin
2013-05-02 18:19                           ` David Rientjes
2013-05-02 19:45                           ` Ingo Molnar
2013-05-02 20:07                             ` Borislav Petkov
2013-05-03 14:29                               ` Borislav Petkov
2013-05-03 14:54                                 ` Randy Dunlap
2013-05-03 15:08                                   ` Borislav Petkov
2013-05-03 15:06                                     ` H. Peter Anvin
2013-05-03 15:10                                     ` Michal Marek
2013-05-03 15:31                                       ` Borislav Petkov
2013-05-03 16:53                                         ` David Rientjes
2013-05-03 17:10                                           ` H. Peter Anvin
2013-05-03 17:19                                             ` David Rientjes
2013-05-03 19:09                                               ` H. Peter Anvin
2013-05-03 23:36                                                 ` Borislav Petkov
2013-05-22 14:46                                                   ` [PATCH -v2] x86: Add a kvm config file Borislav Petkov
2013-05-22 17:55                                                     ` Pekka Enberg
2013-05-28 13:39                                                     ` [tip:x86/platform] x86, platform, kvm, kconfig: Turn existing .config's into KVM-capable configs tip-bot for Borislav Petkov
2013-06-21  8:04                                                       ` [PATCH] x86/platform: Add kvmconfig to the phony targets Borislav Petkov
2013-06-23 11:02                                                         ` [tip:x86/platform] " tip-bot for Borislav Petkov

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