)]}'
{"specs/ocata/approved/reserve-numa-with-pci.rst":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"8680f5301cefcce1ccc8e36afc4431d9ddc4fbe2","unresolved":false,"context_lines":[{"line_number":46,"context_line":"If an instance is bound to a PCI devices, then existing behavior dictates that"},{"line_number":47,"context_line":"the NUMA node associated with the PCI device will be used at a minimum."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"If an instance is not bound to a PCI device, then hosts without PCI devices"},{"line_number":50,"context_line":"will be used. If no host exists or is free then nodes with PCI devices will be"},{"line_number":51,"context_line":"used but actual NUMA nodes without an associated PCI device will be used. If"},{"line_number":52,"context_line":"no such node exists or is free then nodes will be assigned linearly as exists"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_726addee","line":49,"updated":"2016-09-01 20:02:25.000000000","message":"would be better as \"...then hosts without PCI devices will be preferred.  If no such host exists, then hosts with PCI devices will be used but NUMA nodes without associated PCI devices will be preferred.\"","commit_id":"25c69b16a3aba259126ce161d4fea02be9b0c93f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"05666c404c5b5287cdbdaf04b2b87a7680f32667","unresolved":false,"context_lines":[{"line_number":46,"context_line":"If an instance is bound to a PCI devices, then existing behavior dictates that"},{"line_number":47,"context_line":"the NUMA node associated with the PCI device will be used at a minimum."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"If an instance is not bound to a PCI device, then hosts without PCI devices"},{"line_number":50,"context_line":"will be used. If no host exists or is free then nodes with PCI devices will be"},{"line_number":51,"context_line":"used but actual NUMA nodes without an associated PCI device will be used. If"},{"line_number":52,"context_line":"no such node exists or is free then nodes will be assigned linearly as exists"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_1d9b4b67","line":49,"in_reply_to":"fa7ab95a_726addee","updated":"2016-09-02 09:41:58.000000000","message":"Done","commit_id":"25c69b16a3aba259126ce161d4fea02be9b0c93f"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"8680f5301cefcce1ccc8e36afc4431d9ddc4fbe2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"no such node exists or is free then nodes will be assigned linearly as exists"},{"line_number":53,"context_line":"today."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This will not allow instances with PCI devices to schedule entirely on nodes"},{"line_number":56,"context_line":"without a PCI device attached. Such as change is out of the scope of this"},{"line_number":57,"context_line":"blueprint."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_122a7190","line":57,"range":{"start_line":55,"start_character":25,"end_line":57,"end_character":10},"updated":"2016-09-01 20:02:25.000000000","message":"Not sure where you\u0027re going with this, presumably instances with PCI devices can\u0027t possible schedule on nodes without PCI devices.","commit_id":"25c69b16a3aba259126ce161d4fea02be9b0c93f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"05666c404c5b5287cdbdaf04b2b87a7680f32667","unresolved":false,"context_lines":[{"line_number":52,"context_line":"no such node exists or is free then nodes will be assigned linearly as exists"},{"line_number":53,"context_line":"today."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This will not allow instances with PCI devices to schedule entirely on nodes"},{"line_number":56,"context_line":"without a PCI device attached. Such as change is out of the scope of this"},{"line_number":57,"context_line":"blueprint."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"Alternatives"},{"line_number":60,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa7ab95a_5d24f30b","line":57,"range":{"start_line":55,"start_character":25,"end_line":57,"end_character":10},"in_reply_to":"fa7ab95a_122a7190","updated":"2016-09-02 09:41:58.000000000","message":"Yes, exactly. Reworded this.","commit_id":"25c69b16a3aba259126ce161d4fea02be9b0c93f"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"4a21f625a5f78a4c1862caca84298bddbad5b5e3","unresolved":false,"context_lines":[{"line_number":23,"context_line":"when configuring a high performance, low latency system for NFV workloads. The"},{"line_number":24,"context_line":"\u0027I/O (PCIe) Based NUMA Scheduling\u0027 blueprint optimized instance placement by"},{"line_number":25,"context_line":"ensuring that instances bound to a PCI device, via PCI passthrough requests,"},{"line_number":26,"context_line":"are scheduled to run on a NUMA node that is associated with said PCI device."},{"line_number":27,"context_line":"However, the scheduler use nodes linearly, even when there are only a select"},{"line_number":28,"context_line":"few of these many nodes associated with special resources like PCI devices. As"},{"line_number":29,"context_line":"a result, instances without any PCI requirements can fill host NUMA nodes with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa7ab95a_9aff5600","line":26,"updated":"2016-09-02 12:47:24.000000000","message":"You should mention that the placement is based on numa node co-location of PCI devices and vcpus.","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9da4febe72d656bb893b21d3e1029ac6d65ace7d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"when configuring a high performance, low latency system for NFV workloads. The"},{"line_number":24,"context_line":"\u0027I/O (PCIe) Based NUMA Scheduling\u0027 blueprint optimized instance placement by"},{"line_number":25,"context_line":"ensuring that instances bound to a PCI device, via PCI passthrough requests,"},{"line_number":26,"context_line":"are scheduled to run on a NUMA node that is associated with said PCI device."},{"line_number":27,"context_line":"However, the scheduler use nodes linearly, even when there are only a select"},{"line_number":28,"context_line":"few of these many nodes associated with special resources like PCI devices. As"},{"line_number":29,"context_line":"a result, instances without any PCI requirements can fill host NUMA nodes with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a98d1f4_659df158","line":26,"in_reply_to":"fa7ab95a_9aff5600","updated":"2016-09-30 10:24:17.000000000","message":"I\u0027m not entirely sure what you mean here. I\u0027ve reworded slightly. Can you let me know if that\u0027s what you wanted?","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"4a21f625a5f78a4c1862caca84298bddbad5b5e3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Users who wish to schedule some PCI-bound instances alongside other"},{"line_number":37,"context_line":"  instances while retaining optimal PCI-NUMA affinity for these instances"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"fa7ab95a_fa3ce2e2","line":37,"updated":"2016-09-02 12:47:24.000000000","message":"Perhaps the use cases should simply be a user wishes to schedule a guest without pci devices, the nova scheduler should prefer a compute without pci devices in order to not starve those resources (maybe this is not the right wording, but you get the point).","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9da4febe72d656bb893b21d3e1029ac6d65ace7d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"---------"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* Users who wish to schedule some PCI-bound instances alongside other"},{"line_number":37,"context_line":"  instances while retaining optimal PCI-NUMA affinity for these instances"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a98d1f4_e573c113","line":37,"in_reply_to":"fa7ab95a_fa3ce2e2","updated":"2016-09-30 10:24:17.000000000","message":"Done","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":22307,"name":"Carlos Conde","email":"carconper@gmail.com"},"change_message_id":"4bf122fdbc55a85d90fdf0fd3181afe21437b4c3","unresolved":false,"context_lines":[{"line_number":107,"context_line":"---------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Deployers will see increases in the number of PCI-attached instances they can"},{"line_number":110,"context_line":"boot in conjuction with non-PCI instances."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Developer impact"},{"line_number":113,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a8ec9b2_9ed9d9f5","line":110,"updated":"2016-09-18 17:46:37.000000000","message":"What you described here is the benefit of implementing your proposal more than the impact on the deployer side. This section is meant to be for the things that will affect how you deploy and configure OpenStack.\nIMO this proposal doesn\u0027t have an impact on the Deployer. It will clearly enhance the resource utilization of the hosts but it will be transparent for the deployer.\nI would recommend moving this to the first section of the spec as it clearly states the result of solving the problem following your proposal","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9da4febe72d656bb893b21d3e1029ac6d65ace7d","unresolved":false,"context_lines":[{"line_number":107,"context_line":"---------------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Deployers will see increases in the number of PCI-attached instances they can"},{"line_number":110,"context_line":"boot in conjuction with non-PCI instances."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Developer impact"},{"line_number":113,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a98d1f4_2aa578b4","line":110,"in_reply_to":"7a8ec9b2_9ed9d9f5","updated":"2016-09-30 10:24:17.000000000","message":"I agree. I\u0027ll do that in the next revision.","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"f901d3168edee89302bfffe15df00ab51e221179","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Work Items"},{"line_number":127,"context_line":"----------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Modify NUMATopologyFilter to prefer hosts without PCI devices attached when"},{"line_number":130,"context_line":"  there are no PCI devices attached to the instance"},{"line_number":131,"context_line":"* Modify scheduling code to prefer cores on NUMA nodes without attached PCI"},{"line_number":132,"context_line":"  devices when there are no PCI devices attached to the instance"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a98d1f4_0e3b779d","line":130,"range":{"start_line":129,"start_character":2,"end_line":130,"end_character":51},"updated":"2016-09-29 13:17:16.000000000","message":"NUMATopologyFilter can only say that specified host is \u0027good\u0027 or \u0027bad\u0027.  After passing set of hosts through this filter we will got set of \u0027good\u0027 hosts and choose of of them.\n\nSo NUMATopologyFilter can\u0027t *prefer*  one host to another. How do you want implement it? As I see the only way is to add new Weigher class [1] wich will sort \u0027good\u0027 hosts (already selected by NUMATopology Filter) by number of PCI devices on these host [2].\n\n[1] https://github.com/openstack/nova/tree/master/nova/scheduler/weights\n[2] https://github.com/openstack/nova/blob/master/nova/scheduler/filter_scheduler.py#L120-L128","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"97da15d5455a87d2a44c3567f29c36e66f9c7bcf","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Work Items"},{"line_number":127,"context_line":"----------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Modify NUMATopologyFilter to prefer hosts without PCI devices attached when"},{"line_number":130,"context_line":"  there are no PCI devices attached to the instance"},{"line_number":131,"context_line":"* Modify scheduling code to prefer cores on NUMA nodes without attached PCI"},{"line_number":132,"context_line":"  devices when there are no PCI devices attached to the instance"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a98d1f4_ee956be4","line":130,"range":{"start_line":129,"start_character":2,"end_line":130,"end_character":51},"in_reply_to":"3a98d1f4_0e3b779d","updated":"2016-09-29 13:23:50.000000000","message":"*choose one of them.","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9da4febe72d656bb893b21d3e1029ac6d65ace7d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Work Items"},{"line_number":127,"context_line":"----------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"* Modify NUMATopologyFilter to prefer hosts without PCI devices attached when"},{"line_number":130,"context_line":"  there are no PCI devices attached to the instance"},{"line_number":131,"context_line":"* Modify scheduling code to prefer cores on NUMA nodes without attached PCI"},{"line_number":132,"context_line":"  devices when there are no PCI devices attached to the instance"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a98d1f4_4ade4440","line":130,"range":{"start_line":129,"start_character":2,"end_line":130,"end_character":51},"in_reply_to":"3a98d1f4_ee956be4","updated":"2016-09-30 10:24:17.000000000","message":"\u003e NUMATopologyFilter can only say that specified host is \u0027good\u0027 or \u0027bad\u0027.  After passing set of hosts through this filter we will got set of \u0027good\u0027 hosts and choose of of them.\n \u003e So NUMATopologyFilter can\u0027t *prefer*  one host to another. How do you want implement it? As I see the only way is to add new Weigher class [1] wich will sort \u0027good\u0027 hosts (already selected by NUMATopology Filter) by number of PCI devices on these host [2].\n\nI came to the same conclusion this morning, once I realised weighters come after filters [1][2] :) I\u0027m halfway through a new weighter class now. Should have a POC ready shortly.\n\n[1] http://docs.openstack.org/kilo/config-reference/content/section_compute-scheduler.html\n[2] http://docs.openstack.org/kilo/config-reference/content/figures/4/a/a/common/figures/filteringWorkflow1.png","commit_id":"55b7e5152acfe6cfce0bfd3fc7b842e69bcfb78b"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"0e6de89c56b42f282ff2ac99931bf1e7db131ba2","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":"None."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"References"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_25e316a5","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":4},"updated":"2016-10-05 06:01:08.000000000","message":"I think you should document the new wiegher here http://docs.openstack.org/developer/nova/filter_scheduler.html#weights.","commit_id":"66813145f95036d5751e36869968c7a4187ddd0f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b83dceb6d86b6bc38eb33c81ffb3392c259e4634","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":"None."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"References"},{"line_number":152,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a95cdbc_b4790896","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":4},"in_reply_to":"1a95cdbc_25e316a5","updated":"2016-10-05 12:01:05.000000000","message":"Done","commit_id":"66813145f95036d5751e36869968c7a4187ddd0f"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"1a162eeac1d0e15d134781491fe6611f469a3041","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/reserve-numa-with-pci"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Since Juno, instances bound with PCI devices must be scheduled to at least one"},{"line_number":14,"context_line":"NUMA node associated with the PCI device [1]. Unfortunately, the scheduler was"},{"line_number":15,"context_line":"not enhanced to ensure instances without a PCI device would not occupy NUMA"},{"line_number":16,"context_line":"nodes unnecessarily. Optimize the scheduler to ensure these NUMA nodes are"},{"line_number":17,"context_line":"reserved, thus increasing the the number of PCI-attached instances deployers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a95cdbc_145f1c42","line":14,"range":{"start_line":14,"start_character":41,"end_line":14,"end_character":44},"updated":"2016-10-05 12:24:26.000000000","message":"here should be _[1] instead of [1]\n\nlink wasn\u0027t parsed correctly http://docs-draft.openstack.org/68/364468/4/check/gate-nova-specs-docs-ubuntu-xenial/c235d34//doc/build/html/specs/ocata/approved/reserve-numa-with-pci.html","commit_id":"363aad6000a6daedcc7f9bb22ecd1ee8e9238155"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"b4b6e3789a1e65a4ba6a60afc6f410415c956640","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/reserve-numa-with-pci"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Since Juno, instances bound with PCI devices must be scheduled to at least one"},{"line_number":14,"context_line":"NUMA node associated with the PCI device [1]. Unfortunately, the scheduler was"},{"line_number":15,"context_line":"not enhanced to ensure instances without a PCI device would not occupy NUMA"},{"line_number":16,"context_line":"nodes unnecessarily. Optimize the scheduler to ensure these NUMA nodes are"},{"line_number":17,"context_line":"reserved, thus increasing the the number of PCI-attached instances deployers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a95cdbc_ae444c74","line":14,"range":{"start_line":14,"start_character":41,"end_line":14,"end_character":44},"in_reply_to":"1a95cdbc_145f1c42","updated":"2016-10-05 15:01:50.000000000","message":"sorry. I mean replace [1] with [1]_","commit_id":"363aad6000a6daedcc7f9bb22ecd1ee8e9238155"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e58c452491acb1d57f54968cb6e00b8c8c8a3b8e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/reserve-numa-with-pci"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Since Juno, instances bound with PCI devices must be scheduled to at least one"},{"line_number":14,"context_line":"NUMA node associated with the PCI device [1]. Unfortunately, the scheduler was"},{"line_number":15,"context_line":"not enhanced to ensure instances without a PCI device would not occupy NUMA"},{"line_number":16,"context_line":"nodes unnecessarily. Optimize the scheduler to ensure these NUMA nodes are"},{"line_number":17,"context_line":"reserved, thus increasing the the number of PCI-attached instances deployers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a95cdbc_c48899ea","line":14,"range":{"start_line":14,"start_character":41,"end_line":14,"end_character":44},"in_reply_to":"1a95cdbc_ae444c74","updated":"2016-10-05 15:24:58.000000000","message":"Done","commit_id":"363aad6000a6daedcc7f9bb22ecd1ee8e9238155"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"1a162eeac1d0e15d134781491fe6611f469a3041","unresolved":false,"context_lines":[{"line_number":166,"context_line":"   * - Ocata"},{"line_number":167,"context_line":"     - Introduced"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a95cdbc_f79e3255","line":169,"updated":"2016-10-05 12:24:26.000000000","message":"nit: maybe we should put it in \"References\" section?","commit_id":"363aad6000a6daedcc7f9bb22ecd1ee8e9238155"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"2951e7f789a88bac45c7096b0a9720ea615448d3","unresolved":false,"context_lines":[{"line_number":166,"context_line":"   * - Ocata"},{"line_number":167,"context_line":"     - Introduced"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a95cdbc_7c3d95ba","line":169,"in_reply_to":"1a95cdbc_441e49bb","updated":"2016-10-05 16:25:57.000000000","message":"It was displayed :) http://docs-draft.openstack.org/68/364468/5/check/gate-nova-specs-docs-ubuntu-xenial/bfc23ec//doc/build/html/specs/ocata/approved/reserve-numa-with-pci.html#id2","commit_id":"363aad6000a6daedcc7f9bb22ecd1ee8e9238155"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e58c452491acb1d57f54968cb6e00b8c8c8a3b8e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"   * - Ocata"},{"line_number":167,"context_line":"     - Introduced"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a95cdbc_441e49bb","line":169,"in_reply_to":"1a95cdbc_f79e3255","updated":"2016-10-05 15:24:58.000000000","message":"This won\u0027t be displayed in the output, afaik?","commit_id":"363aad6000a6daedcc7f9bb22ecd1ee8e9238155"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"25efe672a9a69f140e742e79eb86911ca379edd8","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  the host, which will result in an slight increase in latency. This impact"},{"line_number":104,"context_line":"  will be negligible compared to the performance enhancement that of using"},{"line_number":105,"context_line":"  correctly-affinitized PCI devices brings, nor the cost saving incurred from"},{"line_number":106,"context_line":"  fully utilizing all available hardware."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Other deployer impact"},{"line_number":109,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa6399be_0704ee15","line":106,"updated":"2016-10-20 15:34:23.000000000","message":"We can probably be more specific here, we are going to add a 0(n) time complexity.","commit_id":"143326769794d793852b1aa42a78785178ee38b2"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"37d96a1baa64617a853f96164191ce8f81ae0f0f","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  the host, which will result in an slight increase in latency. This impact"},{"line_number":104,"context_line":"  will be negligible compared to the performance enhancement that of using"},{"line_number":105,"context_line":"  correctly-affinitized PCI devices brings, nor the cost saving incurred from"},{"line_number":106,"context_line":"  fully utilizing all available hardware."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Other deployer impact"},{"line_number":109,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6895a0_c4498dd2","line":106,"in_reply_to":"fa6399be_0704ee15","updated":"2016-10-21 11:34:16.000000000","message":"Vladik gave to me interesting details here, https://review.openstack.org/#/c/379524/","commit_id":"143326769794d793852b1aa42a78785178ee38b2"}],"specs/pike/approved/reserve-numa-with-pci.rst":[{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"a79b3e20e4854d2fd9bdcfc8b65d5ced86d249f2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* A user wishes to schedule a guest without PCI devices but does not want this"},{"line_number":39,"context_line":"  instance to consume resources on hosts with PCI devices."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a430d35_34eaf2ac","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"updated":"2017-02-07 20:50:27.000000000","message":"I actually the think the use case is from the view of the operator:\n\n\"As an operator I wish to reserve nodes with PCI devices, which are finite resources, for guests that actually require them.\"\n\nAnd possibly from the view of a user is:\n\n\"As a user launching instances that require PCI devices I want the cloud to ensure that they are available.\"\n\nThe user launching an instance that doesn\u0027t need a PCI device doesn\u0027t care whether you put them on a node with one or not.","commit_id":"5e74ec65686c421a91b915f93d16ccf9cba92d99"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9666f81f5bea04260558f22ddb1c8d1449bc77cc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* A user wishes to schedule a guest without PCI devices but does not want this"},{"line_number":39,"context_line":"  instance to consume resources on hosts with PCI devices."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a430d35_f4e569dc","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"in_reply_to":"1a430d35_2b60d000","updated":"2017-02-09 17:01:08.000000000","message":"Done and done","commit_id":"5e74ec65686c421a91b915f93d16ccf9cba92d99"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"9e69972c1bfa2b88e9fd14e825f08a4a1ad94abc","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* A user wishes to schedule a guest without PCI devices but does not want this"},{"line_number":39,"context_line":"  instance to consume resources on hosts with PCI devices."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a430d35_2b60d000","line":39,"range":{"start_line":38,"start_character":0,"end_line":39,"end_character":58},"in_reply_to":"1a430d35_34eaf2ac","updated":"2017-02-07 22:13:38.000000000","message":"Agreed, this makes more sense.","commit_id":"5e74ec65686c421a91b915f93d16ccf9cba92d99"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33ffaf5dd2c0455c1c76ba17d986694ef6bf2354","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Instances with PCI devices must still be scheduled on nodes with a PCI device"},{"line_number":58,"context_line":"attached. Enabling some sort of \"soft affinity\" where this is no longer a"},{"line_number":59,"context_line":"requirments is outside of the scope of this blueprint."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da36d5c6_19eb4ee0","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":11},"updated":"2017-02-24 15:44:15.000000000","message":"typo","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8c552fef6e953932dfa9ff293f3556e9e28eecf0","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Instances with PCI devices must still be scheduled on nodes with a PCI device"},{"line_number":58,"context_line":"attached. Enabling some sort of \"soft affinity\" where this is no longer a"},{"line_number":59,"context_line":"requirments is outside of the scope of this blueprint."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da36d5c6_d4817dfc","line":59,"range":{"start_line":59,"start_character":0,"end_line":59,"end_character":11},"in_reply_to":"da36d5c6_19eb4ee0","updated":"2017-02-24 16:09:23.000000000","message":"Done","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33ffaf5dd2c0455c1c76ba17d986694ef6bf2354","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Testing"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Unit tests."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Documentation Impact"},{"line_number":149,"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":7,"id":"da36d5c6_d925365c","line":146,"updated":"2017-02-24 15:44:15.000000000","message":"Functional test needed which fakes out libvirt resource reporting but will actually test the scheduler.","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8c552fef6e953932dfa9ff293f3556e9e28eecf0","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Testing"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Unit tests."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"Documentation Impact"},{"line_number":149,"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":7,"id":"da36d5c6_b4e329d8","line":146,"in_reply_to":"da36d5c6_d925365c","updated":"2017-02-24 16:09:23.000000000","message":"Done","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"9599e92aa609db308764e9f538b57fb6fb86e040","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   * - Release Name"},{"line_number":167,"context_line":"     - Description"},{"line_number":168,"context_line":"   * - Ocata"},{"line_number":169,"context_line":"     - Introduced"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da36d5c6_79b9aa14","line":168,"range":{"start_line":168,"start_character":7,"end_line":168,"end_character":12},"updated":"2017-02-24 15:40:16.000000000","message":"Nit: Pike","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"33ffaf5dd2c0455c1c76ba17d986694ef6bf2354","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   * - Release Name"},{"line_number":167,"context_line":"     - Description"},{"line_number":168,"context_line":"   * - Ocata"},{"line_number":169,"context_line":"     - Introduced"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da36d5c6_d9dc5648","line":168,"range":{"start_line":168,"start_character":7,"end_line":168,"end_character":12},"updated":"2017-02-24 15:44:15.000000000","message":"Pike","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8c552fef6e953932dfa9ff293f3556e9e28eecf0","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"   * - Release Name"},{"line_number":167,"context_line":"     - Description"},{"line_number":168,"context_line":"   * - Ocata"},{"line_number":169,"context_line":"     - Introduced"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da36d5c6_d4fdfd6e","line":168,"range":{"start_line":168,"start_character":7,"end_line":168,"end_character":12},"in_reply_to":"da36d5c6_d9dc5648","updated":"2017-02-24 16:09:23.000000000","message":"Done","commit_id":"f1598de31ef02bd71274ddcc4b33e70223afff86"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2aee12f216ffff3436c180a00e0c89deb1640fda","unresolved":false,"context_lines":[{"line_number":132,"context_line":"* Add a new ``PCIWeigher`` weigher class to prefer hosts without PCI devices"},{"line_number":133,"context_line":"  when there are no PCI devices attached to the instance and vice versa"},{"line_number":134,"context_line":"* Modify scheduling code to prefer cores on NUMA nodes without attached PCI"},{"line_number":135,"context_line":"  devices when there are no PCI devices attached to the instance"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da36d5c6_59c86674","line":135,"updated":"2017-02-24 15:44:19.000000000","message":"Like I said during the PTG session we had, I think we could try to implement a couple of functional tests to cover this, since all is now in place for that. I can help you on that.","commit_id":"280960067f210722bfe0d62075b3c20cfd54dd16"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c0ed7769e3465c71d7ba1bf822b5144eeb4e491a","unresolved":false,"context_lines":[{"line_number":132,"context_line":"* Add a new ``PCIWeigher`` weigher class to prefer hosts without PCI devices"},{"line_number":133,"context_line":"  when there are no PCI devices attached to the instance and vice versa"},{"line_number":134,"context_line":"* Modify scheduling code to prefer cores on NUMA nodes without attached PCI"},{"line_number":135,"context_line":"  devices when there are no PCI devices attached to the instance"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":8,"id":"da36d5c6_1499557c","line":135,"in_reply_to":"da36d5c6_59c86674","updated":"2017-02-24 16:05:39.000000000","message":"Yup, sure. Covered in \u0027Testing\u0027 below (because things are implicitly tested :))","commit_id":"280960067f210722bfe0d62075b3c20cfd54dd16"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Since Juno, instances bound with PCI devices must be scheduled to at least one"},{"line_number":14,"context_line":"NUMA node associated with the PCI device [1]_. Unfortunately, the scheduler was"},{"line_number":15,"context_line":"not enhanced to ensure instances without a PCI device would not occupy NUMA"},{"line_number":16,"context_line":"nodes unnecessarily. Optimize the scheduler to ensure these NUMA nodes are"},{"line_number":17,"context_line":"reserved, thus increasing the number of PCI-attached instances deployers can"},{"line_number":18,"context_line":"boot in conjunction with non-PCI instances."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_09e05395","line":16,"range":{"start_line":16,"start_character":21,"end_line":16,"end_character":29},"updated":"2017-02-24 19:30:10.000000000","message":"nit: This spec proposes to optimize the scheduler to ensure...","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\u0027I/O (PCIe) Based NUMA Scheduling\u0027 blueprint optimized instance placement by"},{"line_number":27,"context_line":"ensuring that scheduling of instances bound to a PCI device, via PCI"},{"line_number":28,"context_line":"passthrough requests, is optimized to ensure NUMA node co-location for PCI"},{"line_number":29,"context_line":"devices and CPUs. However, the scheduler use nodes linearly, even when there"},{"line_number":30,"context_line":"are only a select few of these many nodes associated with special resources"},{"line_number":31,"context_line":"like PCI devices. As a result, instances without any PCI requirements can fill"},{"line_number":32,"context_line":"host NUMA nodes with PCI devices attached, which results in scheduling failures"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_69e70fac","line":29,"range":{"start_line":29,"start_character":41,"end_line":29,"end_character":44},"updated":"2017-02-24 19:30:10.000000000","message":"uses","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e0a8d25eb6e57e89eacb9046c5c9f10f5027515","unresolved":false,"context_lines":[{"line_number":26,"context_line":"\u0027I/O (PCIe) Based NUMA Scheduling\u0027 blueprint optimized instance placement by"},{"line_number":27,"context_line":"ensuring that scheduling of instances bound to a PCI device, via PCI"},{"line_number":28,"context_line":"passthrough requests, is optimized to ensure NUMA node co-location for PCI"},{"line_number":29,"context_line":"devices and CPUs. However, the scheduler use nodes linearly, even when there"},{"line_number":30,"context_line":"are only a select few of these many nodes associated with special resources"},{"line_number":31,"context_line":"like PCI devices. As a result, instances without any PCI requirements can fill"},{"line_number":32,"context_line":"host NUMA nodes with PCI devices attached, which results in scheduling failures"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_3c0b602d","line":29,"range":{"start_line":29,"start_character":41,"end_line":29,"end_character":44},"in_reply_to":"da36d5c6_69e70fac","updated":"2017-02-27 18:51:16.000000000","message":"Done","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an operator, I want to reserve nodes with PCI devices, which are finite"},{"line_number":39,"context_line":"  resources, for guests that actually require them."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* As a user launching instances that require PCI devices, I want the cloud to"},{"line_number":42,"context_line":"  ensure that they are available."}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_49c24bea","line":39,"range":{"start_line":38,"start_character":2,"end_line":39,"end_character":51},"updated":"2017-02-24 19:30:10.000000000","message":"Can\u0027t this be solved with host aggregates? Because the flavor needs extra specs to do the pci passhthrough right? And you can configure the scheduler to send instances with those special flavors to the special host aggregates.","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6772,"name":"Stephen Gordon","email":"sgordon@redhat.com","username":"sgordon"},"change_message_id":"b80249642bd232e5c3b06cd7b1d9e03488bbcdf2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an operator, I want to reserve nodes with PCI devices, which are finite"},{"line_number":39,"context_line":"  resources, for guests that actually require them."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* As a user launching instances that require PCI devices, I want the cloud to"},{"line_number":42,"context_line":"  ensure that they are available."}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_6732d3a8","line":39,"range":{"start_line":38,"start_character":2,"end_line":39,"end_character":51},"in_reply_to":"da36d5c6_49c24bea","updated":"2017-02-24 23:54:11.000000000","message":"Host aggregates work at the host level, here you are potentially dealing with host where e.g. 1 or 2 out of 4 NUMA nodes had a PCI device. If you use a host aggregate to solve directing all non-PCI-device requesting instances to different hosts then the 2 NUMA nodes without PCI devices go to waste.","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e0a8d25eb6e57e89eacb9046c5c9f10f5027515","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an operator, I want to reserve nodes with PCI devices, which are finite"},{"line_number":39,"context_line":"  resources, for guests that actually require them."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* As a user launching instances that require PCI devices, I want the cloud to"},{"line_number":42,"context_line":"  ensure that they are available."}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_57d9cf82","line":39,"range":{"start_line":38,"start_character":2,"end_line":39,"end_character":51},"in_reply_to":"da36d5c6_6732d3a8","updated":"2017-02-27 18:51:16.000000000","message":"Correct. I\u0027ve added this to the alternatives section","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Enhance both the NUMA topology filter and nova scheduler to prefer non-PCI NUMA"},{"line_number":48,"context_line":"nodes for non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI devices, then existing behavior dictates that"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_e9a93f25","line":47,"range":{"start_line":47,"start_character":38,"end_line":47,"end_character":56},"updated":"2017-02-24 19:30:10.000000000","message":"Is the change just for the filter or also something in the host manager?","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e0a8d25eb6e57e89eacb9046c5c9f10f5027515","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Enhance both the NUMA topology filter and nova scheduler to prefer non-PCI NUMA"},{"line_number":48,"context_line":"nodes for non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI devices, then existing behavior dictates that"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_b72a0b2e","line":47,"range":{"start_line":47,"start_character":38,"end_line":47,"end_character":56},"in_reply_to":"da36d5c6_e9a93f25","updated":"2017-02-27 18:51:16.000000000","message":"This is incorrect - it\u0027s neither the NUMA topology filter nor the nova scheduler I want to change, but rather the filter scheduler and (libvirt) driver. Updated","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Enhance both the NUMA topology filter and nova scheduler to prefer non-PCI NUMA"},{"line_number":48,"context_line":"nodes for non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI devices, then existing behavior dictates that"},{"line_number":51,"context_line":"the NUMA node associated with the PCI device will be used at a minimum."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"If an instance is not bound to a PCI device, then hosts without PCI devices"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_09a5b345","line":50,"range":{"start_line":50,"start_character":27,"end_line":50,"end_character":40},"updated":"2017-02-24 19:30:10.000000000","message":"singular or plural, you must decide","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e0a8d25eb6e57e89eacb9046c5c9f10f5027515","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Enhance both the NUMA topology filter and nova scheduler to prefer non-PCI NUMA"},{"line_number":48,"context_line":"nodes for non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI devices, then existing behavior dictates that"},{"line_number":51,"context_line":"the NUMA node associated with the PCI device will be used at a minimum."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"If an instance is not bound to a PCI device, then hosts without PCI devices"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_571c6f13","line":50,"range":{"start_line":50,"start_character":27,"end_line":50,"end_character":40},"in_reply_to":"da36d5c6_09a5b345","updated":"2017-02-27 18:51:16.000000000","message":"decided I have","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"used but NUMA nodes without associated PCI devices will be preferred."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Instances with PCI devices must still be scheduled on nodes with a PCI device"},{"line_number":58,"context_line":"attached. Enabling some sort of \"soft affinity\" where this is no longer a"},{"line_number":59,"context_line":"requirements is outside of the scope of this blueprint."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_e9805f8d","line":59,"range":{"start_line":58,"start_character":72,"end_line":59,"end_character":12},"updated":"2017-02-24 19:30:10.000000000","message":"typo","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e0a8d25eb6e57e89eacb9046c5c9f10f5027515","unresolved":false,"context_lines":[{"line_number":55,"context_line":"used but NUMA nodes without associated PCI devices will be preferred."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Instances with PCI devices must still be scheduled on nodes with a PCI device"},{"line_number":58,"context_line":"attached. Enabling some sort of \"soft affinity\" where this is no longer a"},{"line_number":59,"context_line":"requirements is outside of the scope of this blueprint."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_b7b84bea","line":59,"range":{"start_line":58,"start_character":72,"end_line":59,"end_character":12},"in_reply_to":"da36d5c6_e9805f8d","updated":"2017-02-27 18:51:16.000000000","message":"Done","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f485f056d7e3972b8e6befebb75bdcdaeb2d7d8c","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Performance Impact"},{"line_number":103,"context_line":"------------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* The NUMATopologyFilter will assess the number of PCI devices on each node of"},{"line_number":106,"context_line":"  the host, which will result in an slight increase in latency. This impact"},{"line_number":107,"context_line":"  will be negligible compared to the performance enhancement that of using"},{"line_number":108,"context_line":"  correctly-affinitized PCI devices brings, nor the cost saving incurred from"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_e9577f23","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":1},"updated":"2017-02-24 19:30:10.000000000","message":"nit: you don\u0027t really need a bullet if this isn\u0027t in a list...","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1e0a8d25eb6e57e89eacb9046c5c9f10f5027515","unresolved":false,"context_lines":[{"line_number":102,"context_line":"Performance Impact"},{"line_number":103,"context_line":"------------------"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"* The NUMATopologyFilter will assess the number of PCI devices on each node of"},{"line_number":106,"context_line":"  the host, which will result in an slight increase in latency. This impact"},{"line_number":107,"context_line":"  will be negligible compared to the performance enhancement that of using"},{"line_number":108,"context_line":"  correctly-affinitized PCI devices brings, nor the cost saving incurred from"}],"source_content_type":"text/x-rst","patch_set":9,"id":"da36d5c6_f7b2c305","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":1},"in_reply_to":"da36d5c6_e9577f23","updated":"2017-02-27 18:51:16.000000000","message":"Done","commit_id":"e3ad5cfdce5954899e33a6615835a314b9d3bccf"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"afd2bd6b5e2f9c7cffcdba947d60a22761a28778","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Since Juno, instances bound with PCI devices must be scheduled to at least one"},{"line_number":14,"context_line":"NUMA node associated with the PCI device [1]_. Unfortunately, the scheduler was"},{"line_number":15,"context_line":"not enhanced to ensure instances without a PCI device would not occupy NUMA"},{"line_number":16,"context_line":"nodes unnecessarily. his spec proposes to optimize the scheduler to ensure"},{"line_number":17,"context_line":"these NUMA nodes are reserved, thus increasing the number of PCI-attached"},{"line_number":18,"context_line":"instances deployers can boot in conjunction with non-PCI instances."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"ba2be162_5da270af","line":16,"range":{"start_line":16,"start_character":21,"end_line":16,"end_character":24},"updated":"2017-03-02 12:14:17.000000000","message":"This?","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"46e8b3fb816f6e60d642f2bd5d3f75c4dc093eea","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Since Juno, instances bound with PCI devices must be scheduled to at least one"},{"line_number":14,"context_line":"NUMA node associated with the PCI device [1]_. Unfortunately, the scheduler was"},{"line_number":15,"context_line":"not enhanced to ensure instances without a PCI device would not occupy NUMA"},{"line_number":16,"context_line":"nodes unnecessarily. his spec proposes to optimize the scheduler to ensure"},{"line_number":17,"context_line":"these NUMA nodes are reserved, thus increasing the number of PCI-attached"},{"line_number":18,"context_line":"instances deployers can boot in conjunction with non-PCI instances."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_d15e5875","line":16,"range":{"start_line":16,"start_character":21,"end_line":16,"end_character":24},"in_reply_to":"ba2be162_5da270af","updated":"2017-03-09 09:44:09.000000000","message":"Done","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cb1ac8e1fa2f88652cebbd358816d98d72f06229","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an operator, I want to reserve nodes with PCI devices, which are finite"},{"line_number":39,"context_line":"  resources, for guests that actually require them."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* As a user launching instances that require PCI devices, I want the cloud to"},{"line_number":42,"context_line":"  ensure that they are available."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_ae8423d4","line":39,"range":{"start_line":38,"start_character":60,"end_line":39,"end_character":11},"updated":"2017-03-08 17:38:01.000000000","message":"CPU, disk and RAM is also finite, but PCI devices are much more so...but you get my point. You don\u0027t have to update this if you don\u0027t want, but it\u0027s something I thought about.","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"46e8b3fb816f6e60d642f2bd5d3f75c4dc093eea","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use Cases"},{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* As an operator, I want to reserve nodes with PCI devices, which are finite"},{"line_number":39,"context_line":"  resources, for guests that actually require them."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* As a user launching instances that require PCI devices, I want the cloud to"},{"line_number":42,"context_line":"  ensure that they are available."}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_3150945d","line":39,"range":{"start_line":38,"start_character":60,"end_line":39,"end_character":11},"in_reply_to":"9a30ddce_ae8423d4","updated":"2017-03-09 09:44:09.000000000","message":"Good point. Reworded :)","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cb1ac8e1fa2f88652cebbd358816d98d72f06229","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Enhance both the filter scheduler and driver to prefer non-PCI NUMA nodes for"},{"line_number":48,"context_line":"non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI device, then existing behavior dictates that"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_0ed8cfee","line":47,"range":{"start_line":47,"start_character":38,"end_line":47,"end_character":44},"updated":"2017-03-08 17:38:01.000000000","message":"What driver? The libvirt driver? Please be specific.\n\nHyper-v also supports PCI passthrough and NUMA since Ocata. I think I\u0027d like Claudiu on board with this too for feature parity in the Hyper-v case.\n\nAlso, what is the libvirt driver going to do about this? Once the scheduler picks a host, the only thing the libvirt driver can do is fail if it\u0027s not the right place to put this instance, e.g. the libvirt driver sees it has NUMA nodes with space for PCI devices, but the instance isn\u0027t requesting PCI passthrough, so what does the libvirt driver do? Fail? Isn\u0027t that leaking scheduling details into the virt driver?\n\nOr do you mean enhance the libvirt driver by providing more host capabilities information to the scheduler so the scheduler can make the proper placement decision?","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"46e8b3fb816f6e60d642f2bd5d3f75c4dc093eea","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Enhance both the filter scheduler and driver to prefer non-PCI NUMA nodes for"},{"line_number":48,"context_line":"non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI device, then existing behavior dictates that"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_b4cb92a4","line":47,"range":{"start_line":47,"start_character":38,"end_line":47,"end_character":44},"in_reply_to":"9a30ddce_0ed8cfee","updated":"2017-03-09 09:44:09.000000000","message":"\u003e What driver? The libvirt driver? Please be specific.\n\nCode probably says what I mean best:\n\n  https://review.openstack.org/#/c/379625/10/nova/virt/hardware.py\n\nThe code is in \u0027hardware.py\u0027 (hence why I said driver) but it\u0027s actually used as part of the claiming process so therefore...the resource tracker?\n\n\u003e Also, what is the libvirt driver going to do about this? Once the scheduler picks a host, the only thing the libvirt driver can do is fail if it\u0027s not the right place to put this instance, e.g. the libvirt driver sees it has NUMA nodes with space for PCI devices, but the instance isn\u0027t requesting PCI passthrough, so what does the libvirt driver do? Fail? Isn\u0027t that leaking scheduling details into the virt driver?\n\nThe libvirt driver won\u0027t actually do anything different. The only change we\u0027re making is how we choose which NUMA node on the host to use, assuming there are multiple nodes. If we don\u0027t need PCI devices, we will favor the nodes without PCI devices.","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"447f54e03303f526ad452eb78b6f4cd38b49fe16","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Proposed change"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Enhance both the filter scheduler and driver to prefer non-PCI NUMA nodes for"},{"line_number":48,"context_line":"non-PCI instances."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"If an instance is bound to a PCI device, then existing behavior dictates that"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_f1fa7cbc","line":47,"range":{"start_line":47,"start_character":38,"end_line":47,"end_character":44},"in_reply_to":"9a30ddce_0ed8cfee","updated":"2017-03-08 17:42:45.000000000","message":"I\u0027m also wondering if this ties into the get_inventory() virt driver method that Jay added which enables the virt driver to provide resource class information (which could be PCI devices) about inventory on the host, so using the example that sgordon provided in an earlier patch set, if you have 4 NUMA nodes on a host and 2 are used but 2 are available, then that\u0027s exposed through the get_inventory() method which is fed into the resource provider (compute node) in placement and then the scheduler can use that information to make weighing decisions based on the resource providers that have available PCI inventory and those that don\u0027t.","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cb1ac8e1fa2f88652cebbd358816d98d72f06229","unresolved":false,"context_lines":[{"line_number":108,"context_line":"Performance Impact"},{"line_number":109,"context_line":"------------------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The NUMATopologyFilter will assess the number of PCI devices on each node of"},{"line_number":112,"context_line":"the host, which will result in an slight increase in latency. This impact will"},{"line_number":113,"context_line":"be negligible compared to the performance enhancement that of using"},{"line_number":114,"context_line":"correctly-affinitized PCI devices brings, nor the cost saving incurred from"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_11ac70ec","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":34},"updated":"2017-03-08 17:38:01.000000000","message":"Related to my question above about the libvirt driver, does the NUMATopologyFilter make the assessment based on capabilities that the libvirt driver provides which goes into the compute_nodes.stats table?","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"46e8b3fb816f6e60d642f2bd5d3f75c4dc093eea","unresolved":false,"context_lines":[{"line_number":108,"context_line":"Performance Impact"},{"line_number":109,"context_line":"------------------"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"The NUMATopologyFilter will assess the number of PCI devices on each node of"},{"line_number":112,"context_line":"the host, which will result in an slight increase in latency. This impact will"},{"line_number":113,"context_line":"be negligible compared to the performance enhancement that of using"},{"line_number":114,"context_line":"correctly-affinitized PCI devices brings, nor the cost saving incurred from"}],"source_content_type":"text/x-rst","patch_set":10,"id":"9a30ddce_1fd4601e","line":111,"range":{"start_line":111,"start_character":28,"end_line":111,"end_character":34},"in_reply_to":"9a30ddce_11ac70ec","updated":"2017-03-09 09:44:09.000000000","message":"This is outdated - the NUMATopologyFilter isn\u0027t involved in this equation at all now. I\u0027ve updated this for PS12","commit_id":"5290b93943b64bfb85e9476eb410c6d0e5703727"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"64699e763d7f16c5e77f94b76e3427ac73fde836","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Add a configuration option that allows instances to schedule to nodes other"},{"line_number":66,"context_line":"  than those associated with the PCI device(s). This will ensure instances can"},{"line_number":67,"context_line":"  fully utilize resources, but will not solve the problem of non-PCI instances"},{"line_number":68,"context_line":"  occupying preferred NUMA nodes. This should be seen as a compliment, rather"},{"line_number":69,"context_line":"  than an alternative."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Ensure PCI devices are placed in PCI slots associated with the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a30ddce_a0440b1b","line":68,"updated":"2017-03-09 15:06:45.000000000","message":"s/compliment/complement/","commit_id":"3ac58d3ffff1199d17ce8aa8db8281cf9e23cfb9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"97b9d69689834a63d51a6d3fcaba34992139b140","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Add a configuration option that allows instances to schedule to nodes other"},{"line_number":66,"context_line":"  than those associated with the PCI device(s). This will ensure instances can"},{"line_number":67,"context_line":"  fully utilize resources, but will not solve the problem of non-PCI instances"},{"line_number":68,"context_line":"  occupying preferred NUMA nodes. This should be seen as a compliment, rather"},{"line_number":69,"context_line":"  than an alternative."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* Ensure PCI devices are placed in PCI slots associated with the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a30ddce_7d709672","line":68,"in_reply_to":"9a30ddce_a0440b1b","updated":"2017-03-13 10:55:28.000000000","message":"Done","commit_id":"3ac58d3ffff1199d17ce8aa8db8281cf9e23cfb9"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5bbe4d718b8e685a7e120e0ea1afd575a7e9adc7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  it will fail in the scenario where a host does not have uniform PCI"},{"line_number":80,"context_line":"  availability across all nodes or where instances consume all PCI devices on a"},{"line_number":81,"context_line":"  host but not all CPUs. In both cases, a given amount of resources on said"},{"line_number":82,"context_line":"  hosts will go to waste"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3a1ff146_d32ce9ad","line":82,"updated":"2017-03-22 13:52:25.000000000","message":"Honestly, I\u0027m not sure we\u0027ll be able to eliminate cases where resources are wasted. It\u0027s just going to be a fact of life that some workloads are going to consume, say, all the PCI devices on a host but not all the vCPU on the host. Only workloads that do not request a PCI device would be placed onto the host, but that\u0027s a perfectly reasonable thing.\n\nI\u0027m really not sure why the host aggregates solution won\u0027t work for 99.9% of deployments, though. Look, most of these deployments are going to have uniform hardware, and where the hardware *isn\u0027t* uniform, typically deployers carve those classes of hardware into host aggregates. So, I\u0027m failing to see where host aggregates won\u0027t actually solve the problem here?","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"030fa213b4e88c97764307d2beb08d7b32fe4c8c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  it will fail in the scenario where a host does not have uniform PCI"},{"line_number":80,"context_line":"  availability across all nodes or where instances consume all PCI devices on a"},{"line_number":81,"context_line":"  host but not all CPUs. In both cases, a given amount of resources on said"},{"line_number":82,"context_line":"  hosts will go to waste"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_d6934059","line":82,"in_reply_to":"1a1ced50_64eca3f3","updated":"2017-03-22 18:06:40.000000000","message":"It would be valuable to capture the points here as part of the host aggregate alternative for posterity. You could do that in a follow up though.","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7de5140520422e81d27b6a01adb8fa03f78c687f","unresolved":false,"context_lines":[{"line_number":79,"context_line":"  it will fail in the scenario where a host does not have uniform PCI"},{"line_number":80,"context_line":"  availability across all nodes or where instances consume all PCI devices on a"},{"line_number":81,"context_line":"  host but not all CPUs. In both cases, a given amount of resources on said"},{"line_number":82,"context_line":"  hosts will go to waste"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Data model impact"},{"line_number":85,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_64eca3f3","line":82,"in_reply_to":"3a1ff146_d32ce9ad","updated":"2017-03-22 14:44:14.000000000","message":"\u003e Honestly, I\u0027m not sure we\u0027ll be able to eliminate cases where resources are wasted. It\u0027s just going to be a fact of life that some workloads are going to consume, say, all the PCI devices on a host but not all the vCPU on the host. Only workloads that do not request a PCI device would be placed onto the host, but that\u0027s a perfectly reasonable thing.\n\nAgreed. I don\u0027t think that\u0027s possible with host aggregates though, as that places hard limits on where an instance can go (in this scenario, not a host with PCI devices even if it\u0027s the only host available at the time)\n\n\u003e I\u0027m really not sure why the host aggregates solution won\u0027t work for 99.9% of deployments, though. Look, most of these deployments are going to have uniform hardware, and where the hardware *isn\u0027t* uniform, typically deployers carve those classes of hardware into host aggregates. So, I\u0027m failing to see where host aggregates won\u0027t actually solve the problem here?\n\nI think it boils down to how strict a requirements this is.\n\nHost aggregates make sense for something like separating pinned instances from unpinned, because scheduling a non-pinned instance would effectively defeat the whole purpose of using pinning in the first place (the unpinned instance would float across all available host cores, including pinned cores, negating the performance improvements that pinning provides). This is a strict requirement. For the PCI case, on the other hand, nothing bad will happen if we schedule a non-PCI instance on a PCI-capable host: we\u0027ll just have less capacity on PCI hosts for instances that need them. That doesn\u0027t mean trying to restrict non-PCI devices from using PCI-capable hosts is a bad thing to do: making the scheduler \"smarter\" and maximizing the chance that an instance will be scheduled successfully is always going to be a win. However, artificially limiting the amount of resources available to you _is_ a very bad thing. Regardless of whether you have uniform hardware or not, it is unlikely that you will uniform workloads, and it is very likely that the amount of PCI vs. non-PCI workloads you have will vary with time. Requiring the use of host aggregates would necessitate restricting the capacity of a deployment in a very static fashion for the sake of maximizing the chance that PCI instances will schedule successfully. That\u0027s a significant trade-off that I\u0027m not sure most folks would be happy with, hence, this approach.","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"030fa213b4e88c97764307d2beb08d7b32fe4c8c","unresolved":false,"context_lines":[{"line_number":109,"context_line":"Performance Impact"},{"line_number":110,"context_line":"------------------"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"An additional weigher will be added, which will assess the number of PCI"},{"line_number":113,"context_line":"devices on each node of a host. This will result in an slight increase in"},{"line_number":114,"context_line":"latency during filtering. However, this impact will be negligible compared to"},{"line_number":115,"context_line":"the performance enhancement that of using correctly-affinitized PCI devices"},{"line_number":116,"context_line":"brings, nor the cost saving incurred from fully utilizing all available"},{"line_number":117,"context_line":"hardware."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_161b18cb","line":114,"range":{"start_line":112,"start_character":0,"end_line":114,"end_character":25},"updated":"2017-03-22 18:06:40.000000000","message":"I found something out today, which is that by default all weighers are loaded up and used with the filter scheduler, so they aren\u0027t like the filters themselves which we have a default list but you can adjust it as necessary. So even if I\u0027m not using the appropriate filters here, I still have the weigher in operation (unless I modify the weight_classes config option to remove it). That\u0027s not a blocking issue or anything, and I guess we have an out if someone is concerned about the scheduling performance impact of this new weigher.","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"030fa213b4e88c97764307d2beb08d7b32fe4c8c","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Work Items"},{"line_number":141,"context_line":"----------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Add a new ``PCIWeigher`` weigher class to prefer hosts without PCI devices"},{"line_number":144,"context_line":"  when there are no PCI devices attached to the instance and vice versa"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"* Modify scheduling code to prefer cores on NUMA nodes without attached PCI"},{"line_number":147,"context_line":"  devices when there are no PCI devices attached to the instance"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Dependencies"},{"line_number":150,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_3663b443","line":147,"range":{"start_line":143,"start_character":0,"end_line":147,"end_character":64},"updated":"2017-03-22 18:06:40.000000000","message":"Hasn\u0027t anyone heard of ending a sentence with a period?!","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"030fa213b4e88c97764307d2beb08d7b32fe4c8c","unresolved":false,"context_lines":[{"line_number":162,"context_line":"Documentation Impact"},{"line_number":163,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"A new weigher will be added. This should be documented."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"References"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_d6d980f4","line":165,"updated":"2017-03-22 18:06:40.000000000","message":"Here I think:\n\nhttps://docs.openstack.org/developer/nova/filter_scheduler.html","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"030fa213b4e88c97764307d2beb08d7b32fe4c8c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"   * - Pike"},{"line_number":183,"context_line":"     - Introduced"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":".. [1] https://specs.openstack.org/openstack/nova-specs/specs/juno/approved/input-output-based-numa-scheduling.html"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1a1ced50_d687c0b2","line":185,"updated":"2017-03-22 18:06:40.000000000","message":"This should probably go in your References section, because it looks odd when rendered:\n\nhttp://docs-draft.openstack.org/68/364468/13/check/gate-nova-specs-docs-ubuntu-xenial/81a94ea//doc/build/html/specs/pike/approved/reserve-numa-with-pci.html","commit_id":"0f5975ee095527f9a3da6b9286efa8dd578a789e"}]}
