2015-06-04 08:06:23

by Paolo Bonzini

[permalink] [raw]
Subject: [PATCH] kvm: x86: default legacy PCI device assignment support to "n"

VFIO has proved itself a much better option than KVM's built-in
device assignment. It is mature, provides better isolation because
it enforces ACS, and even the userspace code is being tested on
a wider variety of hardware these days than the legacy support.

Disable legacy device assignment by default.

Signed-off-by: Paolo Bonzini <[email protected]>
---
arch/x86/kvm/Kconfig | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
index 413a7bf9efbb..a0f06a5947c5 100644
--- a/arch/x86/kvm/Kconfig
+++ b/arch/x86/kvm/Kconfig
@@ -88,13 +88,14 @@ config KVM_MMU_AUDIT
config KVM_DEVICE_ASSIGNMENT
bool "KVM legacy PCI device assignment support"
depends on KVM && PCI && IOMMU_API
- default y
+ default n
---help---
Provide support for legacy PCI device assignment through KVM. The
kernel now also supports a full featured userspace device driver
- framework through VFIO, which supersedes much of this support.
+ framework through VFIO, which supersedes this support and provides
+ better security.

- If unsure, say Y.
+ If unsure, say N.

# OK, it's a little counter-intuitive to do this, but it puts it neatly under
# the virtualization menu.
--
1.8.3.1


2015-06-04 14:31:24

by Bandan Das

[permalink] [raw]
Subject: Re: [PATCH] kvm: x86: default legacy PCI device assignment support to "n"

Paolo Bonzini <[email protected]> writes:

> VFIO has proved itself a much better option than KVM's built-in
> device assignment. It is mature, provides better isolation because
> it enforces ACS, and even the userspace code is being tested on
> a wider variety of hardware these days than the legacy support.
>
> Disable legacy device assignment by default.

Shouldn't we mark it as Deprecated then ?

Bandan
> Signed-off-by: Paolo Bonzini <[email protected]>
> ---
> arch/x86/kvm/Kconfig | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/kvm/Kconfig b/arch/x86/kvm/Kconfig
> index 413a7bf9efbb..a0f06a5947c5 100644
> --- a/arch/x86/kvm/Kconfig
> +++ b/arch/x86/kvm/Kconfig
> @@ -88,13 +88,14 @@ config KVM_MMU_AUDIT
> config KVM_DEVICE_ASSIGNMENT
> bool "KVM legacy PCI device assignment support"
> depends on KVM && PCI && IOMMU_API
> - default y
> + default n
> ---help---
> Provide support for legacy PCI device assignment through KVM. The
> kernel now also supports a full featured userspace device driver
> - framework through VFIO, which supersedes much of this support.
> + framework through VFIO, which supersedes this support and provides
> + better security.
>
> - If unsure, say Y.
> + If unsure, say N.
>
> # OK, it's a little counter-intuitive to do this, but it puts it neatly under
> # the virtualization menu.

2015-06-04 14:33:29

by Paolo Bonzini

[permalink] [raw]
Subject: Re: [PATCH] kvm: x86: default legacy PCI device assignment support to "n"



On 04/06/2015 16:31, Bandan Das wrote:
> > VFIO has proved itself a much better option than KVM's built-in
> > device assignment. It is mature, provides better isolation because
> > it enforces ACS, and even the userspace code is being tested on
> > a wider variety of hardware these days than the legacy support.
> >
> > Disable legacy device assignment by default.
>
> Shouldn't we mark it as Deprecated then ?

Yes, good idea! You mean just " (DEPRECATED)" after the string, right?

Paolo

2015-06-04 14:47:21

by Alex Williamson

[permalink] [raw]
Subject: Re: [PATCH] kvm: x86: default legacy PCI device assignment support to "n"

On Thu, 2015-06-04 at 16:33 +0200, Paolo Bonzini wrote:
>
> On 04/06/2015 16:31, Bandan Das wrote:
> > > VFIO has proved itself a much better option than KVM's built-in
> > > device assignment. It is mature, provides better isolation because
> > > it enforces ACS, and even the userspace code is being tested on
> > > a wider variety of hardware these days than the legacy support.
> > >
> > > Disable legacy device assignment by default.
> >
> > Shouldn't we mark it as Deprecated then ?
>
> Yes, good idea! You mean just " (DEPRECATED)" after the string, right?

The ioctls should probably also be listed as deprecated in
Documentation/virtual/kvm/api.txt. There's also
Documentation/ABI/obsolete if we intend to remove the code eventually.

2015-06-04 14:48:37

by Bandan Das

[permalink] [raw]
Subject: Re: [PATCH] kvm: x86: default legacy PCI device assignment support to "n"

Paolo Bonzini <[email protected]> writes:

> On 04/06/2015 16:31, Bandan Das wrote:
>> > VFIO has proved itself a much better option than KVM's built-in
>> > device assignment. It is mature, provides better isolation because
>> > it enforces ACS, and even the userspace code is being tested on
>> > a wider variety of hardware these days than the legacy support.
>> >
>> > Disable legacy device assignment by default.
>>
>> Shouldn't we mark it as Deprecated then ?
>
> Yes, good idea! You mean just " (DEPRECATED)" after the string, right?

Yeah, that is what I meant. The "Help" message does mention VFIO as the
newer option. Sometimes, seeing the word "DEPRECATED" makes one rethink if they
really need to enable it.

> Paolo