)]}'
{"specs/mitaka/approved/xenapi-add-support-for-vgpu.rst":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"3df22b5ac8a1077572709d59d821155d6568c011","unresolved":false,"context_lines":[{"line_number":16,"context_line":"Problem description"},{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Current nova implement is NOT supporting VGPU; but the end-user may"},{"line_number":20,"context_line":"expect that function for graphics acceleration in VMs. And it can\u0027t be"},{"line_number":21,"context_line":"achieved by the PCI passthough case as no PCI device exists for VGPU."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_ab4cbac8","line":19,"updated":"2015-10-21 03:52:27.000000000","message":"nit: perhaps something like? Nova does not support the concept of a VGPU","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"35acf91f1387cb76e16ea83a4e6fe0427997afad","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Current nova implement is NOT supporting VGPU; but the end-user may"},{"line_number":20,"context_line":"expect that function for graphics acceleration in VMs. And it can\u0027t be"},{"line_number":21,"context_line":"achieved by the PCI passthough case as no PCI device exists for VGPU."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Use Cases"},{"line_number":24,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_dd2d1896","line":21,"updated":"2015-11-11 10:18:29.000000000","message":"Nit: Its tempting to open with the last sentence, then talk about graphics acceleration and why its better than just PCI passthrough for GPU devices.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f751c023386eb4275bd320f92abda84479c1a97","unresolved":false,"context_lines":[{"line_number":26,"context_line":"The end-user may create a VM  instance to equiped with a VGPU. The user can"},{"line_number":27,"context_line":"specify the VGPU\u0027s model type in flavor with the property of extra_specs."},{"line_number":28,"context_line":"Nova schedules hosts basing on the remaininig VGPU capacity and boot a VM"},{"line_number":29,"context_line":"with a VGPU equipped."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Project Priority"},{"line_number":32,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_a20cb13b","line":29,"updated":"2015-11-11 10:12:53.000000000","message":"I think we should add in here a description of the typical models and capacities in a \"typical\" setup, say 2 x vGPU card things?\n\nSome of the details seem to be here:\nhttp://support.citrix.com/servlet/KbServlet/download/38329-102-714577/XenServer-6.5.0-graphics.pdf\n\nBut it would be good to talk about concrete examples, just briefly.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"0dcd81faf57011741381680d141bc602a520b2a2","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Nova schedules hosts basing on the remaininig VGPU capacity and boot a VM"},{"line_number":29,"context_line":"with a VGPU equipped."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Project Priority"},{"line_number":32,"context_line":"-----------------"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_c5d10859","line":31,"updated":"2015-10-07 12:11:57.000000000","message":"As described in http://lists.openstack.org/pipermail/openstack-dev/2015-October/076326.html please remove the \"Project Priority\" stanza in the next iteraction of this spec.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"3df22b5ac8a1077572709d59d821155d6568c011","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   extra_specs."},{"line_number":46,"context_line":"4. Add new funtions to xenapi\u0027s instance spawn function to check the"},{"line_number":47,"context_line":"   flavor\u0027s extra_specs. If a VGPU is required, it creates a VGPU with"},{"line_number":48,"context_line":"   the requested model and attaches it to the new VM instance."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Alternatives"},{"line_number":51,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_2bcf4a2a","line":48,"updated":"2015-10-21 03:52:27.000000000","message":"The proposed change needs to consider the work associated with: http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/resource-objects.html","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"5b39f1909c58efd558e6e9b3295a2a71fc003305","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Alternatives"},{"line_number":51,"context_line":"------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Data model impact"},{"line_number":56,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_dd8f5828","line":53,"updated":"2015-11-11 10:25:27.000000000","message":"I\u0027m wondering if there is sense in integrating vGPU handling in scheduling with the PCI device handling code, or in a a similar manner to the PCI device handling.  vGPU is conceptually similar to the SR-IOV assignment and at least in KVM, vGPUs are quite likely to in fact be managed as virtual PCI devices.\n\nThere is potential for similar interactions that we have with SRIOV where you can choose to either assign a VF or a PF. With the GPU it may be desirable to be able to dynamically choose between assigning a vGPU to a guest, vs assigning the entire GPU device to the guest. This would suggest some integration with PCI device resource handling is likely to be needed.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"e70656c6d74d594c432d5636382287c0ef05964b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Alternatives"},{"line_number":51,"context_line":"------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Data model impact"},{"line_number":56,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_83e96ee8","line":53,"in_reply_to":"da85f559_dd8f5828","updated":"2015-11-11 11:33:43.000000000","message":"We did consider trying to integrate it with the PCI passthrough code, but this will be a pain in the driver code for XenAPI.\nThe VGPU devices are not necessarily PCI devices (only real SR-IOV devices would show up as PCI devices) and might not even be statically allocated.  For example, with GVT-g the aperture size is defined by the model that is requested and is therefore _much_ more like memory/vCPUs than a single PCI device.\n\nGiven the differences in implementation between KVM and XenAPI I suggest that the only way to have a workable cross-driver implementation is to have it abstracted from the PCI interfaces.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f751c023386eb4275bd320f92abda84479c1a97","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Need add a new text field to the class of ComputeNode and HostState to hold"},{"line_number":59,"context_line":"the vgpu capacity information;"},{"line_number":60,"context_line":"Need add a new Text typed column in the DB table of compute_nodes to save the"},{"line_number":61,"context_line":"vgpu capacity information in nova database."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"REST API impact"},{"line_number":64,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_6272497d","line":61,"updated":"2015-11-11 10:12:53.000000000","message":"feels like the vgpu field should be a new versioned object, can you describe the structure of that here please?","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ee0a6dc4c19cfd933a7c9f0c124bc6436313f57b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Need add a new text field to the class of ComputeNode and HostState to hold"},{"line_number":59,"context_line":"the vgpu capacity information;"},{"line_number":60,"context_line":"Need add a new Text typed column in the DB table of compute_nodes to save the"},{"line_number":61,"context_line":"vgpu capacity information in nova database."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"REST API impact"},{"line_number":64,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_22f8c148","line":61,"in_reply_to":"da85f559_6272497d","updated":"2015-11-11 10:14:02.000000000","message":"Here is an example:\nhttps://github.com/openstack/nova/blob/master/nova/objects/compute_node.py#L81\n\nNot totally sure how that works with the capabilities filter though.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"f01fcef379f50970a9ced5391d78eb4514395d82","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  ,"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"which means the VM to be created by using this flavor should have a VGPU with"},{"line_number":90,"context_line":"the model-name as \u003cVGPU model-name\u003e."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Performance Impact"},{"line_number":93,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_a502cc6d","line":90,"updated":"2015-10-07 12:21:34.000000000","message":"Is there any sense in having image meta property deal with vGPU enablement / model, and only use flavour for controlling access to the vGPU feature.\n\neg a flavour prop     hw:vgpu_permitted\u003dyes|no  and a image meta prop  hw_vgpu_enabled\u003dyes|no and  hw_vgpu_model\u003dMODEL-NAME.\n\nWith the way you propose, the admin has to create 2 sets of flavours, one set with vgpu disabled and one set with vgpu enabled.\n\nWith what I suggest, the admin is not forced into creating separate flavours. THey can just decide if existing flavours will permit the use of vGPUs. Actual enablement will be decided by the tenant user setting an image prop.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f751c023386eb4275bd320f92abda84479c1a97","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  ,"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"which means the VM to be created by using this flavor should have a VGPU with"},{"line_number":90,"context_line":"the model-name as \u003cVGPU model-name\u003e."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Performance Impact"},{"line_number":93,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_62e7a911","line":90,"in_reply_to":"3a29b11f_aee5a838","updated":"2015-11-11 10:12:53.000000000","message":"honestly, I think the flavors should be defining it all, because it has capacity implications.\n\nAn image can say it requires a GPU, and fail for flavours that don\u0027t have that capability, although thats a bit limited.\n\nLets just do it in the way you get lots of flavors for now, and let the flavor de-composition work fix this for us.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"07830195bf3a00b7a8c61e88312065450c034c30","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  ,"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"which means the VM to be created by using this flavor should have a VGPU with"},{"line_number":90,"context_line":"the model-name as \u003cVGPU model-name\u003e."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Performance Impact"},{"line_number":93,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a2fa921_c84b5f86","line":90,"in_reply_to":"7a2fa921_a502cc6d","updated":"2015-10-07 12:49:05.000000000","message":"Sounds good.\n\nSo the admin would set capabilities:hw:vgpu_permitted in the extra_specs and the tenant would set capabilities:hw_vgpu_enabled?\n\nIf we don\u0027t use the capabilities: namespace then I think we can\u0027t use the existing scheduler filter?","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"3df22b5ac8a1077572709d59d821155d6568c011","unresolved":false,"context_lines":[{"line_number":87,"context_line":"  ,"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"which means the VM to be created by using this flavor should have a VGPU with"},{"line_number":90,"context_line":"the model-name as \u003cVGPU model-name\u003e."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Performance Impact"},{"line_number":93,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_aee5a838","line":90,"in_reply_to":"7a2fa921_c84b5f86","updated":"2015-10-21 03:52:27.000000000","message":"Yeah you\u0027ll need to tweak thins a little but nothing major.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f751c023386eb4275bd320f92abda84479c1a97","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Implementation"},{"line_number":110,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"See `Proposed change`_ section above."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Assignee(s)"},{"line_number":115,"context_line":"-----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_029edd62","line":112,"updated":"2015-11-11 10:12:53.000000000","message":"Nit: can drop this sentence I think.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f751c023386eb4275bd320f92abda84479c1a97","unresolved":false,"context_lines":[{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Would need new unit tests to cover host filter basing VGPU capacity and VM"},{"line_number":143,"context_line":"generation with VGPU."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_c2c9b527","line":143,"updated":"2015-11-11 10:12:53.000000000","message":"Unit tests are assumed.\n\nWhat can be done in the XenServer CI for this? or maybe using a fake system for some level of functional test?","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"2ddfd13e41bf90ef1ac043146dc086c768cd4a4b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Would need new unit tests to cover host filter basing VGPU capacity and VM"},{"line_number":143,"context_line":"generation with VGPU."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_23f52256","line":143,"in_reply_to":"da85f559_c2c9b527","updated":"2015-11-11 11:42:53.000000000","message":"We will definitely fake up a VGPU and use the unit tests to verify this; functional tests definitely need hardware (otherwise what would you pass through to the VM) so can\u0027t be faked.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"3df22b5ac8a1077572709d59d821155d6568c011","unresolved":false,"context_lines":[{"line_number":146,"context_line":"Documentation Impact"},{"line_number":147,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"May need document how to specify the VGPU model in the flavor extra_specs."},{"line_number":150,"context_line":"It should be similar as:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a29b11f_abfa7a41","line":149,"updated":"2015-10-21 03:52:27.000000000","message":"You *will* need to document the new properties.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9f751c023386eb4275bd320f92abda84479c1a97","unresolved":false,"context_lines":[{"line_number":158,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"The prototype code:"},{"line_number":161,"context_line":"https://review.openstack.org/#/c/223426/"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da85f559_62db29ed","line":161,"updated":"2015-11-11 10:12:53.000000000","message":"Not sure you want to include this, launchpad does this better really.","commit_id":"6bf1aa2a0386f8be28e4f9df12bb3990c26a730b"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"34a35a8f78fd0c8d353216e888e6c8b4a350931d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"per GPU is different. The following table is trying to get an example by"},{"line_number":40,"context_line":"using the model type of \"GRID K280Q\" supported by the NVIDIA GRID cards:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Card | No. of PGPUs | VGPU types | Intended Use Case | Max Resolution |"},{"line_number":43,"context_line":"No. of vGPUs per GPU | No. of vGPUs per Card |"},{"line_number":44,"context_line":"GRID K2 | 2 | GRID K280Q | Designer/Power User | 2560x1600 | 1 | 2"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_94fba178","line":42,"updated":"2015-11-12 13:49:06.000000000","message":"Can we re-format this to be more readable?  For example, splitting to individual lines\nCard: GRID K2\nNo. of PGPUs: 2","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"559addd220576e1643850db37a957984739b08bc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"per GPU is different. The following table is trying to get an example by"},{"line_number":40,"context_line":"using the model type of \"GRID K280Q\" supported by the NVIDIA GRID cards:"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Card | No. of PGPUs | VGPU types | Intended Use Case | Max Resolution |"},{"line_number":43,"context_line":"No. of vGPUs per GPU | No. of vGPUs per Card |"},{"line_number":44,"context_line":"GRID K2 | 2 | GRID K280Q | Designer/Power User | 2560x1600 | 1 | 2"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_34e168d1","line":42,"in_reply_to":"da85f559_94fba178","updated":"2015-11-13 07:30:09.000000000","message":"Done","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"34a35a8f78fd0c8d353216e888e6c8b4a350931d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"GRID K2 | 2 | GRID K280Q | Designer/Power User | 2560x1600 | 1 | 2"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Note: the above is just an example, indeed GRID K2 also supports other VGPU"},{"line_number":47,"context_line":"models: K260Q, K240Q, K220Q, K200."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"2. With XenAPI driver, resource_tracker retrieves the capacity for the"},{"line_number":50,"context_line":"available VGPUs from the hypervisor and save them in the host_stat as"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_741abdc7","line":47,"updated":"2015-11-12 13:49:06.000000000","message":"\"Supports other VGPU models in XenServer: K260Q... . Other hypervisors and other graphics cards may define different model types that are exposed.","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"559addd220576e1643850db37a957984739b08bc","unresolved":false,"context_lines":[{"line_number":44,"context_line":"GRID K2 | 2 | GRID K280Q | Designer/Power User | 2560x1600 | 1 | 2"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Note: the above is just an example, indeed GRID K2 also supports other VGPU"},{"line_number":47,"context_line":"models: K260Q, K240Q, K220Q, K200."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"2. With XenAPI driver, resource_tracker retrieves the capacity for the"},{"line_number":50,"context_line":"available VGPUs from the hypervisor and save them in the host_stat as"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_d4e57cdc","line":47,"in_reply_to":"da85f559_741abdc7","updated":"2015-11-13 07:30:09.000000000","message":"Done","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"34a35a8f78fd0c8d353216e888e6c8b4a350931d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Note: the above is just an example, indeed GRID K2 also supports other VGPU"},{"line_number":47,"context_line":"models: K260Q, K240Q, K220Q, K200."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"2. With XenAPI driver, resource_tracker retrieves the capacity for the"},{"line_number":50,"context_line":"available VGPUs from the hypervisor and save them in the host_stat as"},{"line_number":51,"context_line":"a model-name:remaining-capacity pairs dict."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_14ca511b","line":49,"updated":"2015-11-12 13:49:06.000000000","message":"This isn\u0027t a use case, but instead is a proposed change.\nI think the first bullet point is all we need and 2-5 is not necessary here.  This is covered in the proposed change.","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"559addd220576e1643850db37a957984739b08bc","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Note: the above is just an example, indeed GRID K2 also supports other VGPU"},{"line_number":47,"context_line":"models: K260Q, K240Q, K220Q, K200."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"2. With XenAPI driver, resource_tracker retrieves the capacity for the"},{"line_number":50,"context_line":"available VGPUs from the hypervisor and save them in the host_stat as"},{"line_number":51,"context_line":"a model-name:remaining-capacity pairs dict."},{"line_number":52,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_94d054f9","line":49,"in_reply_to":"da85f559_14ca511b","updated":"2015-11-13 07:30:09.000000000","message":"Done","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"34a35a8f78fd0c8d353216e888e6c8b4a350931d","unresolved":false,"context_lines":[{"line_number":58,"context_line":"which have remaining capacity to hold the requested VGPU model. And the"},{"line_number":59,"context_line":"VMs will boot on the target hosts with a VGPU attached."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"5. VMs can use the vGPU just as a normal GPU is equipped."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"6. resource_tracker will update the available VGPU model list and the"},{"line_number":64,"context_line":"remaining capacity accordingly."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_14f1f16a","line":61,"updated":"2015-11-12 13:49:06.000000000","message":"VGPU not vGPU","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"559addd220576e1643850db37a957984739b08bc","unresolved":false,"context_lines":[{"line_number":58,"context_line":"which have remaining capacity to hold the requested VGPU model. And the"},{"line_number":59,"context_line":"VMs will boot on the target hosts with a VGPU attached."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"5. VMs can use the vGPU just as a normal GPU is equipped."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"6. resource_tracker will update the available VGPU model list and the"},{"line_number":64,"context_line":"remaining capacity accordingly."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_b9ca316d","line":61,"in_reply_to":"da85f559_14f1f16a","updated":"2015-11-13 07:30:09.000000000","message":"Done","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"34a35a8f78fd0c8d353216e888e6c8b4a350931d","unresolved":false,"context_lines":[{"line_number":94,"context_line":"the other alternative is to define the model name in the image"},{"line_number":95,"context_line":"meta_data and control flag in flavor to permit the VGPU feature"},{"line_number":96,"context_line":"or not. But it seems have some limiation and flavor has capacity"},{"line_number":97,"context_line":"implicatins, so it seems flavor is a better place to define all"},{"line_number":98,"context_line":"the request spec for it."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_37051710","line":97,"updated":"2015-11-12 13:49:06.000000000","message":"Typo: \"implications\"","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"559addd220576e1643850db37a957984739b08bc","unresolved":false,"context_lines":[{"line_number":94,"context_line":"the other alternative is to define the model name in the image"},{"line_number":95,"context_line":"meta_data and control flag in flavor to permit the VGPU feature"},{"line_number":96,"context_line":"or not. But it seems have some limiation and flavor has capacity"},{"line_number":97,"context_line":"implicatins, so it seems flavor is a better place to define all"},{"line_number":98,"context_line":"the request spec for it."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_f9b759f3","line":97,"in_reply_to":"da85f559_37051710","updated":"2015-11-13 07:30:09.000000000","message":"Done","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"34a35a8f78fd0c8d353216e888e6c8b4a350931d","unresolved":false,"context_lines":[{"line_number":107,"context_line":".. code:: python"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    class hw_vgpu(object):"},{"line_number":110,"context_line":"        def __init__(self, vgpu_mode):"},{"line_number":111,"context_line":"            #the vgpu_model is a dict holding the pairs of"},{"line_number":112,"context_line":"            #\u003cmodel-name:remaining-capacity\u003e"},{"line_number":113,"context_line":"            #similar as:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_d76ccbd1","line":110,"updated":"2015-11-12 13:49:06.000000000","message":"I don\u0027t like \"vgpu_mode\" here; but this is just a spec.","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"559addd220576e1643850db37a957984739b08bc","unresolved":false,"context_lines":[{"line_number":107,"context_line":".. code:: python"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    class hw_vgpu(object):"},{"line_number":110,"context_line":"        def __init__(self, vgpu_mode):"},{"line_number":111,"context_line":"            #the vgpu_model is a dict holding the pairs of"},{"line_number":112,"context_line":"            #\u003cmodel-name:remaining-capacity\u003e"},{"line_number":113,"context_line":"            #similar as:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da85f559_d9b29506","line":110,"in_reply_to":"da85f559_d76ccbd1","updated":"2015-11-13 07:30:09.000000000","message":"ah, yes. My intention is vgpu_model. I will change it in the next version update.","commit_id":"36dd471b3ef93de10a455ae6d353ccd4eca9d1e1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Currently nova does not support the concept of VGPU; and PCI passthough can\u0027t"},{"line_number":20,"context_line":"help for the VGPU devices as VGPU devices are not necessarily PCI devices(only"},{"line_number":21,"context_line":"real SR-IOV devices would show up as PCI devices) and might not be statically"},{"line_number":22,"context_line":"allocated. For example, with GVT-g the aperture size is defined by the model"},{"line_number":23,"context_line":"that is requested and is therefore much more like memory/vCPUs than a single"},{"line_number":24,"context_line":"PCI device. So the proposal is to add a new resource type for VGPU to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_05cc59b9","line":21,"updated":"2015-11-20 00:58:27.000000000","message":"Not all PCI devices are SR-IOV NICs. I\u0027m not entirely sure what the statement \"(only real SR-IOV devices would show up as PCI devices)\".","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":20,"context_line":"help for the VGPU devices as VGPU devices are not necessarily PCI devices(only"},{"line_number":21,"context_line":"real SR-IOV devices would show up as PCI devices) and might not be statically"},{"line_number":22,"context_line":"allocated. For example, with GVT-g the aperture size is defined by the model"},{"line_number":23,"context_line":"that is requested and is therefore much more like memory/vCPUs than a single"},{"line_number":24,"context_line":"PCI device. So the proposal is to add a new resource type for VGPU to"},{"line_number":25,"context_line":"support the function of graphics acceleration in VMs. The resource_tracker"},{"line_number":26,"context_line":"will track the capacity of available VGPU models for the host. And the tenant"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_650205b6","line":23,"updated":"2015-11-20 00:58:27.000000000","message":"Actually, vGPUs are not more like memory/vCPUs than single PCI devices. They are actually more like NUMA cells than anything else.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"1. A GPU card can contain multiple Graphics Processing Units (GPU); and each"},{"line_number":35,"context_line":"physical GPU can support different types of VGPUs. The VGPU types are defined"},{"line_number":36,"context_line":"with different model names. Differnt model types have a fixed amount of"},{"line_number":37,"context_line":"framebuff, number of supported display heads and maximum resolutions and"},{"line_number":38,"context_line":"are targeted at different classes of workload. The number of VGPUs supported"},{"line_number":39,"context_line":"per GPU is different. The following table is trying to get an example by"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_a54ead38","line":36,"updated":"2015-11-20 00:58:27.000000000","message":"s/Differnt/Different/","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":37,"context_line":"framebuff, number of supported display heads and maximum resolutions and"},{"line_number":38,"context_line":"are targeted at different classes of workload. The number of VGPUs supported"},{"line_number":39,"context_line":"per GPU is different. The following table is trying to get an example by"},{"line_number":40,"context_line":"using the model type of \"GRID K280Q\" supported by the NVIDIA GRID cards:"},{"line_number":41,"context_line":"+ -------------------------------------------+"},{"line_number":42,"context_line":"| Card Type            | GRID K2             |"},{"line_number":43,"context_line":"| No. of PGPUs         | 2                   |"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_e556f5cc","line":40,"updated":"2015-11-20 00:58:27.000000000","message":"Technically, the table below lists a K260Q model, not a K280Q model.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":57,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"1. With XenAPI driver, resource_tracker retrieves the capacity for the"},{"line_number":60,"context_line":"available VGPUs from the hypervisor and save them in the host_stat as"},{"line_number":61,"context_line":"a model-name:remaining-capacity pairs dict."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"2. The admin can define the requested VGPU model name(e.g. \"GRID K260Q\")"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_8514c9e8","line":60,"updated":"2015-11-20 00:58:27.000000000","message":"what is this \"host_stat\" that you are referring to above? Are you referring to the HostState objects *in the scheduler*? i.e. here?\n\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L133\n\nIf that is the case, that is the scheduler, not the resource_tracker, which is in the nova-compute daemon:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"1. With XenAPI driver, resource_tracker retrieves the capacity for the"},{"line_number":60,"context_line":"available VGPUs from the hypervisor and save them in the host_stat as"},{"line_number":61,"context_line":"a model-name:remaining-capacity pairs dict."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"2. The admin can define the requested VGPU model name(e.g. \"GRID K260Q\")"},{"line_number":64,"context_line":"in the flavor extra_spec. The tenant users can request to boot VMs with"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_a529cde7","line":61,"updated":"2015-11-20 00:58:27.000000000","message":"-1. You are describing a new quantitative resource. We need to have a specific field in the database for this. Jamming inventory information into a random key/value dictionary isn\u0027t appropriate.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"674d38be8a781caef28527f3e31936765247b96d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"statically allocated. For example, with GVT-g the aperture size is"},{"line_number":83,"context_line":"defined by the model that is requested. It is therefore much more"},{"line_number":84,"context_line":"like memory/vCPUs than a single PCI device. So our proposal is to"},{"line_number":85,"context_line":"introduce the new VGPU resource type into nova."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"2. On the question where to define the request spec for VGPU model,"},{"line_number":88,"context_line":"the other alternative is to define the model name in the image"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da85f559_8d511d11","line":85,"updated":"2015-11-13 13:12:21.000000000","message":"If there is another revision, I\u0027d suggest adding \"PCI devices can easily be added to this resource type, making the implementation compatible with other hypervisor implementations (e.g. libvirt)\"","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"31df55d57c26a2159d8e0f4f71d6e21fb7a5d01b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"statically allocated. For example, with GVT-g the aperture size is"},{"line_number":83,"context_line":"defined by the model that is requested. It is therefore much more"},{"line_number":84,"context_line":"like memory/vCPUs than a single PCI device. So our proposal is to"},{"line_number":85,"context_line":"introduce the new VGPU resource type into nova."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"2. On the question where to define the request spec for VGPU model,"},{"line_number":88,"context_line":"the other alternative is to define the model name in the image"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_64c3078a","line":85,"in_reply_to":"ba8a016a_29eddab6","updated":"2015-11-19 14:46:01.000000000","message":"\"I think it\u0027s acceptable to decide in advance if a PCI device is going to be available for passthrough or VGPU\"\n\nThat\u0027s exactly what was said when PCI assignment was implemented, and we\u0027re now having to fix this, so this makes me pretty wary of making such an assumption yet again.\n\nAlso, the issue of VGPUs spread 1-per-PCI device is the same that we have to solve for PCI devices to make sure we don\u0027t spread 1 VF per SRIOV device, leading of starvation if we need to assign the fulll PF.\n\nIt just feels like we\u0027re going to be tackling all the same problems with vGPUs that we have to tackle with SRIOV  VFs, even though vGPUs are not literally PCI devices.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"59c3495beccaf7102101d612a7586e08fcea3888","unresolved":false,"context_lines":[{"line_number":82,"context_line":"statically allocated. For example, with GVT-g the aperture size is"},{"line_number":83,"context_line":"defined by the model that is requested. It is therefore much more"},{"line_number":84,"context_line":"like memory/vCPUs than a single PCI device. So our proposal is to"},{"line_number":85,"context_line":"introduce the new VGPU resource type into nova."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"2. On the question where to define the request spec for VGPU model,"},{"line_number":88,"context_line":"the other alternative is to define the model name in the image"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_e06ca3d1","line":85,"in_reply_to":"ba8a016a_29eddab6","updated":"2015-11-20 00:58:27.000000000","message":"I am unwilling to add yet another unicorn/rainbow method of tracking a new resource type. This spec should wait until the pci-generate-stats, resource-objects and resource-providers work is completed. I know that\u0027s a pain in the ass, but unfortunately, the alternate is to add a bunch of technical debt, and I\u0027m not willing to do that right now.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"5c6cca4d070e096ab958c031b29f871966048fc1","unresolved":false,"context_lines":[{"line_number":82,"context_line":"statically allocated. For example, with GVT-g the aperture size is"},{"line_number":83,"context_line":"defined by the model that is requested. It is therefore much more"},{"line_number":84,"context_line":"like memory/vCPUs than a single PCI device. So our proposal is to"},{"line_number":85,"context_line":"introduce the new VGPU resource type into nova."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"2. On the question where to define the request spec for VGPU model,"},{"line_number":88,"context_line":"the other alternative is to define the model name in the image"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_29eddab6","line":85,"in_reply_to":"ba8a016a_334467b5","updated":"2015-11-19 14:36:12.000000000","message":"Yes, VGPU devices are related to a PCI device, but I am concerned that trying to encode that relationship into a generic host device assignment model may be complicated.\n\nAs it is, the cloud administrator is required to define a set of PCI devices that can be passed through; I think it\u0027s acceptable to decide in advance if a PCI device is going to be available for passthrough or VGPU.  If this doesn\u0027t happen, we\u0027d also need to have some more scheduler logic and weighting to make sure that VGPU devices aren\u0027t spread 1-per-PCI device which could otherwise lead to starvation of the PCI devices.\n\nI think it\u0027s better to keep PCI devices as one-shot devices, and have virtualised devices modeled in a different way","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"9ee94ce4af0a9d24b83819f63ea228b157b4a934","unresolved":false,"context_lines":[{"line_number":82,"context_line":"statically allocated. For example, with GVT-g the aperture size is"},{"line_number":83,"context_line":"defined by the model that is requested. It is therefore much more"},{"line_number":84,"context_line":"like memory/vCPUs than a single PCI device. So our proposal is to"},{"line_number":85,"context_line":"introduce the new VGPU resource type into nova."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"2. On the question where to define the request spec for VGPU model,"},{"line_number":88,"context_line":"the other alternative is to define the model name in the image"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_2a82a9c8","line":85,"in_reply_to":"ba8a016a_64c3078a","updated":"2015-11-19 15:01:54.000000000","message":"The other thing that pushes me towards modelling them similarly to SRIOV devices is that in the future vGPUs may in fact use SRIOV, so will become real PCI devices.  This again suggests to me Nova would be better off having a single host device mangement layer for resource tracker, rather than separating  vGPUS and PCI devices into separate code.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"505ad034295db5505ede4f65002d1cf0059c2530","unresolved":false,"context_lines":[{"line_number":82,"context_line":"statically allocated. For example, with GVT-g the aperture size is"},{"line_number":83,"context_line":"defined by the model that is requested. It is therefore much more"},{"line_number":84,"context_line":"like memory/vCPUs than a single PCI device. So our proposal is to"},{"line_number":85,"context_line":"introduce the new VGPU resource type into nova."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"2. On the question where to define the request spec for VGPU model,"},{"line_number":88,"context_line":"the other alternative is to define the model name in the image"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_334467b5","line":85,"in_reply_to":"da85f559_8d511d11","updated":"2015-11-19 14:11:15.000000000","message":"I accept that vGPU devices are not literally PCI devices like SR-IOV VFs are. The primary GPU they are assigned from though will be a PCI device. We already see demand for users to be able to choose between assigning a full SR-IOV device, vs assigning just VFs from a SR-IOV device.  So I imagine it is inevitable that we\u0027ll have demand for being able to choose between assigning the fully GPU PCI device, vs just a vGPU from the GPU device. So even though vGPUs are not real PCI devices, there is definitely a relationship here to the PCI device tracker. \n\nSo my gut feeling is that we should probably consider generalizing the \"PCI device assignment\" code into a \"host device assignment\" which is more agnostic to the type of device.   We\u0027ve also seen requests for USB device assignment in the past which has similar needs.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"505ad034295db5505ede4f65002d1cf0059c2530","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            #  \u0027GRID K240Q\u0027: 8,"},{"line_number":111,"context_line":"            #  \u0027GRID K260Q\u0027: 16,"},{"line_number":112,"context_line":"            #  \u0027GRID K260Q\u0027: 16,"},{"line_number":113,"context_line":"            #  \u0027GRID K2\u0027: 1}"},{"line_number":114,"context_line":"            self.vgpu_model \u003d vgpu_model"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"2. Add a new Object field to the class of ComputeNode and HostState to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_734aef27","line":113,"updated":"2015-11-19 14:11:15.000000000","message":"I\u0027m somewhat concerned about this data format, as it feels somewhat similar to the \"summarized pci stats\" that we currently have, and in the resource tracker discussion we decided that was not a good model and we wanted to directly track individual devices. I see in this example you have the same model appearing multiple times, so there\u0027s no obvious unique key here to let the schedular decide which to allocate to a guest.","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"78992e014d5b74328c875ec589acc2cd10a3a141","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            #  \u0027GRID K240Q\u0027: 8,"},{"line_number":111,"context_line":"            #  \u0027GRID K260Q\u0027: 16,"},{"line_number":112,"context_line":"            #  \u0027GRID K260Q\u0027: 16,"},{"line_number":113,"context_line":"            #  \u0027GRID K2\u0027: 1}"},{"line_number":114,"context_line":"            self.vgpu_model \u003d vgpu_model"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"2. Add a new Object field to the class of ComputeNode and HostState to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ba8a016a_2e8ba069","line":113,"in_reply_to":"ba8a016a_734aef27","updated":"2015-11-19 14:18:24.000000000","message":"Having the same model appearing multiple times is a mistake, and does need to be fixed in the next version of the spec irrespective of what resource tracking is used","commit_id":"f65473ebbddf0814eac91dfd672bf7265b5ba781"}]}
