)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"298a49936a0d699e6ba743e9ee398d7029ac6b17","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: set vfio driver in interface hostdev"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It seem that if driver name is None nova try to set"},{"line_number":10,"context_line":"rx_queue_size tx_queue_size config. (they define the"},{"line_number":11,"context_line":"virtio-net rx/tx queue sizes). Direct port (SR-IOV)"},{"line_number":12,"context_line":"is not vritio so this kind of config is invalid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_d1c26a53","line":9,"range":{"start_line":9,"start_character":1,"end_line":9,"end_character":35},"updated":"2018-08-23 12:22:06.000000000","message":"not None?\n\nLooking at:\n\nhttps://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/config.py#L1398\n\nWe would only set the rx/tx queue sizes in the guest xml if the driver name is specified, which was the case in your paste (you must have been using vnic_type\u003d\u0027direct\u0027):\n\nhttp://paste.openstack.org/show/728666/","commit_id":"1ee803de9a2a0fce3c110ef5adc6db5909be0a2d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a7b1ef3e9328aa2dc51a50c2121efc4713844583","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: set vfio driver in interface hostdev"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"It seem that if driver name is None nova try to set"},{"line_number":10,"context_line":"rx_queue_size tx_queue_size config. (they define the"},{"line_number":11,"context_line":"virtio-net rx/tx queue sizes). Direct port (SR-IOV)"},{"line_number":12,"context_line":"is not vritio so this kind of config is invalid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_b19a4e6c","line":9,"range":{"start_line":9,"start_character":1,"end_line":9,"end_character":35},"in_reply_to":"3f79a3b5_d1c26a53","updated":"2018-08-23 12:23:39.000000000","message":"OK you pointed out:\n\nhttps://github.com/openstack/nova/blob/34956bea4beb8e5ba474b42ba777eb88a5eadd76/nova/virt/libvirt/vif.py#L166-L176\n\nWhich will default to vhost if rx/tx queue sizes are set. But the comment should be \"if driver name is *not* None\" correct?","commit_id":"1ee803de9a2a0fce3c110ef5adc6db5909be0a2d"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b4ae2f176c92ed619acefa8bc5a2b607d1162acf","unresolved":false,"context_lines":[{"line_number":11,"context_line":"virtio-net rx/tx queue sizes). Direct/Physical Direct"},{"line_number":12,"context_line":"vnic_types are not vritio so this kind of config is"},{"line_number":13,"context_line":"invalid and causing booting guest to failed. To avoid"},{"line_number":14,"context_line":"issues we skip such configuration these  vnic_types"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1789074"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_d2e853b4","line":14,"range":{"start_line":14,"start_character":39,"end_line":14,"end_character":41},"updated":"2018-09-03 14:04:22.000000000","message":"nit: too much space","commit_id":"622ebf2fab0a9bf75ee12437bef28f60e083f849"}],"nova/tests/unit/virt/libvirt/test_vif.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2658f1391f8ece7b8b99021583e2f7dd45d6b25b","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        d.get_base_config(None, \u0027ca:fe:de:ad:be:ef\u0027, image_meta,"},{"line_number":846,"context_line":"                          None, \u0027kvm\u0027, \u0027normal\u0027, hostimpl)"},{"line_number":847,"context_line":"        mock_set.assert_called_once_with(mock.ANY, \u0027ca:fe:de:ad:be:ef\u0027,"},{"line_number":848,"context_line":"                                         \u0027virtio\u0027, None, None, None)"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"    @mock.patch.object(vif.designer, \u0027set_vif_guest_frontend_config\u0027)"},{"line_number":851,"context_line":"    def test_model_sriov_direct_multi_queue_not_set(self, mock_set):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_9cb6addc","line":848,"range":{"start_line":848,"start_character":42,"end_line":848,"end_character":48},"updated":"2018-08-30 17:41:18.000000000","message":"Note to self: it looks like this test is covering the case where a non-direct vnic_type with virt_type of (\u0027kvm\u0027, \u0027qemu\u0027, \u0027parallels\u0027) without the model set in image_meta and use_virtio_for_bridges\u003dTrue will have its model set to \u0027virtio\u0027.","commit_id":"622ebf2fab0a9bf75ee12437bef28f60e083f849"}],"nova/virt/libvirt/designer.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f6f6d8839cd13e647c66b35a8620f1cde46a1c15","unresolved":false,"context_lines":[{"line_number":118,"context_line":"        conf.source_mode \u003d \u0027passthrough\u0027"},{"line_number":119,"context_line":"        conf.source_dev \u003d pci_utils.get_ifname_by_pci_address(devname)"},{"line_number":120,"context_line":"        conf.driver_name \u003d \u0027vhost\u0027"},{"line_number":121,"context_line":"    else:  # net_type \u003d\u003d network_model.VNIC_TYPE_DIRECT"},{"line_number":122,"context_line":"        conf.source_dev \u003d devname"},{"line_number":123,"context_line":"        conf.model \u003d None"},{"line_number":124,"context_line":"        conf.driver_name \u003d \u0027vfio\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_8e6853f5","line":121,"range":{"start_line":121,"start_character":11,"end_line":121,"end_character":55},"updated":"2018-08-23 12:19:44.000000000","message":"Is this correct? Wouldn\u0027t the above conditional handle \"direct\"? Shouldn\u0027t this be the \"hostdev\" case? Yeah looking at get_config_hw_veb, which calls this, I guess if vnic_type \u003d\u003d \u0027direct\u0027 then net_type is \u0027hostdev\u0027. We should update this comment since it\u0027s really confusing.\n\nEither just:\n\n# hostdev\n\nor:\n\n# vnic_type \u003d\u003d network_model.VNIC_TYPE_DIRECT","commit_id":"1ee803de9a2a0fce3c110ef5adc6db5909be0a2d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c3c4c1debe9ee01bf5fdc94795cb63d70d674b72","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    else:  # net_type \u003d\u003d network_model.VNIC_TYPE_DIRECT"},{"line_number":122,"context_line":"        conf.source_dev \u003d devname"},{"line_number":123,"context_line":"        conf.model \u003d None"},{"line_number":124,"context_line":"        conf.driver_name \u003d \u0027vfio\u0027"},{"line_number":125,"context_line":"    if tapname:"},{"line_number":126,"context_line":"        conf.target_dev \u003d tapname"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f17d261c","line":124,"range":{"start_line":124,"start_character":9,"end_line":124,"end_character":33},"updated":"2018-08-23 12:24:19.000000000","message":"this would potenailly break legacy kvm pci passthough.\n\ne.g. the non VFIO passthough that kvm supported before qemu had support for VFIO. do we care?\n\nlooking at the driver section of https://libvirt.org/formatdomain.html#elementsHostDev\n\nthat would mean the kernel must be 3.6 or newer and qemu or libvirt \u003e 1.0.6.\n\ni think cetos7 has the oldest kernel of any suported OS at 3.10. perhaps oracle linux or suse is older but i doubt it just taught i would flag the fact this will prevent fallback to the kvm driver if vfio is not availabel which could also happen if the iommu is disabled.","commit_id":"1ee803de9a2a0fce3c110ef5adc6db5909be0a2d"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f4e0c13ff3def2cac4a9077f7564d644e360ef71","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                virt\u003dvirt_type)"},{"line_number":154,"context_line":"        if (virt_type in (\u0027kvm\u0027, \u0027parallels\u0027) and"},{"line_number":155,"context_line":"            model \u003d\u003d network_model.VIF_MODEL_VIRTIO and"},{"line_number":156,"context_line":"            vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH):"},{"line_number":157,"context_line":"            vhost_drv, vhost_queues \u003d self._get_virtio_mq_settings(image_meta,"},{"line_number":158,"context_line":"                                                                   inst_type)"},{"line_number":159,"context_line":"            # TODO(sahid): It seems that we return driver \u0027vhost\u0027 even"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_af7b9078","line":156,"updated":"2018-08-27 08:39:02.000000000","message":"Thanks that makes sense to update this as well. But based on my next comment I\u0027m not enterly sure about to fix it in that way.","commit_id":"38a2988fbe7713ff884dd2a9ee59652fc3319f2f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f4e0c13ff3def2cac4a9077f7564d644e360ef71","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            driver \u003d vhost_drv or driver"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        rx_queue_size \u003d None"},{"line_number":169,"context_line":"        # Note(moshele): rx_queue_size should be set only for virtio"},{"line_number":170,"context_line":"        # interfaces"},{"line_number":171,"context_line":"        if vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH:"},{"line_number":172,"context_line":"            if driver \u003d\u003d \u0027vhost\u0027 or driver is None:"},{"line_number":173,"context_line":"                # vhost backend only supports update of RX queue size"},{"line_number":174,"context_line":"                rx_queue_size, _ \u003d self._get_virtio_queue_sizes(host)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_ef9c28c1","line":171,"range":{"start_line":169,"start_character":0,"end_line":171,"end_character":72},"updated":"2018-08-27 08:39:02.000000000","message":"I would have made the opposite. Not only DIRECT types are no virtio devices. Also that you can have  TYPE_NORMAL which is using a different model than virtio. That is why I recommended to make that condition using the model and ensure it\u0027s set to virio.","commit_id":"38a2988fbe7713ff884dd2a9ee59652fc3319f2f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8d8c9ff10fe7efc11a421586c9143580f749def","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            driver \u003d vhost_drv or driver"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        rx_queue_size \u003d None"},{"line_number":169,"context_line":"        # Note(moshele): rx_queue_size should be set only for virtio"},{"line_number":170,"context_line":"        # interfaces"},{"line_number":171,"context_line":"        if vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH:"},{"line_number":172,"context_line":"            if driver \u003d\u003d \u0027vhost\u0027 or driver is None:"},{"line_number":173,"context_line":"                # vhost backend only supports update of RX queue size"},{"line_number":174,"context_line":"                rx_queue_size, _ \u003d self._get_virtio_queue_sizes(host)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_a57e4867","line":171,"range":{"start_line":169,"start_character":0,"end_line":171,"end_character":72},"in_reply_to":"3f79a3b5_19dd2bdc","updated":"2018-08-27 15:02:22.000000000","message":"Yeah... I don\u0027t know my scary is to have some time in the future somebody to report the exact same issue for an other VIF TYPE","commit_id":"38a2988fbe7713ff884dd2a9ee59652fc3319f2f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ea477ca1dbada1ba62bfe3ca72cdfb1089a2249c","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            driver \u003d vhost_drv or driver"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        rx_queue_size \u003d None"},{"line_number":169,"context_line":"        # Note(moshele): rx_queue_size should be set only for virtio"},{"line_number":170,"context_line":"        # interfaces"},{"line_number":171,"context_line":"        if vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH:"},{"line_number":172,"context_line":"            if driver \u003d\u003d \u0027vhost\u0027 or driver is None:"},{"line_number":173,"context_line":"                # vhost backend only supports update of RX queue size"},{"line_number":174,"context_line":"                rx_queue_size, _ \u003d self._get_virtio_queue_sizes(host)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_2cb3f20b","line":171,"range":{"start_line":169,"start_character":0,"end_line":171,"end_character":72},"in_reply_to":"3f79a3b5_a57e4867","updated":"2018-08-28 07:54:02.000000000","message":"I understand that you don\u0027t want to update too much of the logic. Since we badly set model\u003dVIRTIO even for DIRECT vif type you can\u0027t really use my suggestion.\n\nSo a least, can your update your comment since it does not really reflect what you are doing and indicate in a TODO node that we should test this against the model which should be virtio and not a specific vif type.","commit_id":"38a2988fbe7713ff884dd2a9ee59652fc3319f2f"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"be999522fbf6649c2b42e5becddad0a93a4c5017","unresolved":false,"context_lines":[{"line_number":166,"context_line":"            driver \u003d vhost_drv or driver"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        rx_queue_size \u003d None"},{"line_number":169,"context_line":"        # Note(moshele): rx_queue_size should be set only for virtio"},{"line_number":170,"context_line":"        # interfaces"},{"line_number":171,"context_line":"        if vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH:"},{"line_number":172,"context_line":"            if driver \u003d\u003d \u0027vhost\u0027 or driver is None:"},{"line_number":173,"context_line":"                # vhost backend only supports update of RX queue size"},{"line_number":174,"context_line":"                rx_queue_size, _ \u003d self._get_virtio_queue_sizes(host)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_19dd2bdc","line":171,"range":{"start_line":169,"start_character":0,"end_line":171,"end_character":72},"in_reply_to":"3f79a3b5_ef9c28c1","updated":"2018-08-27 13:14:17.000000000","message":"I tried it but the problem is that the model assigned unreleased to the vnic_type so what you requested didn\u0027t work. it is set according to Line 137-142. And I didn\u0027t want to change this logic.","commit_id":"38a2988fbe7713ff884dd2a9ee59652fc3319f2f"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2658f1391f8ece7b8b99021583e2f7dd45d6b25b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                virt\u003dvirt_type)"},{"line_number":154,"context_line":"        if (virt_type in (\u0027kvm\u0027, \u0027parallels\u0027) and"},{"line_number":155,"context_line":"            model \u003d\u003d network_model.VIF_MODEL_VIRTIO and"},{"line_number":156,"context_line":"            vnic_type not in network_model.VNIC_TYPES_SRIOV):"},{"line_number":157,"context_line":"            vhost_drv, vhost_queues \u003d self._get_virtio_mq_settings(image_meta,"},{"line_number":158,"context_line":"                                                                   inst_type)"},{"line_number":159,"context_line":"            # TODO(sahid): It seems that we return driver \u0027vhost\u0027 even"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_5c9d7508","side":"PARENT","line":156,"updated":"2018-08-30 17:41:18.000000000","message":"It looks like this is removed because VNIC_TYPES_SRIOV \u003d (VNIC_TYPE_DIRECT, VNIC_TYPE_MACVTAP, VNIC_TYPE_DIRECT_PHYSICAL, VNIC_TYPE_VIRTIO_FORWARDER) and only the DIRECT types need to be excluded, and that is taken care of on the new L139.","commit_id":"5ffc7f3fb8461df74852eab2c3fea7d16c8d81d7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"bf964114feb2dc0fdc7c3456b8716e9ff2679bd8","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                virt\u003dvirt_type)"},{"line_number":154,"context_line":"        if (virt_type in (\u0027kvm\u0027, \u0027parallels\u0027) and"},{"line_number":155,"context_line":"            model \u003d\u003d network_model.VIF_MODEL_VIRTIO and"},{"line_number":156,"context_line":"            vnic_type not in network_model.VNIC_TYPES_SRIOV):"},{"line_number":157,"context_line":"            vhost_drv, vhost_queues \u003d self._get_virtio_mq_settings(image_meta,"},{"line_number":158,"context_line":"                                                                   inst_type)"},{"line_number":159,"context_line":"            # TODO(sahid): It seems that we return driver \u0027vhost\u0027 even"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_b41feeb5","side":"PARENT","line":156,"in_reply_to":"3f79a3b5_5c9d7508","updated":"2018-08-31 11:18:42.000000000","message":"DIRECT_PHYSICAL will also need to be removed. It\u0027s when we passthrough the whole device (Physical Function).","commit_id":"5ffc7f3fb8461df74852eab2c3fea7d16c8d81d7"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca41bda46c47ff9670cff3b289a8afef577676d3","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                                                virt\u003dvirt_type)"},{"line_number":154,"context_line":"        if (virt_type in (\u0027kvm\u0027, \u0027parallels\u0027) and"},{"line_number":155,"context_line":"            model \u003d\u003d network_model.VIF_MODEL_VIRTIO and"},{"line_number":156,"context_line":"            vnic_type not in network_model.VNIC_TYPES_SRIOV):"},{"line_number":157,"context_line":"            vhost_drv, vhost_queues \u003d self._get_virtio_mq_settings(image_meta,"},{"line_number":158,"context_line":"                                                                   inst_type)"},{"line_number":159,"context_line":"            # TODO(sahid): It seems that we return driver \u0027vhost\u0027 even"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_327f47ac","side":"PARENT","line":156,"in_reply_to":"3f79a3b5_b41feeb5","updated":"2018-09-03 14:09:52.000000000","message":"well is when we passthough a PF. if the device has 2 PF we dont passthough both with DIRECT_PHYSICAL only the 1 you asked for.","commit_id":"5ffc7f3fb8461df74852eab2c3fea7d16c8d81d7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d40c97638afc1f671dc79fa573ff85a58dc40a4d","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        if image_meta:"},{"line_number":135,"context_line":"            model \u003d osinfo.HardwareProperties(image_meta).network_model"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        # Note(moshele): Skip passthough vnic_types as they don\u0027t support"},{"line_number":138,"context_line":"        # virtio model."},{"line_number":139,"context_line":"        if vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH:"},{"line_number":140,"context_line":"            # Else if the virt type is KVM/QEMU/VZ(Parallels), then use virtio"},{"line_number":141,"context_line":"            # according to the global config parameter"},{"line_number":142,"context_line":"            if (model is None and"},{"line_number":143,"context_line":"                virt_type in (\u0027kvm\u0027, \u0027qemu\u0027, \u0027parallels\u0027) and"},{"line_number":144,"context_line":"                        CONF.libvirt.use_virtio_for_bridges):"},{"line_number":145,"context_line":"                model \u003d network_model.VIF_MODEL_VIRTIO"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # Workaround libvirt bug, where it mistakenly"},{"line_number":148,"context_line":"        # enables vhost mode, even for non-KVM guests"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3384a90a","line":145,"range":{"start_line":137,"start_character":0,"end_line":145,"end_character":54},"updated":"2018-08-28 12:02:20.000000000","message":"Sounds good thanks.","commit_id":"622ebf2fab0a9bf75ee12437bef28f60e083f849"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ca41bda46c47ff9670cff3b289a8afef577676d3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        if image_meta:"},{"line_number":135,"context_line":"            model \u003d osinfo.HardwareProperties(image_meta).network_model"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        # Note(moshele): Skip passthough vnic_types as they don\u0027t support"},{"line_number":138,"context_line":"        # virtio model."},{"line_number":139,"context_line":"        if vnic_type not in network_model.VNIC_TYPES_DIRECT_PASSTHROUGH:"},{"line_number":140,"context_line":"            # Else if the virt type is KVM/QEMU/VZ(Parallels), then use virtio"},{"line_number":141,"context_line":"            # according to the global config parameter"},{"line_number":142,"context_line":"            if (model is None and"},{"line_number":143,"context_line":"                virt_type in (\u0027kvm\u0027, \u0027qemu\u0027, \u0027parallels\u0027) and"},{"line_number":144,"context_line":"                        CONF.libvirt.use_virtio_for_bridges):"},{"line_number":145,"context_line":"                model \u003d network_model.VIF_MODEL_VIRTIO"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"        # Workaround libvirt bug, where it mistakenly"},{"line_number":148,"context_line":"        # enables vhost mode, even for non-KVM guests"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_122d6bfc","line":145,"range":{"start_line":137,"start_character":0,"end_line":145,"end_character":54},"in_reply_to":"3f79a3b5_3384a90a","updated":"2018-09-03 14:09:52.000000000","message":"ok so direct passthough corresponds to \nvnic_type-direct and vnic_type direct-physical.\nhttps://git.openstack.org/cgit/openstack/nova/tree/nova/network/model.py?h\u003drefs/changes/92/595592/3#n116\nso if this not one of those and its a virt type that supports virtio default the model to virtio if not set.\n\nit should be noted that it is possible to have Virtual functions which are virtio devices but that is a seperate topic. i think this is fine for now.","commit_id":"622ebf2fab0a9bf75ee12437bef28f60e083f849"}]}
