feedback and questions about SR-IOV feature

This is a multi-part message in MIME format. --------------0682975F456428D8C805DCE3 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Hello, My new 10G NICS support now SR-IOV, and I've played with this new=20 feature as passthrough device, so as to reduce my host CPU consumption. At the origin, I set up a bond on both 10G PF nics. After many configurations, the only way I manage to use a VF into a VM,=20 is to get out of the bond one nic. So does it mean that it is impossible to run a VM with VF with PF=20 attached to a bond? Moreover, something strange happens : during the boot of the VM, the=20 passthrough device gets an dhcp IP on the native vlan of the bond, and=20 once finally up, the real vlan used by this device is on the different=20 predifined vlan. It implies to me to reconfigure the network to ping=20 something on the wanted vlan. Really crazy. Other question is : In which case can it be useful to be able to bond 2=20 VF? UI let us to do so, but it is impossible to add any bridge on that=20 virtual bond. Comparing to a large number of restrictions (migration and others), my=20 opinion is that this feature seems to be very difficult to use in=20 production... --=20 Nathana=C3=ABl Blanchet Supervision r=C3=A9seau P=C3=B4le Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 =09 T=C3=A9l. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr --------------0682975F456428D8C805DCE3 Content-Type: multipart/related; boundary="------------B8DD2DB2DB1405B60856FE1B" --------------B8DD2DB2DB1405B60856FE1B Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <html> <head> <meta http-equiv=3D"content-type" content=3D"text/html; charset=3Dutf= -8"> </head> <body text=3D"#000000" bgcolor=3D"#FFFFFF"> <p>Hello,</p> <p>My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.</p> <p>At the origin, I set up a bond on both 10G PF nics.</p> <p><img src=3D"cid:part1.C1B83326.689D5E56@abes.fr" alt=3D""></p> <p>After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.</p> <p>So does it mean that it is impossible to run a VM with VF with PF attached to a bond?</p> <p>Moreover, something strange happens : during the boot of the VM, the passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.<br> </p> <p>Other question is : In which case can it be useful to be able to bond 2 VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.</p> Comparing to a large number of restrictions (migration and others), my opinion is that this feature seems to be very difficult to use in production...<br> <pre class=3D"moz-signature" cols=3D"72">--=20 Nathana=C3=ABl Blanchet Supervision r=C3=A9seau P=C3=B4le Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 =09 T=C3=A9l. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:blanchet@abes.fr">bl= anchet@abes.fr</a> </pre> </body> </html> --------------B8DD2DB2DB1405B60856FE1B Content-Type: image/png; name="hkbplebiiahmlplc.png" Content-Transfer-Encoding: base64 Content-ID: <part1.C1B83326.689D5E56@abes.fr> Content-Disposition: inline; filename="hkbplebiiahmlplc.png" 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 --------------B8DD2DB2DB1405B60856FE1B-- --------------0682975F456428D8C805DCE3--

On 06/12/16 12:14 +0100, Nathanaël Blanchet wrote:
Hello,
My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.
At the origin, I set up a bond on both 10G PF nics.
After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.
So does it mean that it is impossible to run a VM with VF with PF attached to a bond?
As far as I know, it's not possible to do that. The reason is that the bond normally creates new (logical) interface, what you are doing is assigning "part" of the bond directly to a VM and the driver within VM isn't aware of the bond.
Moreover, something strange happens : during the boot of the VM, the passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.
This could be explained by previous statement: bonding PFs at hypervisor level and then assigning VFs to a VM can most likely cause undefined behavior.
Other question is : In which case can it be useful to be able to bond 2 VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.
At hypervisor level? I believe it doesn't make sense. If you require bond between 2 PFs, you can assign 2 VFs each from different PF to a VM and bond them within the guest.
Comparing to a large number of restrictions (migration and others), my opinion is that this feature seems to be very difficult to use in production...
The use case for SR-IOV is maximum performance at the cost of convenience while still (somewhat) allowing you to scale.
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

