)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"in placement. For example PF2 can havee plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"In this case the PciPassthroughFilter migth accept the host simply"},{"line_number":25,"context_line":"because PF3 still has available VFs even if the bandwidth from the port"},{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_2258e587","line":24,"range":{"start_line":24,"start_character":38,"end_line":24,"end_character":43},"updated":"2019-03-04 16:14:41.000000000","message":"might","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":21,"context_line":"in placement. For example PF2 can havee plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"In this case the PciPassthroughFilter migth accept the host simply"},{"line_number":25,"context_line":"because PF3 still has available VFs even if the bandwidth from the port"},{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_595cca4b","line":24,"range":{"start_line":24,"start_character":38,"end_line":24,"end_character":43},"in_reply_to":"9fdfeff1_2258e587","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Moreover the pci claim has the same logic as the Filter so it will claim"},{"line_number":30,"context_line":"the VF from PF3 while the bandwidth was allocated from PF2 in placement."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This patch does not try to solve the issue in the PciPassthroughFilter but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_02512162","line":29,"range":{"start_line":29,"start_character":13,"end_line":29,"end_character":16},"updated":"2019-03-04 16:14:41.000000000","message":"PCI","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Moreover the pci claim has the same logic as the Filter so it will claim"},{"line_number":30,"context_line":"the VF from PF3 while the bandwidth was allocated from PF2 in placement."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This patch does not try to solve the issue in the PciPassthroughFilter but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_a24b75ae","line":29,"range":{"start_line":29,"start_character":49,"end_line":29,"end_character":55},"updated":"2019-03-04 16:14:41.000000000","message":"filter","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Moreover the pci claim has the same logic as the Filter so it will claim"},{"line_number":30,"context_line":"the VF from PF3 while the bandwidth was allocated from PF2 in placement."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This patch does not try to solve the issue in the PciPassthroughFilter but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_1956422c","line":29,"range":{"start_line":29,"start_character":13,"end_line":29,"end_character":16},"in_reply_to":"9fdfeff1_02512162","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Moreover the pci claim has the same logic as the Filter so it will claim"},{"line_number":30,"context_line":"the VF from PF3 while the bandwidth was allocated from PF2 in placement."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"This patch does not try to solve the issue in the PciPassthroughFilter but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_d92d1aaf","line":29,"range":{"start_line":29,"start_character":49,"end_line":29,"end_character":55},"in_reply_to":"9fdfeff1_a24b75ae","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"from where the bandwidth was allocated from based on the name of the"},{"line_number":53,"context_line":"device RP. Then the pci claim will enforce that the PF interface"},{"line_number":54,"context_line":"name in the request matches the interface name of the PF from where"},{"line_number":55,"context_line":"the VF is selected from. The pci claim code knows about the PF"},{"line_number":56,"context_line":"interface name of each available VF based on the value of the"},{"line_number":57,"context_line":"``pf_interface_name`` tag in the pci/passthrough_whitelist config"},{"line_number":58,"context_line":"option introduced in the previous patch."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"I know that this feels complicated but it is necessary becase VFs has"},{"line_number":61,"context_line":"not been counted as resources in placement yet."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_426c0906","line":58,"range":{"start_line":55,"start_character":25,"end_line":58,"end_character":40},"updated":"2019-03-04 16:14:41.000000000","message":"Maybe worth noting that we don\u0027t need to do anything here since the PCI manager will match any and all tags defined, no modifications necessary","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":52,"context_line":"from where the bandwidth was allocated from based on the name of the"},{"line_number":53,"context_line":"device RP. Then the pci claim will enforce that the PF interface"},{"line_number":54,"context_line":"name in the request matches the interface name of the PF from where"},{"line_number":55,"context_line":"the VF is selected from. The pci claim code knows about the PF"},{"line_number":56,"context_line":"interface name of each available VF based on the value of the"},{"line_number":57,"context_line":"``pf_interface_name`` tag in the pci/passthrough_whitelist config"},{"line_number":58,"context_line":"option introduced in the previous patch."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"I know that this feels complicated but it is necessary becase VFs has"},{"line_number":61,"context_line":"not been counted as resources in placement yet."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":37,"id":"9fdfeff1_f91b3e7d","line":58,"range":{"start_line":55,"start_character":25,"end_line":58,"end_character":40},"in_reply_to":"9fdfeff1_426c0906","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"0cc0eb17c481e013711b81c4b5427a3bf5cef8d4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ensure that bandwidth and VF are from the same PF"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A neutron port can be created with direct vnic type and also it can have"},{"line_number":10,"context_line":"bandwidth resource request at the same time. In this case placement will"},{"line_number":11,"context_line":"offer allocation candidates that could fulfill the bandwidth request, then"},{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_3fed33f0","line":10,"updated":"2019-03-04 19:38:18.000000000","message":"nit: neutron port with vnic type macvtap would also need to be corraleted in the same way as vnic type direct ports.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Ensure that bandwidth and VF are from the same PF"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A neutron port can be created with direct vnic type and also it can have"},{"line_number":10,"context_line":"bandwidth resource request at the same time. In this case placement will"},{"line_number":11,"context_line":"offer allocation candidates that could fulfill the bandwidth request, then"},{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_9d169d49","line":10,"in_reply_to":"9fdfeff1_3fed33f0","updated":"2019-03-05 11:51:24.000000000","message":"I have very little knowledge about macvtap, do we have some functional test that verifies macvtap usage? I can build tests based on those to see if macvtap works or not.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":10,"context_line":"bandwidth resource request at the same time. In this case placement will"},{"line_number":11,"context_line":"offer allocation candidates that could fulfill the bandwidth request, then"},{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"},{"line_number":14,"context_line":"of the neutron port and the physical_network tag in the"},{"line_number":15,"context_line":"pci/passthrough_whitelist config. But it does not consider that which PF"},{"line_number":16,"context_line":"provides the bandwidth."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_94e8cbb3","line":13,"range":{"start_line":13,"start_character":45,"end_line":13,"end_character":49},"updated":"2019-03-04 16:14:41.000000000","message":"nit: drop","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":10,"context_line":"bandwidth resource request at the same time. In this case placement will"},{"line_number":11,"context_line":"offer allocation candidates that could fulfill the bandwidth request, then"},{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"},{"line_number":14,"context_line":"of the neutron port and the physical_network tag in the"},{"line_number":15,"context_line":"pci/passthrough_whitelist config. But it does not consider that which PF"},{"line_number":16,"context_line":"provides the bandwidth."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_1d24edae","line":13,"range":{"start_line":13,"start_character":45,"end_line":13,"end_character":49},"in_reply_to":"9fdfeff1_94e8cbb3","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"},{"line_number":14,"context_line":"of the neutron port and the physical_network tag in the"},{"line_number":15,"context_line":"pci/passthrough_whitelist config. But it does not consider that which PF"},{"line_number":16,"context_line":"provides the bandwidth."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_54f343a0","line":15,"range":{"start_line":15,"start_character":50,"end_line":15,"end_character":72},"updated":"2019-03-04 16:14:41.000000000","message":"consider the actual PF","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"},{"line_number":14,"context_line":"of the neutron port and the physical_network tag in the"},{"line_number":15,"context_line":"pci/passthrough_whitelist config. But it does not consider that which PF"},{"line_number":16,"context_line":"provides the bandwidth."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_9401ab6d","line":15,"range":{"start_line":15,"start_character":34,"end_line":15,"end_character":39},"updated":"2019-03-04 16:14:41.000000000","message":"nit: Drop","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"},{"line_number":14,"context_line":"of the neutron port and the physical_network tag in the"},{"line_number":15,"context_line":"pci/passthrough_whitelist config. But it does not consider that which PF"},{"line_number":16,"context_line":"provides the bandwidth."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_9d445d49","line":15,"range":{"start_line":15,"start_character":50,"end_line":15,"end_character":72},"in_reply_to":"9fdfeff1_54f343a0","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":12,"context_line":"the nova scheduler\u0027s PciPassthroughFilter checks if a PCI device, a VF,"},{"line_number":13,"context_line":"is available for such request. This check is only based on the physnet"},{"line_number":14,"context_line":"of the neutron port and the physical_network tag in the"},{"line_number":15,"context_line":"pci/passthrough_whitelist config. But it does not consider that which PF"},{"line_number":16,"context_line":"provides the bandwidth."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_3d73f1b6","line":15,"range":{"start_line":15,"start_character":34,"end_line":15,"end_character":39},"in_reply_to":"9fdfeff1_9401ab6d","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":16,"context_line":"provides the bandwidth."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"},{"line_number":19,"context_line":"whitelisted VFs from more than one PFs which are connected to the same"},{"line_number":20,"context_line":"physnet. This two PFs can have totally different bandwidth inventories"},{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_14edbbb6","line":19,"range":{"start_line":19,"start_character":35,"end_line":19,"end_character":38},"updated":"2019-03-04 16:14:41.000000000","message":"PF","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":16,"context_line":"provides the bandwidth."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"},{"line_number":19,"context_line":"whitelisted VFs from more than one PFs which are connected to the same"},{"line_number":20,"context_line":"physnet. This two PFs can have totally different bandwidth inventories"},{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_5d78358e","line":19,"range":{"start_line":19,"start_character":35,"end_line":19,"end_character":38},"in_reply_to":"9fdfeff1_14edbbb6","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"},{"line_number":19,"context_line":"whitelisted VFs from more than one PFs which are connected to the same"},{"line_number":20,"context_line":"physnet. This two PFs can have totally different bandwidth inventories"},{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_d42c1303","line":20,"range":{"start_line":20,"start_character":9,"end_line":20,"end_character":17},"updated":"2019-03-04 16:14:41.000000000","message":"nit: These","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"},{"line_number":19,"context_line":"whitelisted VFs from more than one PFs which are connected to the same"},{"line_number":20,"context_line":"physnet. This two PFs can have totally different bandwidth inventories"},{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_5fea77d8","line":20,"updated":"2019-03-04 19:38:18.000000000","message":"nit: can? they should always have different RP if they have bandwith inventories associated with the pf. i think when we model VF in placement we will always need to create a RP per PF if it has VFs.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The currently unsupported case is when a single compute node has"},{"line_number":19,"context_line":"whitelisted VFs from more than one PFs which are connected to the same"},{"line_number":20,"context_line":"physnet. This two PFs can have totally different bandwidth inventories"},{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_7d6099d0","line":20,"in_reply_to":"9fdfeff1_5fea77d8","updated":"2019-03-05 11:51:24.000000000","message":"They will have different RPs but what is important here is that they can have different amount of available bandwidth in their inventories.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"In this case the PciPassthroughFilter migth accept the host simply"},{"line_number":25,"context_line":"because PF3 still has available VFs even if the bandwidth from the port"},{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_b4d94f29","line":24,"range":{"start_line":24,"start_character":38,"end_line":24,"end_character":43},"updated":"2019-03-04 16:14:41.000000000","message":"might","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":21,"context_line":"in placement. For example PF2 can have plenty of bandwidth available"},{"line_number":22,"context_line":"and PF3 has no bandwidth configured at all."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"In this case the PciPassthroughFilter migth accept the host simply"},{"line_number":25,"context_line":"because PF3 still has available VFs even if the bandwidth from the port"},{"line_number":26,"context_line":"is fulfilled from PF2 which in return might not have available VFs any"},{"line_number":27,"context_line":"more."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_9d5d3d17","line":24,"range":{"start_line":24,"start_character":38,"end_line":24,"end_character":43},"in_reply_to":"9fdfeff1_b4d94f29","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":33,"context_line":"it does solves the issue in the pci claim. This means that after"},{"line_number":34,"context_line":"successful scheduling the pci claim can still fail if bandwidth is"},{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_ffb80be9","line":36,"updated":"2019-03-04 19:38:18.000000000","message":"in train we should aim to do the claim in the conductor and also model the vf in placement but i think this is fine for now as it is the same as when we reshculder for numa features like cpu pinning.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":33,"context_line":"it does solves the issue in the pci claim. This means that after"},{"line_number":34,"context_line":"successful scheduling the pci claim can still fail if bandwidth is"},{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_fda1e9f8","line":36,"in_reply_to":"9fdfeff1_ffb80be9","updated":"2019-03-05 11:51:24.000000000","message":"If somebody volunteers to work on moving the VF resource to placement then I\u0027m happy to joint to that work.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"},{"line_number":40,"context_line":"  all"},{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_3469df25","line":43,"range":{"start_line":38,"start_character":0,"end_line":43,"end_character":61},"updated":"2019-03-04 16:14:41.000000000","message":"I guess we\u0027re going to need to do something like we do for the NUMA stuff, where we store the a representation of the node in the HostState object. That\u0027s a future problem though","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"880f305de6283a62e0dd1f90819b7d9eb4357d0e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"},{"line_number":40,"context_line":"  all"},{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_8bf2e9e2","line":43,"range":{"start_line":38,"start_character":0,"end_line":43,"end_character":61},"in_reply_to":"9fdfeff1_3469df25","updated":"2019-03-04 17:05:31.000000000","message":"We have the exact same concern for NUMA affinity with VGPUs indeed...","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"},{"line_number":40,"context_line":"  all"},{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_dd91859c","line":43,"range":{"start_line":38,"start_character":0,"end_line":43,"end_character":61},"in_reply_to":"9fdfeff1_8bf2e9e2","updated":"2019-03-05 11:51:24.000000000","message":"I think the proper fix is to move the VF resource management from the resource tracker to placement. That way the whole PF RP selection will be consistently handled by the placement a_c codepath. It will be a big work.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c1f2f5a9e559b05badeef447f0661d9a70fa290b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"},{"line_number":40,"context_line":"  all"},{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_acd7b1c0","line":43,"range":{"start_line":38,"start_character":0,"end_line":43,"end_character":61},"in_reply_to":"9fdfeff1_b1694a27","updated":"2019-03-05 13:13:04.000000000","message":"Yeah, let\u0027s call it as a future improvement. :)","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bdc34dd61ee0e8419bb3040ac091658a8c78dca4","unresolved":false,"context_lines":[{"line_number":35,"context_line":"allocated from one PF but a VF is not available from that specific PF"},{"line_number":36,"context_line":"any more. This will lead to re-schedule."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Making the PciPassthroughFilter smart enough is complicated because:"},{"line_number":39,"context_line":"* The filters are not knowing about placement allocation candidates at"},{"line_number":40,"context_line":"  all"},{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_b1694a27","line":43,"range":{"start_line":38,"start_character":0,"end_line":43,"end_character":61},"in_reply_to":"9fdfeff1_dd91859c","updated":"2019-03-05 12:49:18.000000000","message":"well we cant move it but we can replicated it.\nthe vf select will still need to be done by the resouce track but the vf pool will be selected by placement.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"e1d3f458f1eb1a6c42a883804e04f33977246562","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The compute manager checks the InstancePCIRequest ovos in a given"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_8fb756f6","line":44,"updated":"2019-03-04 16:22:26.000000000","message":"If we decide to go with checking on the pci_claim method, we need to make sure that we have a good compute version when moving or we wouldn\u0027t check it.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8c736c85df01f28a0e5eb996bb87f7d8f02044a1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The compute manager checks the InstancePCIRequest ovos in a given"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_cbcd51b8","line":44,"in_reply_to":"9fdfeff1_8fb756f6","updated":"2019-03-04 16:47:27.000000000","message":"Currently placement will prevent booting the VM on a compute where there is no bandwidth inventory. If the neutron agent is configured to report bandwidth but the nova virt driver does not support the extra pci key then the boot will fail as the InstancePCIRequest will request the missing key. I will document it.\n\nIf we are targeting old nova-compute then the boot will succeed as InstancePCIRequest is updated in the compute/manager to request the new key. However I assume that the deployer will configure bandwidth in the neutron agent on the compute _after_ the nova-compute also upgraded. I will document this too.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"3ae5244bf45f6442441bfd937ddfc9808e915540","unresolved":false,"context_lines":[{"line_number":41,"context_line":"* The filters are working per compute host not per allocation"},{"line_number":42,"context_line":"  candidates. If there are two allocation candidates for the same host"},{"line_number":43,"context_line":"  then nova will only try to filter for the first one. [1][2]"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"This patch applies the following logic:"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"The compute manager checks the InstancePCIRequest ovos in a given"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_ab7a4d74","line":44,"in_reply_to":"9fdfeff1_8fb756f6","updated":"2019-03-04 16:44:11.000000000","message":"OKay, after a few talks on IRC, here is what we decided : leave the fact to have neutron agent and nova-compute be upgraded at the same time (or at least making sure of both be upgraded before using the config options) for this release, and see how we can provide a capability as trait in Train.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"880f305de6283a62e0dd1f90819b7d9eb4357d0e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the VF is selected from. The pci claim code knows about the PF"},{"line_number":56,"context_line":"interface name of each available VF from the virt driver reporting the"},{"line_number":57,"context_line":"\u0027pf_interface_name\u0027 key as part of the return value of the"},{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_ebb855e9","line":58,"updated":"2019-03-04 17:05:31.000000000","message":"that makes the code very libvirt-specific but I\u0027m okay with that provided we document it.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":55,"context_line":"the VF is selected from. The pci claim code knows about the PF"},{"line_number":56,"context_line":"interface name of each available VF from the virt driver reporting the"},{"line_number":57,"context_line":"\u0027pf_interface_name\u0027 key as part of the return value of the"},{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_ddd66554","line":58,"in_reply_to":"9fdfeff1_ebb855e9","updated":"2019-03-05 11:51:24.000000000","message":"I will document it. This is the trade of between a passthrough_whitelist tag based solution. The config based solution could be driver independent, the current driver dependent solution in the other hand does not need any extra configuration.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":56,"context_line":"interface name of each available VF from the virt driver reporting the"},{"line_number":57,"context_line":"\u0027pf_interface_name\u0027 key as part of the return value of the"},{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"},{"line_number":62,"context_line":"support SRIOV VF handling but this patch does not extend the xenapi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_1fbe2fd4","line":59,"updated":"2019-03-04 19:38:18.000000000","message":"well the same mechanium can be implemeted in other virt drivers.\ncurrently to use neutron sriov ports you are reuired to run the neutron sriov_nic_agent. the sriov nic agent pysical_device_mapppings and exclude_devices config options https://github.com/openstack/neutron/blob/master/neutron/conf/plugins/ml2/drivers/mech_sriov/agent_common.py#L25-L45\n require the opertat to specify the netdev names of pfs and internally translates them into pci adresses. as such for the sriov nic agent to work it needs to be able to to the same traslation that gibi is extending the libvirt dirver to do so it should be posibly to do the same for the xenapi driver in princibl assuming the compute agent is running in dom0 along side the sriov_nic_agent.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c1f2f5a9e559b05badeef447f0661d9a70fa290b","unresolved":false,"context_lines":[{"line_number":56,"context_line":"interface name of each available VF from the virt driver reporting the"},{"line_number":57,"context_line":"\u0027pf_interface_name\u0027 key as part of the return value of the"},{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"},{"line_number":62,"context_line":"support SRIOV VF handling but this patch does not extend the xenapi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_ccfd553c","line":59,"in_reply_to":"9fdfeff1_115e1676","updated":"2019-03-05 13:13:04.000000000","message":"I\u0027m not confident to throw something into the xenapi that I cannot test even if it feels simple.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":56,"context_line":"interface name of each available VF from the virt driver reporting the"},{"line_number":57,"context_line":"\u0027pf_interface_name\u0027 key as part of the return value of the"},{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"},{"line_number":62,"context_line":"support SRIOV VF handling but this patch does not extend the xenapi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_3dcf71b4","line":59,"in_reply_to":"9fdfeff1_1fbe2fd4","updated":"2019-03-05 11:51:24.000000000","message":"I will leave the xenapi driver work for the future and for others knowing the xenapi driver more.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bdc34dd61ee0e8419bb3040ac091658a8c78dca4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"interface name of each available VF from the virt driver reporting the"},{"line_number":57,"context_line":"\u0027pf_interface_name\u0027 key as part of the return value of the"},{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"},{"line_number":62,"context_line":"support SRIOV VF handling but this patch does not extend the xenapi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_115e1676","line":59,"in_reply_to":"9fdfeff1_3dcf71b4","updated":"2019-03-05 12:49:18.000000000","message":"yep this was more a responce to sylvains comment above regerding this been libvirt specific.\n\nyou have not implemented the xenapi support but in princeipal you shoudl be able to use teh same general mechanisium","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"},{"line_number":62,"context_line":"support SRIOV VF handling but this patch does not extend the xenapi"},{"line_number":63,"context_line":"driver. So for the xenapi the above described configuration currently"},{"line_number":64,"context_line":"kept unsupported."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_945d2b7b","line":61,"range":{"start_line":61,"start_character":5,"end_line":61,"end_character":15},"updated":"2019-03-04 16:14:41.000000000","message":"information","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":58,"context_line":"get_available_resource() driver call."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The current patch extends the libvirt driver to provider PF interface"},{"line_number":61,"context_line":"name informaton. Besides the libvirt driver the xenapi driver also"},{"line_number":62,"context_line":"support SRIOV VF handling but this patch does not extend the xenapi"},{"line_number":63,"context_line":"driver. So for the xenapi the above described configuration currently"},{"line_number":64,"context_line":"kept unsupported."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"9fdfeff1_fdc809a9","line":61,"range":{"start_line":61,"start_character":5,"end_line":61,"end_character":15},"in_reply_to":"9fdfeff1_945d2b7b","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"}],"nova/compute/manager.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"        if (request_spec"},{"line_number":2108,"context_line":"                and \u0027requested_resources\u0027 in request_spec"},{"line_number":2109,"context_line":"                and request_spec.requested_resources is not None):"},{"line_number":2110,"context_line":""},{"line_number":2111,"context_line":"            return {"},{"line_number":2112,"context_line":"                group.requester_id: group.provider_uuids"},{"line_number":2113,"context_line":"                for group in request_spec.requested_resources"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_94d20bd1","line":2110,"updated":"2019-03-04 16:14:41.000000000","message":"nit: unrelated","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2107,"context_line":"        if (request_spec"},{"line_number":2108,"context_line":"                and \u0027requested_resources\u0027 in request_spec"},{"line_number":2109,"context_line":"                and request_spec.requested_resources is not None):"},{"line_number":2110,"context_line":""},{"line_number":2111,"context_line":"            return {"},{"line_number":2112,"context_line":"                group.requester_id: group.provider_uuids"},{"line_number":2113,"context_line":"                for group in request_spec.requested_resources"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_fd3d698e","line":2110,"in_reply_to":"9fdfeff1_94d20bd1","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"880f305de6283a62e0dd1f90819b7d9eb4357d0e","unresolved":false,"context_lines":[{"line_number":2117,"context_line":""},{"line_number":2118,"context_line":"    def _update_pci_request_spec_with_allocated_interface_name("},{"line_number":2119,"context_line":"            self, context, instance, request_group_resource_providers_mapping):"},{"line_number":2120,"context_line":"        if not instance.pci_requests:"},{"line_number":2121,"context_line":"            return"},{"line_number":2122,"context_line":""},{"line_number":2123,"context_line":"        def needs_update(pci_request, mapping):"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_6b7a2526","line":2120,"updated":"2019-03-04 17:05:31.000000000","message":"nit: I\u0027d prefer to have this conditional out of this method and rather as a second check in L2207 as for the moment request groups are only for this feature. Meh tho.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2117,"context_line":""},{"line_number":2118,"context_line":"    def _update_pci_request_spec_with_allocated_interface_name("},{"line_number":2119,"context_line":"            self, context, instance, request_group_resource_providers_mapping):"},{"line_number":2120,"context_line":"        if not instance.pci_requests:"},{"line_number":2121,"context_line":"            return"},{"line_number":2122,"context_line":""},{"line_number":2123,"context_line":"        def needs_update(pci_request, mapping):"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_5d07d5ca","line":2120,"in_reply_to":"9fdfeff1_6b7a2526","updated":"2019-03-05 11:51:24.000000000","message":"I\u0027m not fully get why you wanted to move this condition. The _update_pci_request_spec_with_allocated_interface_name() method encapsulated the work related to pci_requests hence the pci_requests related condition is inside of this function.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"880f305de6283a62e0dd1f90819b7d9eb4357d0e","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2144,"context_line":"                        reason\u003dreason)"},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"                dev_rp \u003d self.reportclient._get_resource_provider("},{"line_number":2147,"context_line":"                    context,"},{"line_number":2148,"context_line":"                    provider_uuids[0])"},{"line_number":2149,"context_line":"                if not dev_rp:"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_ab31ed5b","line":2146,"updated":"2019-03-04 17:05:31.000000000","message":"yaaaaay another upcall to Placement...","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2144,"context_line":"                        reason\u003dreason)"},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"                dev_rp \u003d self.reportclient._get_resource_provider("},{"line_number":2147,"context_line":"                    context,"},{"line_number":2148,"context_line":"                    provider_uuids[0])"},{"line_number":2149,"context_line":"                if not dev_rp:"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_fd0b29d2","line":2146,"in_reply_to":"9fdfeff1_0e4fe76a","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2881bea21574b047defd00b5f7adee8385fd1d9d","unresolved":false,"context_lines":[{"line_number":2143,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2144,"context_line":"                        reason\u003dreason)"},{"line_number":2145,"context_line":""},{"line_number":2146,"context_line":"                dev_rp \u003d self.reportclient._get_resource_provider("},{"line_number":2147,"context_line":"                    context,"},{"line_number":2148,"context_line":"                    provider_uuids[0])"},{"line_number":2149,"context_line":"                if not dev_rp:"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_0e4fe76a","line":2146,"in_reply_to":"9fdfeff1_ab31ed5b","updated":"2019-03-04 17:15:45.000000000","message":"Let me try to use the ProviderTree cache from the reportclient instead of a separate placement call.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"880f305de6283a62e0dd1f90819b7d9eb4357d0e","unresolved":false,"context_lines":[{"line_number":2157,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2158,"context_line":"                        reason\u003dreason)"},{"line_number":2159,"context_line":""},{"line_number":2160,"context_line":"                dev_rp_name \u003d dev_rp[\u0027name\u0027]"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_8b38a93b","line":2160,"updated":"2019-03-04 17:05:31.000000000","message":".... and just for a lookup while we have the ProviderTree in the libvirt driver...","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2157,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2158,"context_line":"                        reason\u003dreason)"},{"line_number":2159,"context_line":""},{"line_number":2160,"context_line":"                dev_rp_name \u003d dev_rp[\u0027name\u0027]"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_1d114d05","line":2160,"in_reply_to":"9fdfeff1_8b38a93b","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":2160,"context_line":"                dev_rp_name \u003d dev_rp[\u0027name\u0027]"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2164,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2165,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2166,"context_line":"                    reason \u003d ("}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_7fe3bb07","line":2163,"updated":"2019-03-04 19:38:18.000000000","message":"its technicall allowable for a pf to be used by ovs and the vf be managed by sriov.\n\ne.g. the bandwith can be shared between both ovs and sriov.\nim not sure this nameing scheme caters for that properly so this is likely\nan oversigth that will need to be changed in trian.\nideally this would not contain the agentname.\n\nyou could work around this by using the neturon config to list\nthe interface twice and reserve capasity such that you can share the bandwith\nbetween ovs and sriov  but in its current form im not sure how you will know the agent name as there is currently nothing that would allow you to determin that in the neutron port. if i can get https://review.openstack.org/#/c/635083/ to work then it shoudl help in that respect in the future.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2160,"context_line":"                dev_rp_name \u003d dev_rp[\u0027name\u0027]"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2164,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2165,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2166,"context_line":"                    reason \u003d ("}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_ddc98579","line":2163,"in_reply_to":"9fdfeff1_7fe3bb07","updated":"2019-03-05 11:51:24.000000000","message":"In the above described situation I assume that there will a an RP for the ovs bridge with bandwidth inventory, and there will be and RP for the PF with a bandwidth inventory. If the OVS bridge is configured to use the same PF then the admin needs to take care to split up the configured bandwidth of the PF between the OVS brigde RP and the PF RP. This might be suboptimal for bandwidth usage perspective but this is what can work today. As there will be two RPs the naming schema will not be a problem.\n\nBtw, in the above configuration how does the dataplane enforcement of the minimum bandwidth will work? how does the two agents handling the same PF will cooperate?","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c1f2f5a9e559b05badeef447f0661d9a70fa290b","unresolved":false,"context_lines":[{"line_number":2160,"context_line":"                dev_rp_name \u003d dev_rp[\u0027name\u0027]"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2164,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2165,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2166,"context_line":"                    reason \u003d ("}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_0cba7d6d","line":2163,"in_reply_to":"9fdfeff1_ac47b11e","updated":"2019-03-05 13:13:04.000000000","message":"the ovs minimum enforcement has been merged [1]\n\n[1] https://review.openstack.org/#/c/406841/","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bdc34dd61ee0e8419bb3040ac091658a8c78dca4","unresolved":false,"context_lines":[{"line_number":2160,"context_line":"                dev_rp_name \u003d dev_rp[\u0027name\u0027]"},{"line_number":2161,"context_line":""},{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2164,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2165,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2166,"context_line":"                    reason \u003d ("}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_ac47b11e","line":2163,"in_reply_to":"9fdfeff1_ddc98579","updated":"2019-03-05 12:49:18.000000000","message":"i dont know that it will work correctly.\ntoday ovs will not enforce minium bandwith\nand we would be relying on nova/placment to prevent the oversubsription.\n\nand teh sriov agent woudl configruer the minium bandwith for the vf.\ni guess the admin could manually set up a minum bandwith policy on the pf by hand.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"880f305de6283a62e0dd1f90819b7d9eb4357d0e","unresolved":false,"context_lines":[{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2164,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2165,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2166,"context_line":"                    reason \u003d ("},{"line_number":2167,"context_line":"                        \u0027Resource provider %(provider)s used to allocate \u0027"},{"line_number":2168,"context_line":"                        \u0027resources for the pci request %(requester)s does not \u0027"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_eb75b501","line":2165,"updated":"2019-03-04 17:05:31.000000000","message":"I\u0027m a bit afraid of this convention be just an implementation detail instead of a global regex as a main attribute, but meh.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2162,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2163,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2164,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2165,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2166,"context_line":"                    reason \u003d ("},{"line_number":2167,"context_line":"                        \u0027Resource provider %(provider)s used to allocate \u0027"},{"line_number":2168,"context_line":"                        \u0027resources for the pci request %(requester)s does not \u0027"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_9dc3fd57","line":2165,"in_reply_to":"9fdfeff1_eb75b501","updated":"2019-03-05 11:51:24.000000000","message":"ugly implementation detail I agree. RP does not have metadata so we have to encode information into the name. :/\nI can change this to a regex but that would only change the implementation detail and not the fact that we are encoding structured information in names.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":2175,"context_line":"                        reason\u003dreason)"},{"line_number":2176,"context_line":""},{"line_number":2177,"context_line":"                for spec in pci_request.spec:"},{"line_number":2178,"context_line":"                    spec[\u0027pf_interface_name\u0027] \u003d rp_name_pieces[2]"},{"line_number":2179,"context_line":"                    modified \u003d True"},{"line_number":2180,"context_line":"        if modified:"},{"line_number":2181,"context_line":"            instance.save()"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_14a5bb47","line":2178,"range":{"start_line":2178,"start_character":21,"end_line":2178,"end_character":65},"updated":"2019-03-04 16:14:41.000000000","message":"OK, so we\u0027re still using tags","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":2175,"context_line":"                        reason\u003dreason)"},{"line_number":2176,"context_line":""},{"line_number":2177,"context_line":"                for spec in pci_request.spec:"},{"line_number":2178,"context_line":"                    spec[\u0027pf_interface_name\u0027] \u003d rp_name_pieces[2]"},{"line_number":2179,"context_line":"                    modified \u003d True"},{"line_number":2180,"context_line":"        if modified:"},{"line_number":2181,"context_line":"            instance.save()"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_9fe0dffa","line":2178,"updated":"2019-03-04 19:38:18.000000000","message":"ya i think using tags is fine once its automated. ideally we would traslate these into traits in the future once PFs RPs are modeled in placment with VF inventories and bandwith inventres in the same RP.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db47ef0ae0adc568ad1c07186909940f0e3075c6","unresolved":false,"context_lines":[{"line_number":2175,"context_line":"                        reason\u003dreason)"},{"line_number":2176,"context_line":""},{"line_number":2177,"context_line":"                for spec in pci_request.spec:"},{"line_number":2178,"context_line":"                    spec[\u0027pf_interface_name\u0027] \u003d rp_name_pieces[2]"},{"line_number":2179,"context_line":"                    modified \u003d True"},{"line_number":2180,"context_line":"        if modified:"},{"line_number":2181,"context_line":"            instance.save()"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_6b24650f","line":2178,"range":{"start_line":2178,"start_character":21,"end_line":2178,"end_character":65},"in_reply_to":"9fdfeff1_14a5bb47","updated":"2019-03-04 17:03:16.000000000","message":"Yes but both sides are automated:\n* The request of the tag created here\n* The tag is added to the PCI pools in the pci.stats.py based on the info from the libvirt driver\n\nSo the pci claim code will select only pools that are matching with the request.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":2175,"context_line":"                        reason\u003dreason)"},{"line_number":2176,"context_line":""},{"line_number":2177,"context_line":"                for spec in pci_request.spec:"},{"line_number":2178,"context_line":"                    spec[\u0027pf_interface_name\u0027] \u003d rp_name_pieces[2]"},{"line_number":2179,"context_line":"                    modified \u003d True"},{"line_number":2180,"context_line":"        if modified:"},{"line_number":2181,"context_line":"            instance.save()"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_fd424968","line":2178,"in_reply_to":"9fdfeff1_9fe0dffa","updated":"2019-03-05 11:51:24.000000000","message":"I agree about traits. Also I did the rename of the tag suggested by Stephen.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":2153,"context_line":"                        \u0027found in Placement.\u0027 %"},{"line_number":2154,"context_line":"                        {\u0027provider\u0027: provider_uuids[0],"},{"line_number":2155,"context_line":"                         \u0027requester\u0027: pci_request.requester_id})"},{"line_number":2156,"context_line":"                    raise exception.BuildAbortException("},{"line_number":2157,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2158,"context_line":"                        reason\u003dreason)"},{"line_number":2159,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_375f8a76","line":2156,"updated":"2019-03-05 14:09:01.000000000","message":"okay, here you raise an exception...","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1a14572c07622fb15daa1a1f13bdac60ca7ede87","unresolved":false,"context_lines":[{"line_number":2157,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2158,"context_line":"                        reason\u003dreason)"},{"line_number":2159,"context_line":""},{"line_number":2160,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2161,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2162,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2163,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2164,"context_line":"                    reason \u003d ("}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_77c2f236","line":2161,"range":{"start_line":2160,"start_character":16,"end_line":2161,"end_character":72},"updated":"2019-03-05 13:49:54.000000000","message":"as discussed on irc we have no way to determin the agent name today so for stien using bandwith based schudling means\nyou cannot share teh pf between ovs and sriov agents.\n\nthis is resonably common use the FDB agent extention to both provide dhcp/routing to the sriov devices when using dvr without having to hit the top of rack switch.\n\nfor stien we will simply need to declare that this usecase is out of scope and state that only one agent may manage bandwith fo a singel interface. we shoudl put that in the docs somewere but that can be in a follow up patch.","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a470ec9bcfc7f161f7d15821d553711beb182763","unresolved":false,"context_lines":[{"line_number":2157,"context_line":"                        instance_uuid\u003dinstance.uuid,"},{"line_number":2158,"context_line":"                        reason\u003dreason)"},{"line_number":2159,"context_line":""},{"line_number":2160,"context_line":"                # NOTE(gibi): the device RP name reported by neutron is"},{"line_number":2161,"context_line":"                # structured like \u003chostname\u003e:\u003cagentname\u003e:\u003cinterfacename\u003e"},{"line_number":2162,"context_line":"                rp_name_pieces \u003d dev_rp_name.split(\u0027:\u0027)"},{"line_number":2163,"context_line":"                if len(rp_name_pieces) !\u003d 3:"},{"line_number":2164,"context_line":"                    reason \u003d ("}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_b7ae1a2d","line":2161,"range":{"start_line":2160,"start_character":16,"end_line":2161,"end_character":72},"in_reply_to":"9fdfeff1_77c2f236","updated":"2019-03-05 14:50:01.000000000","message":"I will document it. I still think that in this particular case the InstancePCIRequest will refer to the PF RP and there this matching will work. The OVS related bandwidth will be managed on the OVS bridge RP. So if these two RP is configured properly (the total PF bandwidth is split in between the two RPs) then nova can manage the situation properly.","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":2175,"context_line":"                        reason\u003dreason)"},{"line_number":2176,"context_line":""},{"line_number":2177,"context_line":"                for spec in pci_request.spec:"},{"line_number":2178,"context_line":"                    spec[\u0027parent_ifname\u0027] \u003d rp_name_pieces[2]"},{"line_number":2179,"context_line":"                    modified \u003d True"},{"line_number":2180,"context_line":"        if modified:"},{"line_number":2181,"context_line":"            instance.save()"}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_b7693a27","line":2178,"updated":"2019-03-05 14:09:01.000000000","message":"++","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"}],"nova/pci/stats.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        # that has resource_request and therefore that has resource allocation"},{"line_number":103,"context_line":"        # already in placement."},{"line_number":104,"context_line":"        if (\u0027parent_ifname\u0027 in dev.extra_info"},{"line_number":105,"context_line":"                and dev.extra_info[\u0027parent_ifname\u0027]):"},{"line_number":106,"context_line":"            pool[\u0027parent_ifname\u0027] \u003d dev.extra_info[\u0027parent_ifname\u0027]"},{"line_number":107,"context_line":"        return pool"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_b7d7fac0","line":105,"updated":"2019-03-05 14:09:01.000000000","message":"nit: why not\n\n  if dev.extra_info.get(\u0027parent_ifname\u0027)\n\n?","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a470ec9bcfc7f161f7d15821d553711beb182763","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        # that has resource_request and therefore that has resource allocation"},{"line_number":103,"context_line":"        # already in placement."},{"line_number":104,"context_line":"        if (\u0027parent_ifname\u0027 in dev.extra_info"},{"line_number":105,"context_line":"                and dev.extra_info[\u0027parent_ifname\u0027]):"},{"line_number":106,"context_line":"            pool[\u0027parent_ifname\u0027] \u003d dev.extra_info[\u0027parent_ifname\u0027]"},{"line_number":107,"context_line":"        return pool"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_728e807a","line":105,"in_reply_to":"9fdfeff1_b7d7fac0","updated":"2019-03-05 14:50:01.000000000","message":"you are right. In my head I considered dev as the PciDevice ovo but the extra_info is just a dict.\n\nDone.","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"}],"nova/scheduler/client/report.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        except ValueError:"},{"line_number":417,"context_line":"            rsp \u003d self._get_resource_provider(context, uuid)"},{"line_number":418,"context_line":"            if rsp is None:"},{"line_number":419,"context_line":"                return None"},{"line_number":420,"context_line":"            else:"},{"line_number":421,"context_line":"                return rsp[\u0027name\u0027]"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_771e72bc","line":419,"updated":"2019-03-05 14:09:01.000000000","message":"shouldn\u0027t we rather provide an exception ?","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a470ec9bcfc7f161f7d15821d553711beb182763","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        except ValueError:"},{"line_number":417,"context_line":"            rsp \u003d self._get_resource_provider(context, uuid)"},{"line_number":418,"context_line":"            if rsp is None:"},{"line_number":419,"context_line":"                return None"},{"line_number":420,"context_line":"            else:"},{"line_number":421,"context_line":"                return rsp[\u0027name\u0027]"},{"line_number":422,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_b2d94885","line":419,"in_reply_to":"9fdfeff1_771e72bc","updated":"2019-03-05 14:50:01.000000000","message":"Yeah would be nicer.\nDone.","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"}],"nova/tests/fixtures.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7c0787a3a36cb1a43c1fe42f1e87b7603f3cb916","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        ],"},{"line_number":1326,"context_line":"        \u0027tenant_id\u0027: tenant_id,"},{"line_number":1327,"context_line":"        \u0027resource_request\u0027: {},"},{"line_number":1328,"context_line":"        \u0027binding:vnic_type\u0027: \u0027direct\u0027,"},{"line_number":1329,"context_line":"    }"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"    port_with_sriov_resource_request \u003d {"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_bfb28305","line":1328,"updated":"2019-03-04 19:38:18.000000000","message":"can we add a test somewhere for vnic_type macvtap.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c1f2f5a9e559b05badeef447f0661d9a70fa290b","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        ],"},{"line_number":1326,"context_line":"        \u0027tenant_id\u0027: tenant_id,"},{"line_number":1327,"context_line":"        \u0027resource_request\u0027: {},"},{"line_number":1328,"context_line":"        \u0027binding:vnic_type\u0027: \u0027direct\u0027,"},{"line_number":1329,"context_line":"    }"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"    port_with_sriov_resource_request \u003d {"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_ac7331e8","line":1328,"in_reply_to":"9fdfeff1_0c5cbdeb","updated":"2019-03-05 13:13:04.000000000","message":"After we talked on IRC I understood the difference. It seems it should work transparently. I will add a separate functional test for this case in a separate patch.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        ],"},{"line_number":1326,"context_line":"        \u0027tenant_id\u0027: tenant_id,"},{"line_number":1327,"context_line":"        \u0027resource_request\u0027: {},"},{"line_number":1328,"context_line":"        \u0027binding:vnic_type\u0027: \u0027direct\u0027,"},{"line_number":1329,"context_line":"    }"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"    port_with_sriov_resource_request \u003d {"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_fd10095c","line":1328,"in_reply_to":"9fdfeff1_bfb28305","updated":"2019-03-05 11:51:24.000000000","message":"I talked with rubasov and lajoskatona from Neutron side and they said that the neturon-macvtap-agent does not report any bandwidth inventory at the moment. Only the ovs and the sriov agents are extended with bandwidth support. So macvtap is not supported  at the moment.\n\nhttps://review.openstack.org/#/c/586597/\n\nThe WIP doc patch already menations that only OVS and SRIOV agensts are supported https://review.openstack.org/#/c/640390/1/doc/source/admin/config-qos-min-bw.rst@132","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bdc34dd61ee0e8419bb3040ac091658a8c78dca4","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"        ],"},{"line_number":1326,"context_line":"        \u0027tenant_id\u0027: tenant_id,"},{"line_number":1327,"context_line":"        \u0027resource_request\u0027: {},"},{"line_number":1328,"context_line":"        \u0027binding:vnic_type\u0027: \u0027direct\u0027,"},{"line_number":1329,"context_line":"    }"},{"line_number":1330,"context_line":""},{"line_number":1331,"context_line":"    port_with_sriov_resource_request \u003d {"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_0c5cbdeb","line":1328,"in_reply_to":"9fdfeff1_fd10095c","updated":"2019-03-05 12:49:18.000000000","message":"im not talking about the neutron macvtap agent.\n\ni am refering to sriov in macvtap mode.\nthis is still using the sriov nic agent\nbut instead of the VF beign directly added to the vm\nit is kept on the host and a macvtap device is created which is added to the vm instead.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":6389,"context_line":"        self.assertEqual(\u00270000:02:00.1\u0027, sriov_binding[\u0027pci_slot\u0027])"},{"line_number":6390,"context_line":""},{"line_number":6391,"context_line":"        # Now boot a second server with a port that has resource request"},{"line_number":6392,"context_line":"        # At this point PF2 has available bandwidth but now available VF"},{"line_number":6393,"context_line":"        # and PF3 has available VF but no available bandwidth so we expect"},{"line_number":6394,"context_line":"        # the boot to fail."},{"line_number":6395,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_94152b4c","line":6392,"range":{"start_line":6392,"start_character":56,"end_line":6392,"end_character":59},"updated":"2019-03-04 16:14:41.000000000","message":"no","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":6389,"context_line":"        self.assertEqual(\u00270000:02:00.1\u0027, sriov_binding[\u0027pci_slot\u0027])"},{"line_number":6390,"context_line":""},{"line_number":6391,"context_line":"        # Now boot a second server with a port that has resource request"},{"line_number":6392,"context_line":"        # At this point PF2 has available bandwidth but now available VF"},{"line_number":6393,"context_line":"        # and PF3 has available VF but no available bandwidth so we expect"},{"line_number":6394,"context_line":"        # the boot to fail."},{"line_number":6395,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_9d01bd09","line":6392,"range":{"start_line":6392,"start_character":56,"end_line":6392,"end_character":59},"in_reply_to":"9fdfeff1_94152b4c","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":5834,"context_line":"        # * PF2 represents the PCI device 0000:02:00, it will be mapped to"},{"line_number":5835,"context_line":"        # physnet2 it will have bandwidth inventory."},{"line_number":5836,"context_line":"        # * PF3 represents the PCI device 0000:03:00 and, it will be mapped to"},{"line_number":5837,"context_line":"        # physnet2 but it will not have bandwidth inventory."},{"line_number":5838,"context_line":""},{"line_number":5839,"context_line":"        compute_name \u003d compute_rp_uuid"},{"line_number":5840,"context_line":"        sriov_agent_rp_uuid \u003d getattr(uuids, compute_rp_uuid + \u0027sriov agent\u0027)"}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_77a8b21f","side":"PARENT","line":5837,"updated":"2019-03-05 14:09:01.000000000","message":"not sure why you want to remove this comment, but okay. Sure, you test later in 6302 this, but meh.","commit_id":"727b942a88a812afb7368b4d7d3c314a4f8554ed"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a470ec9bcfc7f161f7d15821d553711beb182763","unresolved":false,"context_lines":[{"line_number":5834,"context_line":"        # * PF2 represents the PCI device 0000:02:00, it will be mapped to"},{"line_number":5835,"context_line":"        # physnet2 it will have bandwidth inventory."},{"line_number":5836,"context_line":"        # * PF3 represents the PCI device 0000:03:00 and, it will be mapped to"},{"line_number":5837,"context_line":"        # physnet2 but it will not have bandwidth inventory."},{"line_number":5838,"context_line":""},{"line_number":5839,"context_line":"        compute_name \u003d compute_rp_uuid"},{"line_number":5840,"context_line":"        sriov_agent_rp_uuid \u003d getattr(uuids, compute_rp_uuid + \u0027sriov agent\u0027)"}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_52d49c47","side":"PARENT","line":5837,"in_reply_to":"9fdfeff1_77a8b21f","updated":"2019-03-05 14:50:01.000000000","message":"that was a rebase issue,  I guess. I\u0027ve added it back.","commit_id":"727b942a88a812afb7368b4d7d3c314a4f8554ed"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":5730,"context_line":""},{"line_number":5731,"context_line":"        self._create_networking_rp_tree(self.compute1_rp_uuid)"},{"line_number":5732,"context_line":""},{"line_number":5733,"context_line":"        # add an extra ports and the related network to the neutron fixture"},{"line_number":5734,"context_line":"        # specifically for these tests. It cannot be added globally in the"},{"line_number":5735,"context_line":"        # fixture init as it adds a second network that makes auto allocation"},{"line_number":5736,"context_line":"        # based test to fail due to ambiguous networks."}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_57c00ee1","line":5733,"range":{"start_line":5733,"start_character":14,"end_line":5733,"end_character":16},"updated":"2019-03-05 14:09:01.000000000","message":"nit: remove \u0027an\u0027","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a470ec9bcfc7f161f7d15821d553711beb182763","unresolved":false,"context_lines":[{"line_number":5730,"context_line":""},{"line_number":5731,"context_line":"        self._create_networking_rp_tree(self.compute1_rp_uuid)"},{"line_number":5732,"context_line":""},{"line_number":5733,"context_line":"        # add an extra ports and the related network to the neutron fixture"},{"line_number":5734,"context_line":"        # specifically for these tests. It cannot be added globally in the"},{"line_number":5735,"context_line":"        # fixture init as it adds a second network that makes auto allocation"},{"line_number":5736,"context_line":"        # based test to fail due to ambiguous networks."}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_522d7cfb","line":5733,"range":{"start_line":5733,"start_character":14,"end_line":5733,"end_character":16},"in_reply_to":"9fdfeff1_57c00ee1","updated":"2019-03-05 14:50:01.000000000","message":"Done","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":6318,"context_line":""},{"line_number":6319,"context_line":"        For the detailed compute host config see the FakeDriverWithPciResources"},{"line_number":6320,"context_line":"        class. For the necessary passthrough_whitelist config see the setUp of"},{"line_number":6321,"context_line":"        the PortResourceRequestBasedSchedulingTestBase class."},{"line_number":6322,"context_line":"        \"\"\""},{"line_number":6323,"context_line":""},{"line_number":6324,"context_line":"        sriov_port \u003d self.neutron.sriov_port"}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_574ece96","line":6321,"updated":"2019-03-05 14:09:01.000000000","message":"thanks, it helps reviewing","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a44cbd342cf5375e57c5cd4363ae97173eb6ba63","unresolved":false,"context_lines":[{"line_number":6368,"context_line":"        # But also the port that has no resource request still gets a pci slot"},{"line_number":6369,"context_line":"        # allocated. The 0000:02:00 has no more VF available but 0000:03:00 has"},{"line_number":6370,"context_line":"        # one VF available and that PF is also on physnet2"},{"line_number":6371,"context_line":"        self.assertEqual(\u00270000:03:00.1\u0027, sriov_binding[\u0027pci_slot\u0027])"},{"line_number":6372,"context_line":""},{"line_number":6373,"context_line":"    def test_one_sriov_port_no_vf_and_bandwidth_available_on_the_same_pf(self):"},{"line_number":6374,"context_line":"        \"\"\"Verify that if there is no PF that both provides bandwidth and VFs"}],"source_content_type":"text/x-python","patch_set":40,"id":"9fdfeff1_f710225c","line":6371,"updated":"2019-03-05 14:09:01.000000000","message":"++","commit_id":"a3dc1ac8b25e4ab1daf9216b234ed29b3955d56d"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":6658,"context_line":"            objects.InstancePCIRequest(),"},{"line_number":6659,"context_line":"            objects.InstancePCIRequest("},{"line_number":6660,"context_line":"                requester_id\u003duuids.port1,"},{"line_number":6661,"context_line":"                spec\u003d[{\u0027vendor_id\u0027: \u0027v\u0027, \u0027product_id\u0027: \u0027p\u0027}]),"},{"line_number":6662,"context_line":"            objects.InstancePCIRequest(requester_id\u003duuids.port2),"},{"line_number":6663,"context_line":"        ])"},{"line_number":6664,"context_line":"        with test.nested("}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_0f16064b","line":6661,"range":{"start_line":6661,"start_character":37,"end_line":6661,"end_character":38},"updated":"2019-03-04 16:14:41.000000000","message":"actual vendor/product IDs might not be a bad idea","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":6658,"context_line":"            objects.InstancePCIRequest(),"},{"line_number":6659,"context_line":"            objects.InstancePCIRequest("},{"line_number":6660,"context_line":"                requester_id\u003duuids.port1,"},{"line_number":6661,"context_line":"                spec\u003d[{\u0027vendor_id\u0027: \u0027v\u0027, \u0027product_id\u0027: \u0027p\u0027}]),"},{"line_number":6662,"context_line":"            objects.InstancePCIRequest(requester_id\u003duuids.port2),"},{"line_number":6663,"context_line":"        ])"},{"line_number":6664,"context_line":"        with test.nested("}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_8019567b","line":6661,"range":{"start_line":6661,"start_character":37,"end_line":6661,"end_character":38},"in_reply_to":"9fdfeff1_0f16064b","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":6686,"context_line":"        mock_get_rp.assert_called_once_with(self.context, uuids.rp1)"},{"line_number":6687,"context_line":"        # As the second pci request matched with the request group from the"},{"line_number":6688,"context_line":"        # request spec. So that pci request is extended with the"},{"line_number":6689,"context_line":"        # pf_interface_name calucalted from the corresponding RP name."},{"line_number":6690,"context_line":"        self.assertEqual("},{"line_number":6691,"context_line":"            [{\u0027pf_interface_name\u0027: \u0027ens3\u0027,"},{"line_number":6692,"context_line":"              \u0027vendor_id\u0027: \u0027v\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_af49fa66","line":6689,"range":{"start_line":6689,"start_character":28,"end_line":6689,"end_character":38},"updated":"2019-03-04 16:14:41.000000000","message":"calculated","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":6686,"context_line":"        mock_get_rp.assert_called_once_with(self.context, uuids.rp1)"},{"line_number":6687,"context_line":"        # As the second pci request matched with the request group from the"},{"line_number":6688,"context_line":"        # request spec. So that pci request is extended with the"},{"line_number":6689,"context_line":"        # pf_interface_name calucalted from the corresponding RP name."},{"line_number":6690,"context_line":"        self.assertEqual("},{"line_number":6691,"context_line":"            [{\u0027pf_interface_name\u0027: \u0027ens3\u0027,"},{"line_number":6692,"context_line":"              \u0027vendor_id\u0027: \u0027v\u0027,"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_4025aead","line":6689,"range":{"start_line":6689,"start_character":28,"end_line":6689,"end_character":38},"in_reply_to":"9fdfeff1_af49fa66","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":15195,"context_line":"                \"dev_type\": fields.PciDeviceType.SRIOV_VF,"},{"line_number":15196,"context_line":"                \"phys_function\": [(\u00270x0000\u0027, \u00270x04\u0027, \u00270x00\u0027, \u00270x3\u0027)],"},{"line_number":15197,"context_line":"                \"parent_addr\": \"0000:04:00.3\","},{"line_number":15198,"context_line":"                \"pf_interface_name\": \"ens1\","},{"line_number":15199,"context_line":"            }"},{"line_number":15200,"context_line":"        ]"},{"line_number":15201,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_2fabcad7","line":15198,"range":{"start_line":15198,"start_character":17,"end_line":15198,"end_character":34},"updated":"2019-03-04 16:14:41.000000000","message":"parent_ifname may have made more sense, given the existing fields here","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db47ef0ae0adc568ad1c07186909940f0e3075c6","unresolved":false,"context_lines":[{"line_number":15195,"context_line":"                \"dev_type\": fields.PciDeviceType.SRIOV_VF,"},{"line_number":15196,"context_line":"                \"phys_function\": [(\u00270x0000\u0027, \u00270x04\u0027, \u00270x00\u0027, \u00270x3\u0027)],"},{"line_number":15197,"context_line":"                \"parent_addr\": \"0000:04:00.3\","},{"line_number":15198,"context_line":"                \"pf_interface_name\": \"ens1\","},{"line_number":15199,"context_line":"            }"},{"line_number":15200,"context_line":"        ]"},{"line_number":15201,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_6b52256b","line":15198,"range":{"start_line":15198,"start_character":17,"end_line":15198,"end_character":34},"in_reply_to":"9fdfeff1_2fabcad7","updated":"2019-03-04 17:03:16.000000000","message":"OK. I will rename it.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f2d98e813893f6837c82fcac7c524a14f1621563","unresolved":false,"context_lines":[{"line_number":15195,"context_line":"                \"dev_type\": fields.PciDeviceType.SRIOV_VF,"},{"line_number":15196,"context_line":"                \"phys_function\": [(\u00270x0000\u0027, \u00270x04\u0027, \u00270x00\u0027, \u00270x3\u0027)],"},{"line_number":15197,"context_line":"                \"parent_addr\": \"0000:04:00.3\","},{"line_number":15198,"context_line":"                \"pf_interface_name\": \"ens1\","},{"line_number":15199,"context_line":"            }"},{"line_number":15200,"context_line":"        ]"},{"line_number":15201,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_006a46ec","line":15198,"range":{"start_line":15198,"start_character":17,"end_line":15198,"end_character":34},"in_reply_to":"9fdfeff1_6b52256b","updated":"2019-03-05 11:51:24.000000000","message":"Done","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"}],"nova/virt/fake.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7aa3d44a3dda0cc9a998336b9f018f4c9bf5591d","unresolved":false,"context_lines":[{"line_number":864,"context_line":"                \u0027numa_node\u0027: 0,"},{"line_number":865,"context_line":"                \u0027label\u0027: \u0027fake-label\u0027,"},{"line_number":866,"context_line":"            },"},{"line_number":867,"context_line":"            # XXX(gibi): 0000:02:00 is tagged to physnet_2 in the whitelist"},{"line_number":868,"context_line":"            # config"},{"line_number":869,"context_line":"            {"},{"line_number":870,"context_line":"                \u0027address\u0027: \u00270000:02:00.0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_7dbaf26f","line":867,"range":{"start_line":867,"start_character":49,"end_line":867,"end_character":58},"updated":"2018-12-12 17:07:57.000000000","message":"physnet2","commit_id":"536693c0d8f25bb77d45864e1fb0c1963c078ca1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7aa3d44a3dda0cc9a998336b9f018f4c9bf5591d","unresolved":false,"context_lines":[{"line_number":886,"context_line":"                \u0027numa_node\u0027: 0,"},{"line_number":887,"context_line":"                \u0027label\u0027: \u0027fake-label\u0027,"},{"line_number":888,"context_line":"            },"},{"line_number":889,"context_line":"            # XXX(gibi): 0000:03:00 is also tagged to physnet_2 in the"},{"line_number":890,"context_line":"            # whitelist config"},{"line_number":891,"context_line":"            {"},{"line_number":892,"context_line":"                \u0027address\u0027: \u00270000:03:00.0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_5db7f688","line":889,"range":{"start_line":889,"start_character":54,"end_line":889,"end_character":63},"updated":"2018-12-12 17:07:57.000000000","message":"physnet2","commit_id":"536693c0d8f25bb77d45864e1fb0c1963c078ca1"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"deec3176983ec312ac606938de97978a647a3b6b","unresolved":false,"context_lines":[{"line_number":5939,"context_line":"                        \u0027dev_type\u0027: fields.PciDeviceType.SRIOV_VF,"},{"line_number":5940,"context_line":"                        \u0027parent_addr\u0027: phys_address,"},{"line_number":5941,"context_line":"                        \u0027pf_interface_name\u0027:"},{"line_number":5942,"context_line":"                            pci_utils.get_ifname_by_pci_address("},{"line_number":5943,"context_line":"                                pci_address, pf_interface\u003dTrue),"},{"line_number":5944,"context_line":"                    }"},{"line_number":5945,"context_line":""},{"line_number":5946,"context_line":"            return {\u0027dev_type\u0027: fields.PciDeviceType.STANDARD}"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_6fc8f2a7","line":5943,"range":{"start_line":5942,"start_character":0,"end_line":5943,"end_character":64},"updated":"2019-03-04 16:14:41.000000000","message":"nova-net is _sometimes_ useful :)","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"db47ef0ae0adc568ad1c07186909940f0e3075c6","unresolved":false,"context_lines":[{"line_number":5939,"context_line":"                        \u0027dev_type\u0027: fields.PciDeviceType.SRIOV_VF,"},{"line_number":5940,"context_line":"                        \u0027parent_addr\u0027: phys_address,"},{"line_number":5941,"context_line":"                        \u0027pf_interface_name\u0027:"},{"line_number":5942,"context_line":"                            pci_utils.get_ifname_by_pci_address("},{"line_number":5943,"context_line":"                                pci_address, pf_interface\u003dTrue),"},{"line_number":5944,"context_line":"                    }"},{"line_number":5945,"context_line":""},{"line_number":5946,"context_line":"            return {\u0027dev_type\u0027: fields.PciDeviceType.STANDARD}"}],"source_content_type":"text/x-python","patch_set":39,"id":"9fdfeff1_6bd785c2","line":5943,"range":{"start_line":5942,"start_character":0,"end_line":5943,"end_character":64},"in_reply_to":"9fdfeff1_6fc8f2a7","updated":"2019-03-04 17:03:16.000000000","message":"I could call into os-vif as well I guess, but that seems a bit harder. Nova uses the same call when it tries to figure out the MAC address of a PF.","commit_id":"7143131c8b1ae0c68060d16df45c6a877422d167"}]}
