[PATCH V2] Add vfio driver as default for powerkvm systems.

- ppc hotplug does not work with kvm driver, it must be vfio by default. Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm') + # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio' + # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn) -- 1.9.1

Is this patch only for PowerKVM ? or should it be for other PPC distros as well ? On 05/25/2015 01:08 PM, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio' + # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)

Hello Rodrigo, It's only for PowerKVM. On 26-05-2015 01:16, Rodrigo Trujillo wrote:
Is this patch only for PowerKVM ? or should it be for other PPC distros as well ?
On 05/25/2015 01:08 PM, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio' + # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
-- Jose Ricardo Ziviani ----------------------------- Software Engineer Linux Technology Center - IBM

On 25/05/2015 13:08, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio'
What happen if the kernel module for vfio is not loaded?
+ # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)

On 27-05-2015 13:20, Aline Manera wrote:
On 25/05/2015 13:08, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio'
What happen if the kernel module for vfio is not loaded?
This won't happen because vfio is not a kernel module but a feature built in. # grep -i vfio /boot/config-<kernel-version> CONFIG_VFIO_IOMMU_SPAPR_TCE=y CONFIG_VFIO_SPAPR_EEH=y CONFIG_VFIO=y CONFIG_VFIO_PCI=y CONFIG_KVM_VFIO=y
+ # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)
-- Jose Ricardo Ziviani ----------------------------- Software Engineer Linux Technology Center - IBM

On 27/05/2015 13:31, Jose Ricardo Ziviani wrote:
On 27-05-2015 13:20, Aline Manera wrote:
On 25/05/2015 13:08, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio'
What happen if the kernel module for vfio is not loaded?
This won't happen because vfio is not a kernel module but a feature built in.
So why do we have a feature test (FeatureTests.kernel_support_vfio) to verify it?
# grep -i vfio /boot/config-<kernel-version> CONFIG_VFIO_IOMMU_SPAPR_TCE=y CONFIG_VFIO_SPAPR_EEH=y CONFIG_VFIO=y CONFIG_VFIO_PCI=y CONFIG_KVM_VFIO=y
+ # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)

On 27-05-2015 13:33, Aline Manera wrote:
On 27/05/2015 13:31, Jose Ricardo Ziviani wrote:
On 27-05-2015 13:20, Aline Manera wrote:
On 25/05/2015 13:08, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio'
What happen if the kernel module for vfio is not loaded?
This won't happen because vfio is not a kernel module but a feature built in.
So why do we have a feature test (FeatureTests.kernel_support_vfio) to verify it?
Because it's a built in for PowerKVM but a kernel module for other distros.
# grep -i vfio /boot/config-<kernel-version> CONFIG_VFIO_IOMMU_SPAPR_TCE=y CONFIG_VFIO_SPAPR_EEH=y CONFIG_VFIO=y CONFIG_VFIO_PCI=y CONFIG_KVM_VFIO=y
+ # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)
-- Jose Ricardo Ziviani ----------------------------- Software Engineer Linux Technology Center - IBM

On 27/05/2015 13:37, Jose Ricardo Ziviani wrote:
On 27-05-2015 13:33, Aline Manera wrote:
On 27/05/2015 13:31, Jose Ricardo Ziviani wrote:
On 27-05-2015 13:20, Aline Manera wrote:
On 25/05/2015 13:08, Jose Ricardo Ziviani wrote:
- ppc hotplug does not work with kvm driver, it must be vfio by default.
Signed-off-by: Jose Ricardo Ziviani <joserz@linux.vnet.ibm.com> --- src/kimchi/model/vmhostdevs.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/src/kimchi/model/vmhostdevs.py b/src/kimchi/model/vmhostdevs.py index 964ec49..516d48f 100644 --- a/src/kimchi/model/vmhostdevs.py +++ b/src/kimchi/model/vmhostdevs.py @@ -31,6 +31,7 @@ from kimchi.model.utils import get_vm_config_flag from kimchi.model.vms import DOM_STATE_MAP, VMModel from kimchi.rollbackcontext import RollbackContext from kimchi.utils import kimchi_log, run_command +import platform
class VMHostDevsModel(object): @@ -164,6 +165,11 @@ class VMHostDevsModel(object): driver = ('vfio' if DOM_STATE_MAP[dom.info()[0]] == "shutoff" and self.caps.kernel_vfio else 'kvm')
+ # on powerkvm systems it must be vfio driver. + distro, _, _ = platform.linux_distribution() + if distro == 'IBM_PowerKVM': + driver = 'vfio'
What happen if the kernel module for vfio is not loaded?
This won't happen because vfio is not a kernel module but a feature built in.
So why do we have a feature test (FeatureTests.kernel_support_vfio) to verify it?
Because it's a built in for PowerKVM but a kernel module for other distros.
Thanks for the details!
# grep -i vfio /boot/config-<kernel-version> CONFIG_VFIO_IOMMU_SPAPR_TCE=y CONFIG_VFIO_SPAPR_EEH=y CONFIG_VFIO=y CONFIG_VFIO_PCI=y CONFIG_KVM_VFIO=y
+ # Attach all PCI devices in the same IOMMU group dev_model = DeviceModel(conn=self.conn) devs_model = DevicesModel(conn=self.conn)
participants (3)
-
Aline Manera
-
Jose Ricardo Ziviani
-
Rodrigo Trujillo