)]}'
{"specs/ocata/approved/generalize-pci-device.rst":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"310a6f1399a16abd9530abcbfe549784781dbe77","unresolved":false,"context_lines":[{"line_number":108,"context_line":"* Change the keywords using to specify pass through device in instance flavor."},{"line_number":109,"context_line":"  * \"pci_passthrough:alias\" \u003d\u003e \"host_device_passthrough:alias\""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"* Replace all places referring to common pci with the host device stuffs."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* schedule filters: create a new shedule filter named as"},{"line_number":114,"context_line":"  HostDevicePassthroughFilter to filter host devices basing on the host state"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_d0797294","line":111,"updated":"2016-10-17 09:34:11.000000000","message":"What does this actually mean","commit_id":"2438ec3dd4143b2b43cdf4af2a5db3702e350caf"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"310a6f1399a16abd9530abcbfe549784781dbe77","unresolved":false,"context_lines":[{"line_number":117,"context_line":"* compatibility consideration:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"  * In order to back compatible with the existing PCI pass through, will keep"},{"line_number":120,"context_line":"    the schedule filter of PciPassthroughFilter but need change its code to"},{"line_number":121,"context_line":"    use the generalized host device code. But may mark this schedule filter as"},{"line_number":122,"context_line":"    deprecated."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_d087b25e","line":120,"updated":"2016-10-17 09:34:11.000000000","message":"Create a symlink?\nWill HostDevicePassthroughFilter explictly support the existing syntax?","commit_id":"2438ec3dd4143b2b43cdf4af2a5db3702e350caf"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"310a6f1399a16abd9530abcbfe549784781dbe77","unresolved":false,"context_lines":[{"line_number":144,"context_line":"REST API impact"},{"line_number":145,"context_line":"---------------"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"TODO"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_50f722d2","line":147,"updated":"2016-10-17 09:34:11.000000000","message":"Perhaps check into how the free PCI devices are reported by Nova to the Scheduler?","commit_id":"2438ec3dd4143b2b43cdf4af2a5db3702e350caf"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"310a6f1399a16abd9530abcbfe549784781dbe77","unresolved":false,"context_lines":[{"line_number":196,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"* Will develop unit tests for the generalized host device code"},{"line_number":199,"context_line":"* CI."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Documentation Impact"},{"line_number":202,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa6399be_b0607ea6","line":199,"updated":"2016-10-17 09:34:11.000000000","message":"Existing PCI / SR-IOV tests? Are they applicable?","commit_id":"2438ec3dd4143b2b43cdf4af2a5db3702e350caf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"686d9429a9338580440365e7e5c6240c28f2f218","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        \u0027request_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":73,"context_line":"        \u0027extra_info\u0027: fields.DictOfStringsField(),"},{"line_number":74,"context_line":"        \u0027parent_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Organize the available host devices (including the real PCI devices) via"},{"line_number":78,"context_line":"  the resource pool object of HostDevicePool:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa6399be_0d547352","line":75,"updated":"2016-10-18 14:46:57.000000000","message":"I think you\u0027re overloading \u0027dev_type\u0027 here for two distinct concepts.  First it represents a logical function class of the device. Second, it is used to declare what format the following \u0027address\u0027 field takes.\n\nThis is bad, because the two concepts are not mapped 1-1. For example a vGPU could use a PCI address if the vGPU was implemented in hardware as an SRIOV model\n\nThe current way we model this in Nova for PCI devices is rather dubious to start with - particularly the distinction between SRIOV-PF and PCI. The only difference between those two is that  SRIOV-PF can have child devices (of type SRIOV-VF). When we add these other device types, even a \"PCI\" dev type can have child devices (of type vGPU or vTPM), etc.  Similarly we look at dev_type \u003d\u003d SRIOV_VF to determine whether we claim parent devices or not.\n\nBoth of these usages feel like unccessary checks - eg should just always follow the parent/child relationships declared by parent_id attribute, regardles of dev type.\n\nIf we can eliminate Nova\u0027s current use of dev_type, then we get to point where in the new proposal here, \u0027dev_type\u0027 could simply be renamed to \u0027address_type\u0027.","commit_id":"d7be2ba0554db0906550461173cb6e7d5c3d8054"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"c79e76ce646594903ebe910036beae630c66a4ca","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        \u0027request_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":73,"context_line":"        \u0027extra_info\u0027: fields.DictOfStringsField(),"},{"line_number":74,"context_line":"        \u0027parent_id\u0027: fields.StringField(nullable\u003dTrue),"},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* Organize the available host devices (including the real PCI devices) via"},{"line_number":78,"context_line":"  the resource pool object of HostDevicePool:"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa6399be_38817790","line":75,"in_reply_to":"fa6399be_0d547352","updated":"2016-10-18 15:11:25.000000000","message":"Daniel, thanks very much for pointing it out. Agree that the current use of dev_type is unnecessary. It sounds good to rename it to \"address_type\". We can specify different device traits for different device types via the tag.","commit_id":"d7be2ba0554db0906550461173cb6e7d5c3d8054"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6c8525c56f0b6bdb9576adf434003b976b65d3c5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    devices from a same group and having the same \u0027vendor_id\u0027:\u0027\u0027product_id\u0027"},{"line_number":60,"context_line":"    must be identical and interchangeable."},{"line_number":61,"context_line":"    e.g."},{"line_number":62,"context_line":"    * for none SR-IOV vGPUs: the same type of vGPUs can be organized"},{"line_number":63,"context_line":"    in a group, so it can properly track available resources for"},{"line_number":64,"context_line":"    different vGPU types/models."},{"line_number":65,"context_line":"    * SR-IOV: To handle the case that VFs and PFs have the same"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_9c1a9316","line":62,"updated":"2016-10-21 09:23:16.000000000","message":"I don\u0027t think this is needed for other device types - see below?","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6c8525c56f0b6bdb9576adf434003b976b65d3c5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"    * for none SR-IOV vGPUs: the same type of vGPUs can be organized"},{"line_number":63,"context_line":"    in a group, so it can properly track available resources for"},{"line_number":64,"context_line":"    different vGPU types/models."},{"line_number":65,"context_line":"    * SR-IOV: To handle the case that VFs and PFs have the same"},{"line_number":66,"context_line":"    \u0027vendor_id\u0027:\u0027\u0027product_id\u0027, organize them in the group of \u0027PF\u0027 and"},{"line_number":67,"context_line":"    \u0027VF\u0027 respectively."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_7c793f2f","line":65,"updated":"2016-10-21 09:23:16.000000000","message":"This is already the case in the existing PCI pass through - I presume if we don\u0027t want to add group_id for the new device types then we shouldn\u0027t try and change the PCI behaviour either?","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6c8525c56f0b6bdb9576adf434003b976b65d3c5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \u0027address_type\u0027: fields.HostDeviceTypeField(),"},{"line_number":77,"context_line":"        \u0027address\u0027: fields.StringField(),"},{"line_number":78,"context_line":"        \u0027compute_node_id\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":79,"context_line":"        \u0027vendor_id\u0027: fields.StringField(),"},{"line_number":80,"context_line":"        \u0027product_id\u0027: fields.StringField(),"},{"line_number":81,"context_line":"        \u0027status\u0027: fields.HostDeviceStatusField(),"},{"line_number":82,"context_line":"        # Hypervisor\u0027s identification for the device, the string format"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_bc0037ac","line":79,"updated":"2016-10-21 09:23:16.000000000","message":"vendor_id and product_id are PCI terms, but we can re-purpose them with different address_types.  For example, a vGPU device could have vendor_id\u003d\"NVIDIA\" and product_id\u003d\"GRID K240Q\".  Any device could overload the vendor_id / product_id to uniquely identify a suitable grouping.\n\nThat would also simplify the HostDevicePool by not needing the group_id.","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"7f681d2407b22d2d3a6e2aa9c8e28d79e1a94e53","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \u0027address_type\u0027: fields.HostDeviceTypeField(),"},{"line_number":77,"context_line":"        \u0027address\u0027: fields.StringField(),"},{"line_number":78,"context_line":"        \u0027compute_node_id\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":79,"context_line":"        \u0027vendor_id\u0027: fields.StringField(),"},{"line_number":80,"context_line":"        \u0027product_id\u0027: fields.StringField(),"},{"line_number":81,"context_line":"        \u0027status\u0027: fields.HostDeviceStatusField(),"},{"line_number":82,"context_line":"        # Hypervisor\u0027s identification for the device, the string format"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_244c00c7","line":79,"in_reply_to":"da6895a0_bc0037ac","updated":"2016-10-21 15:52:36.000000000","message":"Actually I think it makes the host device to be a more common concept with your suggestion. it should benefit for introducing new devices in the future.","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"aacb8c74a6ecf98b8a081e18c0fc699736de0b7b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        \u0027address_type\u0027: fields.HostDeviceTypeField(),"},{"line_number":77,"context_line":"        \u0027address\u0027: fields.StringField(),"},{"line_number":78,"context_line":"        \u0027compute_node_id\u0027: fields.IntegerField(nullable\u003dTrue),"},{"line_number":79,"context_line":"        \u0027vendor_id\u0027: fields.StringField(),"},{"line_number":80,"context_line":"        \u0027product_id\u0027: fields.StringField(),"},{"line_number":81,"context_line":"        \u0027status\u0027: fields.HostDeviceStatusField(),"},{"line_number":82,"context_line":"        # Hypervisor\u0027s identification for the device, the string format"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_89a5e505","line":79,"in_reply_to":"da6895a0_bc0037ac","updated":"2016-10-21 15:12:42.000000000","message":"It sounds good if we re-purpose the \"vendor_id\" and \"product_id\". It\u0027s able to resolve the problem which were expected to be resolved by group_id.Taking vGPU for example, it\u0027s more reasonable to make it to have the same vendor_id as the PGPU but make the VGPU\u0027s model name as the product_id? \n\nDaniel suggested to rename dev_type to address_type if we can eliminate using dev_type; All are easy to avoid using dev_type except here https://github.com/openstack/nova/blob/master/nova/pci/stats.py#L227 \nwhich says PF and VF may have the same product_id and it depends on dev_type to filter PFs. If we don\u0027t introduce \"group_id\", we should keep this dev_type. But when Daniel commented, he was helping to resolve the issue that I re-used dev_type to represent two concepts. Maybe it\u0027s fine to make host_device having both dev_type (representing the device type: e.g. PCI, PF, VF, VGPU, etc) and address_type (representing different address patterns).\nActually it looks easier to keep dev_type, as less impact on SR-IOV and other real PCI devices.\n@Daniel: any thoughs?","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6c8525c56f0b6bdb9576adf434003b976b65d3c5","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    e.g."},{"line_number":134,"context_line":"    host_device_alias \u003d {\"vendor_id\":\"8086\", \"product_id\":\"154d\",\\"},{"line_number":135,"context_line":"    \"group_id\":\"PF\", \"name\":\"a1\"}"},{"line_number":136,"context_line":"    host_device_passthrough_whitelist \u003d {\"vendor_id\":\"8086\",\\"},{"line_number":137,"context_line":"    \"product_id\":\"154d\"}"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_7cf5bf81","line":135,"updated":"2016-10-21 09:23:16.000000000","message":"Let\u0027s also have a vGPU example here?","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"aacb8c74a6ecf98b8a081e18c0fc699736de0b7b","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    e.g."},{"line_number":134,"context_line":"    host_device_alias \u003d {\"vendor_id\":\"8086\", \"product_id\":\"154d\",\\"},{"line_number":135,"context_line":"    \"group_id\":\"PF\", \"name\":\"a1\"}"},{"line_number":136,"context_line":"    host_device_passthrough_whitelist \u003d {\"vendor_id\":\"8086\",\\"},{"line_number":137,"context_line":"    \"product_id\":\"154d\"}"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_094f15be","line":135,"in_reply_to":"da6895a0_7cf5bf81","updated":"2016-10-21 15:12:42.000000000","message":"Yes, better to have a VGPU example. Will include that in the next patch","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"6c8525c56f0b6bdb9576adf434003b976b65d3c5","unresolved":false,"context_lines":[{"line_number":153,"context_line":"* compatibility consideration:"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"  * In order to be back compatible with the existing PCI pass through, will"},{"line_number":156,"context_line":"    keep PciPassthroughFilter as a link to the new HostDevicePassthroughFilter."},{"line_number":157,"context_line":"    But mark this schedule filter as deprecated in this release."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"  * Support both pci* and host_device* in the nova conf files and instance"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_1c35a345","line":156,"updated":"2016-10-21 09:23:16.000000000","message":"Use the term \u0027symlink\u0027 rather than just link to be more specific.","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"aacb8c74a6ecf98b8a081e18c0fc699736de0b7b","unresolved":false,"context_lines":[{"line_number":153,"context_line":"* compatibility consideration:"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"  * In order to be back compatible with the existing PCI pass through, will"},{"line_number":156,"context_line":"    keep PciPassthroughFilter as a link to the new HostDevicePassthroughFilter."},{"line_number":157,"context_line":"    But mark this schedule filter as deprecated in this release."},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"  * Support both pci* and host_device* in the nova conf files and instance"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_294cd9c6","line":156,"in_reply_to":"da6895a0_1c35a345","updated":"2016-10-21 15:12:42.000000000","message":"sure.","commit_id":"d8444f84e66380d6748638920a5b0f02623c4380"}]}