Le 06/12/2016 à 13:19, Martin Polednik a écrit :
On 06/12/16 12:14 +0100, Nathanaël Blanchet wrote:
Hello,
My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.
At the origin, I set up a bond on both 10G PF nics.
After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.
So does it mean that it is impossible to run a VM with VF with PF attached to a bond?
As far as I know, it's not possible to do that. The reason is that the bond normally creates new (logical) interface, what you are doing is assigning "part" of the bond directly to a VM and the driver within VM isn't aware of the bond. This is what I supposed, UI should prevent us to create VFfrom when nic is attached to a bond. Pencil icon should'nt appear in this case.
Moreover, something strange happens : during the boot of the VM, the passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.
This could be explained by previous statement: bonding PFs at hypervisor level and then assigning VFs to a VM can most likely cause undefined behavior. The issue is the same when the PF is not attached to a bond, so in an expected working situation.
Other question is : In which case can it be useful to be able to bond 2 VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.
At hypervisor level? I believe it doesn't make sense. I wonder this because UI allows to do it. The same as above, user shouldn't be allowed to bond two VFs, and not allowed to add virtual network to a VF
If you require bond between 2 PFs, you can assign 2 VFs each from different PF to a VM and bond them within the guest.
Comparing to a large number of restrictions (migration and others), my opinion is that this feature seems to be very difficult to use in production...
The use case for SR-IOV is maximum performance at the cost of convenience while still (somewhat) allowing you to scale.
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Nathanaël Blanchet Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr

Hello Nathanael VFs are regular NICs and can be used as regular NICs. We are allowing to create bond from them and allowing to attach logical networks to them, because as long as they are not used by any VM, they can be used just as any other interfaces on the host. When creating bond from 2 VFs you should see the pencil icon, because you want to able to edit the bond. Vf is an interface and you can use it just as you use regular interface on the host. * When you create bond from 2 VFs, this VFs are no longer free and you can't use them to run VM * The same for attaching a network to VF, this VF is no longer considered as free VF. There is no problem about it, this is exactly how it was designed ) , you have to remember that as long as the VFs are not used by VM, they can be used as regular NICs and you can do with them everything you want. http://www.ovirt.org/develop/release-management/features/engine/sr-iov/ Regards, On Tue, Dec 6, 2016 at 4:23 PM, Nathanaël Blanchet <blanchet@abes.fr> wrote:
Le 06/12/2016 à 13:19, Martin Polednik a écrit :
On 06/12/16 12:14 +0100, Nathanaël Blanchet wrote:
Hello,
My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.
At the origin, I set up a bond on both 10G PF nics.
After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.
So does it mean that it is impossible to run a VM with VF with PF attached to a bond?
As far as I know, it's not possible to do that. The reason is that the bond normally creates new (logical) interface, what you are doing is assigning "part" of the bond directly to a VM and the driver within VM isn't aware of the bond.
This is what I supposed, UI should prevent us to create VFfrom when nic is attached to a bond. Pencil icon should'nt appear in this case.
Moreover, something strange happens : during the boot of the VM, the
passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.
This could be explained by previous statement: bonding PFs at hypervisor level and then assigning VFs to a VM can most likely cause undefined behavior.
The issue is the same when the PF is not attached to a bond, so in an expected working situation.
Other question is : In which case can it be useful to be able to bond 2
VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.
At hypervisor level? I believe it doesn't make sense.
I wonder this because UI allows to do it. The same as above, user shouldn't be allowed to bond two VFs, and not allowed to add virtual network to a VF
If you require bond between 2 PFs, you can assign 2 VFs each from different PF to a VM and bond them within the guest.
Comparing to a large number of restrictions (migration and others), my
opinion is that this feature seems to be very difficult to use in production...
The use case for SR-IOV is maximum performance at the cost of convenience while still (somewhat) allowing you to scale.
--
Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Michael Burman RedHat Israel, RHV-M Network QE Mobile: 054-5355725 IRC: mburman

On 06/12/16 16:58 +0200, Michael Burman wrote:
Hello Nathanael
VFs are regular NICs and can be used as regular NICs. We are allowing to create bond from them and allowing to attach logical networks to them, because as long as they are not used by any VM, they can be used just as any other interfaces on the host.
When creating bond from 2 VFs you should see the pencil icon, because you want to able to edit the bond. Vf is an interface and you can use it just as you use regular interface on the host.
* When you create bond from 2 VFs, this VFs are no longer free and you can't use them to run VM * The same for attaching a network to VF, this VF is no longer considered as free VF.
There is no problem about it, this is exactly how it was designed ) , you have to remember that as long as the VFs are not used by VM, they can be used as regular NICs and you can do with them everything you want.
That doesn't mean we have the right design: there is no problem in bonding 2 VFs belonging to 2 different PFs; but every sane software warns you if you try to bond 2 VFs from the same PF together (what do you get by such bond?) -- this applies to both host and guest.
http://www.ovirt.org/develop/release-management/features/engine/sr-iov/
Regards,
On Tue, Dec 6, 2016 at 4:23 PM, Nathanaël Blanchet <blanchet@abes.fr> wrote:
Le 06/12/2016 à 13:19, Martin Polednik a écrit :
On 06/12/16 12:14 +0100, Nathanaël Blanchet wrote:
Hello,
My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.
At the origin, I set up a bond on both 10G PF nics.
After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.
So does it mean that it is impossible to run a VM with VF with PF attached to a bond?
As far as I know, it's not possible to do that. The reason is that the bond normally creates new (logical) interface, what you are doing is assigning "part" of the bond directly to a VM and the driver within VM isn't aware of the bond.
This is what I supposed, UI should prevent us to create VFfrom when nic is attached to a bond. Pencil icon should'nt appear in this case.
Moreover, something strange happens : during the boot of the VM, the
passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.
This could be explained by previous statement: bonding PFs at hypervisor level and then assigning VFs to a VM can most likely cause undefined behavior.
The issue is the same when the PF is not attached to a bond, so in an expected working situation.
Other question is : In which case can it be useful to be able to bond 2
VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.
At hypervisor level? I believe it doesn't make sense.
I wonder this because UI allows to do it. The same as above, user shouldn't be allowed to bond two VFs, and not allowed to add virtual network to a VF
If you require bond between 2 PFs, you can assign 2 VFs each from different PF to a VM and bond them within the guest.
Comparing to a large number of restrictions (migration and others), my
opinion is that this feature seems to be very difficult to use in production...
The use case for SR-IOV is maximum performance at the cost of convenience while still (somewhat) allowing you to scale.
--
Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Michael Burman RedHat Israel, RHV-M Network QE
Mobile: 054-5355725 IRC: mburman

I didn't said it is the right design, i guess that i can get nothing from such bond and you are right, but, This is was long discussed a year ago(maybe more) with network DEV when we planed this feature and it was decided to allow to create bond from VFs. Thanks, On Tue, Dec 6, 2016 at 5:04 PM, Martin Polednik <mpolednik@redhat.com> wrote:
On 06/12/16 16:58 +0200, Michael Burman wrote:
Hello Nathanael
VFs are regular NICs and can be used as regular NICs. We are allowing to create bond from them and allowing to attach logical networks to them, because as long as they are not used by any VM, they can be used just as any other interfaces on the host.
When creating bond from 2 VFs you should see the pencil icon, because you want to able to edit the bond. Vf is an interface and you can use it just as you use regular interface on the host.
* When you create bond from 2 VFs, this VFs are no longer free and you can't use them to run VM * The same for attaching a network to VF, this VF is no longer considered as free VF.
There is no problem about it, this is exactly how it was designed ) , you have to remember that as long as the VFs are not used by VM, they can be used as regular NICs and you can do with them everything you want.
That doesn't mean we have the right design: there is no problem in bonding 2 VFs belonging to 2 different PFs; but every sane software warns you if you try to bond 2 VFs from the same PF together (what do you get by such bond?) -- this applies to both host and guest.
http://www.ovirt.org/develop/release-management/features/engine/sr-iov/
Regards,
On Tue, Dec 6, 2016 at 4:23 PM, Nathanaël Blanchet <blanchet@abes.fr> wrote:
Le 06/12/2016 à 13:19, Martin Polednik a écrit :
On 06/12/16 12:14 +0100, Nathanaël Blanchet wrote:
Hello,
My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.
At the origin, I set up a bond on both 10G PF nics.
After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.
So does it mean that it is impossible to run a VM with VF with PF attached to a bond?
As far as I know, it's not possible to do that. The reason is that the bond normally creates new (logical) interface, what you are doing is assigning "part" of the bond directly to a VM and the driver within VM isn't aware of the bond.
This is what I supposed, UI should prevent us to create VFfrom when nic
is attached to a bond. Pencil icon should'nt appear in this case.
Moreover, something strange happens : during the boot of the VM, the
passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.
This could be explained by previous statement: bonding PFs at hypervisor level and then assigning VFs to a VM can most likely cause undefined behavior.
The issue is the same when the PF is not attached to a bond, so in an expected working situation.
Other question is : In which case can it be useful to be able to bond 2
VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.
At hypervisor level? I believe it doesn't make sense.
I wonder this because UI allows to do it. The same as above, user shouldn't be allowed to bond two VFs, and not allowed to add virtual network to a VF
If you require bond between 2 PFs, you can assign 2 VFs each from
different PF to a VM and bond them within the guest.
Comparing to a large number of restrictions (migration and others), my
opinion is that this feature seems to be very difficult to use in production...
The use case for SR-IOV is maximum performance at the cost of convenience while still (somewhat) allowing you to scale.
--
Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________
Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Michael Burman RedHat Israel, RHV-M Network QE
Mobile: 054-5355725 IRC: mburman
-- Michael Burman RedHat Israel, RHV-M Network QE Mobile: 054-5355725 IRC: mburman

On 06/12/16 15:23 +0100, Nathanaël Blanchet wrote:
Le 06/12/2016 à 13:19, Martin Polednik a écrit :
On 06/12/16 12:14 +0100, Nathanaël Blanchet wrote:
Hello,
My new 10G NICS support now SR-IOV, and I've played with this new feature as passthrough device, so as to reduce my host CPU consumption.
At the origin, I set up a bond on both 10G PF nics.
After many configurations, the only way I manage to use a VF into a VM, is to get out of the bond one nic.
So does it mean that it is impossible to run a VM with VF with PF attached to a bond?
As far as I know, it's not possible to do that. The reason is that the bond normally creates new (logical) interface, what you are doing is assigning "part" of the bond directly to a VM and the driver within VM isn't aware of the bond. This is what I supposed, UI should prevent us to create VFfrom when nic is attached to a bond. Pencil icon should'nt appear in this case.
Agreed.
Moreover, something strange happens : during the boot of the VM, the passthrough device gets an dhcp IP on the native vlan of the bond, and once finally up, the real vlan used by this device is on the different predifined vlan. It implies to me to reconfigure the network to ping something on the wanted vlan. Really crazy.
This could be explained by previous statement: bonding PFs at hypervisor level and then assigning VFs to a VM can most likely cause undefined behavior.
The issue is the same when the PF is not attached to a bond, so in an expected working situation.
Interesting, could be something regarding mac anti-spoofing. I've found something for Mellanox cards (you didn't specify which NIC do you use) - https://community.mellanox.com/docs/DOC-2461 -- could that be the source of your issues?
Other question is : In which case can it be useful to be able to bond 2 VF? UI let us to do so, but it is impossible to add any bridge on that virtual bond.
At hypervisor level? I believe it doesn't make sense.
I wonder this because UI allows to do it. The same as above, user shouldn't be allowed to bond two VFs, and not allowed to add virtual network to a VF
Agreed. (also adding networking people)
If you require bond between 2 PFs, you can assign 2 VFs each from different PF to a VM and bond them within the guest.
Comparing to a large number of restrictions (migration and others), my opinion is that this feature seems to be very difficult to use in production...
The use case for SR-IOV is maximum performance at the cost of convenience while still (somewhat) allowing you to scale.
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
-- Nathanaël Blanchet
Supervision réseau Pôle Infrastrutures Informatiques 227 avenue Professeur-Jean-Louis-Viala 34193 MONTPELLIER CEDEX 5 Tél. 33 (0)4 67 54 84 55 Fax 33 (0)4 67 54 84 14 blanchet@abes.fr
participants (3)
-
Martin Polednik
-
Michael Burman
-
Nathanaël Blanchet