)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add hw:cpu_policy \u0027mixed\u0027 for better CPU utilization"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature will allow libvirt driver to pin guest vCPUs to"},{"line_number":10,"context_line":"host pCPUs and at the same time allows guest vCPUS to freely"},{"line_number":11,"context_line":"float across host pCPUs by introducing a new cpu_policy `mixed`"},{"line_number":12,"context_line":"thereby achieving better utilization of compute CPU resources."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa0c359_b4085891","line":9,"range":{"start_line":9,"start_character":13,"end_line":9,"end_character":23},"updated":"2018-02-16 19:23:02.000000000","message":"allows the","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"}],"specs/rocky/approved/add-cpu-policy-mixed.rst":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-cpu-policy-mixed"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will allow libvirt driver to pin guest vCPUs to host pCPUs"},{"line_number":14,"context_line":"and at the same time allows guest vCPUS to freely float across host pCPUs"},{"line_number":15,"context_line":"by introducing a new cpu_policy `mixed` thereby achieving better utilization"},{"line_number":16,"context_line":"of compute CPU resources."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_903fd285","line":13,"range":{"start_line":13,"start_character":13,"end_line":13,"end_character":23},"updated":"2018-02-13 08:21:26.000000000","message":"allows","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-cpu-policy-mixed"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will allow libvirt driver to pin guest vCPUs to host pCPUs"},{"line_number":14,"context_line":"and at the same time allows guest vCPUS to freely float across host pCPUs"},{"line_number":15,"context_line":"by introducing a new cpu_policy `mixed` thereby achieving better utilization"},{"line_number":16,"context_line":"of compute CPU resources."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_942afce4","line":13,"range":{"start_line":13,"start_character":13,"end_line":13,"end_character":23},"updated":"2018-02-16 19:23:02.000000000","message":"allows the\n\nor.. enables the","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/add-cpu-policy-mixed"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature will allow libvirt driver to pin guest vCPUs to host pCPUs"},{"line_number":14,"context_line":"and at the same time allows guest vCPUS to freely float across host pCPUs"},{"line_number":15,"context_line":"by introducing a new cpu_policy `mixed` thereby achieving better utilization"},{"line_number":16,"context_line":"of compute CPU resources."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_504dca3b","line":14,"range":{"start_line":14,"start_character":34,"end_line":14,"end_character":39},"updated":"2018-02-13 08:21:26.000000000","message":"vCPUs","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For deploying NFV applications to VMs on OpenStack, it demands to run both"},{"line_number":23,"context_line":"high performance load as well low performance load in a single VM. In order"},{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_50762a72","line":23,"range":{"start_line":23,"start_character":22,"end_line":23,"end_character":29},"updated":"2018-02-13 08:21:26.000000000","message":"and","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":19,"context_line":"Problem description"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"For deploying NFV applications to VMs on OpenStack, it demands to run both"},{"line_number":23,"context_line":"high performance load as well low performance load in a single VM. In order"},{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f75d8215","line":23,"range":{"start_line":22,"start_character":0,"end_line":23,"end_character":66},"updated":"2018-02-16 19:23:02.000000000","message":"this is oddly worded... how about this instead?\n\n\"Some deployments may need to co-locate applications with high performance requirements alongside applications with no performance requirements in the same virtual machine\"","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":22,"context_line":"For deploying NFV applications to VMs on OpenStack, it demands to run both"},{"line_number":23,"context_line":"high performance load as well low performance load in a single VM. In order"},{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."},{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_7071e675","line":25,"range":{"start_line":25,"start_character":6,"end_line":25,"end_character":11},"updated":"2018-02-13 08:21:26.000000000","message":"vCPUs","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":23,"context_line":"high performance load as well low performance load in a single VM. In order"},{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."},{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d0d55a1d","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":13},"updated":"2018-02-13 08:21:26.000000000","message":"ITYM, the vCPUs that don\u0027t need high performance should be *shared with other processes* for optimization of the core usage. *Floating freely* isn\u0027t what we exactly would like to say here, is it?","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"high performance load as well low performance load in a single VM. In order"},{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."},{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f44900b7","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":13},"in_reply_to":"3fa0c359_d0d55a1d","updated":"2018-02-16 19:23:02.000000000","message":"Well, we do actually use the term \"floating\" in our documentation and in lots of code comments to refer to guest vCPUs that are allowed to be executed on any pCPU.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."},{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Assign dedicated pCPUs to guest vCPUs by configuring hw:cpu_policy\u003ddedicated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f4f7c058","line":27,"range":{"start_line":27,"start_character":56,"end_line":27,"end_character":68},"updated":"2018-02-16 19:23:02.000000000","message":"\"the hw:cpu_policy flavor extra spec item, the similar hw_cpu_policy image metadata item, and the NUMATopologyFilter...\"","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."},{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Assign dedicated pCPUs to guest vCPUs by configuring hw:cpu_policy\u003ddedicated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f0c17655","line":27,"range":{"start_line":27,"start_character":13,"end_line":27,"end_character":14},"updated":"2018-02-13 08:21:26.000000000","message":"half-width","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"to run high performance load, you are required to assign dedicated pCPUs to"},{"line_number":25,"context_line":"guest VCPUs and to run low performance load, it\u0027s better that guest vCPUs"},{"line_number":26,"context_line":"floats freely on host pCPUs for better utilization of host CPU resources."},{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Assign dedicated pCPUs to guest vCPUs by configuring hw:cpu_policy\u003ddedicated"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_14da6ce8","line":27,"range":{"start_line":27,"start_character":13,"end_line":27,"end_character":14},"in_reply_to":"3fa0c359_f0c17655","updated":"2018-02-16 19:23:02.000000000","message":"not sure what you mean, Tetsuro. The apostrophe is correct here.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":27,"context_line":"Presently, it’s possible to configure compute host using cpu_policy in flavor"},{"line_number":28,"context_line":"and NUMATopologyFilter in one of the following way."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Assign dedicated pCPUs to guest vCPUs by configuring hw:cpu_policy\u003ddedicated"},{"line_number":31,"context_line":"* Allow guest vCPUs to freely float on host pCPUs by configuring"},{"line_number":32,"context_line":"  hw_cpu_policy\u003dshared which is a default one."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_b001ae6c","line":30,"range":{"start_line":30,"start_character":55,"end_line":30,"end_character":68},"updated":"2018-02-13 08:21:26.000000000","message":"Could you use the same terminology throughout the document? I mean, this is the option for flavor...","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* Assign dedicated pCPUs to guest vCPUs by configuring hw:cpu_policy\u003ddedicated"},{"line_number":31,"context_line":"* Allow guest vCPUs to freely float on host pCPUs by configuring"},{"line_number":32,"context_line":"  hw_cpu_policy\u003dshared which is a default one."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"There is no convenient way to assign both dedicated and shared pCPUs of"},{"line_number":35,"context_line":"compute host to guest vCPUs."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_104742be","line":32,"range":{"start_line":32,"start_character":2,"end_line":32,"end_character":15},"updated":"2018-02-13 08:21:26.000000000","message":"...and this is the option for image.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Modify Flavor extra specs and introduce a new standard resource class to"},{"line_number":56,"context_line":"allow to configure shared pCPUs range."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Introduce a new standard resource class"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_140d8c3d","line":56,"range":{"start_line":55,"start_character":0,"end_line":56,"end_character":38},"updated":"2018-02-16 19:23:02.000000000","message":"Placement does not (and will not in the future) have a resource class that represents shared (or dedicated) pCPU ranges. This is because a range of pCPUs is not a resource class -- it\u0027s not an integral amount of some thing. In other words, you can\u0027t say \"give me 2 \u0027ranges of these pCPUs\u0027 from this compute node\". It doesn\u0027t make sense.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"b39287fe9e7e954884e0670110e57b91043f0e2b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"Proposed change"},{"line_number":53,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Modify Flavor extra specs and introduce a new standard resource class to"},{"line_number":56,"context_line":"allow to configure shared pCPUs range."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Introduce a new standard resource class"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_2f994a78","line":56,"range":{"start_line":55,"start_character":0,"end_line":56,"end_character":38},"in_reply_to":"3fa0c359_140d8c3d","updated":"2018-02-19 01:39:40.000000000","message":"Yup, that sounds reasonable to me. Actually, Dinesh works in Japan for NTT and last Friday my boss allowed me to join the team. I talked with him and I updated the spec not to create a new class in the Placement.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Modify Flavor extra specs and introduce a new standard resource class to"},{"line_number":56,"context_line":"allow to configure shared pCPUs range."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Introduce a new standard resource class"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    The current config option `vpcus_pin_set` will be used to configure"},{"line_number":61,"context_line":"    dedicated pCPUs and it will be mapped to the existing standard resource"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_50806af5","line":58,"range":{"start_line":58,"start_character":0,"end_line":58,"end_character":41},"updated":"2018-02-13 08:21:26.000000000","message":"Hmm... Isn\u0027t there a way to avoid making an impact on today\u0027s placement? Please see my comments in the \"Alternative\" section.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Introduce a new standard resource class"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    The current config option `vpcus_pin_set` will be used to configure"},{"line_number":61,"context_line":"    dedicated pCPUs and it will be mapped to the existing standard resource"},{"line_number":62,"context_line":"    class `VCPU` and a new config option `shared_vcpus_pin_set`  will be"},{"line_number":63,"context_line":"    introduced to configure pCPUs of compute host on which guest vCPUs will"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f01976d6","line":60,"range":{"start_line":60,"start_character":31,"end_line":60,"end_character":44},"updated":"2018-02-13 08:21:26.000000000","message":"vcpu_pin_set. The same typos are in the following sentence.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":58,"context_line":"* Introduce a new standard resource class"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    The current config option `vpcus_pin_set` will be used to configure"},{"line_number":61,"context_line":"    dedicated pCPUs and it will be mapped to the existing standard resource"},{"line_number":62,"context_line":"    class `VCPU` and a new config option `shared_vcpus_pin_set`  will be"},{"line_number":63,"context_line":"    introduced to configure pCPUs of compute host on which guest vCPUs will"},{"line_number":64,"context_line":"    float freely. If operator configures this new config option, then it will"},{"line_number":65,"context_line":"    be reported in inventory as a new resource class `SHARED_VCPU`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_17126e59","line":62,"range":{"start_line":61,"start_character":24,"end_line":62,"end_character":16},"updated":"2018-02-16 19:23:02.000000000","message":"No, this isn\u0027t going to happen :) We have no plans to model pinned CPUs in the placement service.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    The current config option `vpcus_pin_set` will be used to configure"},{"line_number":61,"context_line":"    dedicated pCPUs and it will be mapped to the existing standard resource"},{"line_number":62,"context_line":"    class `VCPU` and a new config option `shared_vcpus_pin_set`  will be"},{"line_number":63,"context_line":"    introduced to configure pCPUs of compute host on which guest vCPUs will"},{"line_number":64,"context_line":"    float freely. If operator configures this new config option, then it will"},{"line_number":65,"context_line":"    be reported in inventory as a new resource class `SHARED_VCPU`."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f07e56e2","line":62,"range":{"start_line":62,"start_character":42,"end_line":62,"end_character":62},"updated":"2018-02-13 08:21:26.000000000","message":"shared_vcpu_pin_set","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    The flavor extra specs ‘hw:cpu_policy’ will be modified and two new"},{"line_number":70,"context_line":"    parameters will be introduced to configure how many dedicated and shared"},{"line_number":71,"context_line":"    VCPUs are needed."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    * hw:cpu_policy\u003dshared|dedicated|mixed"},{"line_number":74,"context_line":"    * hw:dedicated_vcpus\u003d 0,1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_506f0a2a","line":71,"range":{"start_line":71,"start_character":4,"end_line":71,"end_character":9},"updated":"2018-02-13 08:21:26.000000000","message":"vCPUs","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"dd1f9831a268e584799564e21dc0857996412104","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    * hw:dedicated_vcpus\u003d 0,1"},{"line_number":75,"context_line":"    * hw:shared_vcpus\u003d 2,3"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"If the cpu_policy is set to `shared|dedicated` no changes will be made and"},{"line_number":78,"context_line":"the current behavior will remain intact. If cpu_policy is set to `mixed`,"},{"line_number":79,"context_line":"then it will expect flavor extra specs to have these two parameters"},{"line_number":80,"context_line":"`hw:dedicated_vcpus` and `hw:shared_vcpus`. These two parameters contains"},{"line_number":81,"context_line":"list of guest vcpus and total count of these guest vcpus should be equal to"},{"line_number":82,"context_line":"total vCPUs of flavor and they shouldn\u0027t overlap with each other."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The existing scheduler driver `NUMATopologyFilter` will have to be enhanced"},{"line_number":85,"context_line":"so that it considers the usage of CPUs by existing guests and respects this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f6883923","line":82,"range":{"start_line":77,"start_character":0,"end_line":82,"end_character":65},"updated":"2018-02-15 23:28:48.000000000","message":"The other option would be to just introduce an optional \"hw:dedicated_vcpus\" field that is valid when the hw:cpu_policy is set to dedicated.  If \"hw:dedicated_vcpus\" is not set then they\u0027re all dedicated, if it is set then any vcpus not listed would be treated as shared.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    * hw:dedicated_vcpus\u003d 0,1"},{"line_number":75,"context_line":"    * hw:shared_vcpus\u003d 2,3"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"If the cpu_policy is set to `shared|dedicated` no changes will be made and"},{"line_number":78,"context_line":"the current behavior will remain intact. If cpu_policy is set to `mixed`,"},{"line_number":79,"context_line":"then it will expect flavor extra specs to have these two parameters"},{"line_number":80,"context_line":"`hw:dedicated_vcpus` and `hw:shared_vcpus`. These two parameters contains"},{"line_number":81,"context_line":"list of guest vcpus and total count of these guest vcpus should be equal to"},{"line_number":82,"context_line":"total vCPUs of flavor and they shouldn\u0027t overlap with each other."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The existing scheduler driver `NUMATopologyFilter` will have to be enhanced"},{"line_number":85,"context_line":"so that it considers the usage of CPUs by existing guests and respects this"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_173b4ed1","line":82,"range":{"start_line":77,"start_character":0,"end_line":82,"end_character":65},"in_reply_to":"3fa0c359_f6883923","updated":"2018-02-16 19:23:02.000000000","message":"This was my thought as well. ++","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":81,"context_line":"list of guest vcpus and total count of these guest vcpus should be equal to"},{"line_number":82,"context_line":"total vCPUs of flavor and they shouldn\u0027t overlap with each other."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The existing scheduler driver `NUMATopologyFilter` will have to be enhanced"},{"line_number":85,"context_line":"so that it considers the usage of CPUs by existing guests and respects this"},{"line_number":86,"context_line":"new `mixed` cpu policy.  It will read the flavor extra specs"},{"line_number":87,"context_line":"`hw:dedicated_vcpus\u003d 0,1` and `hw:dedicated_vcpus\u003d 2,3` and assign pCPUs"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_30491eb6","line":84,"range":{"start_line":84,"start_character":23,"end_line":84,"end_character":29},"updated":"2018-02-13 08:21:26.000000000","message":"filter","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":94,"context_line":"will assign pCPU from `vpcu_pin_set` and if it\u0027s share, then it will float"},{"line_number":95,"context_line":"over dedicated pCPUs assigned to the guest."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To use `mixed` cpu_policy, operator will need to setup aggregates to split"},{"line_number":98,"context_line":"the hosts into two groups. One allowing overcommit of shared pCPUs and other"},{"line_number":99,"context_line":"allowing both dedicated and dedicated+shared pCPUs guests."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Hyper threading should be disabled on compute hosts where"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d0c0fae3","line":98,"range":{"start_line":97,"start_character":27,"end_line":98,"end_character":26},"updated":"2018-02-13 08:21:26.000000000","message":"Hmmm... This is the point I\u0027d like avoid in present implementation of cpu pinning. Isn\u0027t there a way to avoid this manual management thanks to the mixed option? See my comments in \"Alternative\" section","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"dd1f9831a268e584799564e21dc0857996412104","unresolved":false,"context_lines":[{"line_number":94,"context_line":"will assign pCPU from `vpcu_pin_set` and if it\u0027s share, then it will float"},{"line_number":95,"context_line":"over dedicated pCPUs assigned to the guest."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"To use `mixed` cpu_policy, operator will need to setup aggregates to split"},{"line_number":98,"context_line":"the hosts into two groups. One allowing overcommit of shared pCPUs and other"},{"line_number":99,"context_line":"allowing both dedicated and dedicated+shared pCPUs guests."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Hyper threading should be disabled on compute hosts where"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_963a1532","line":98,"range":{"start_line":97,"start_character":27,"end_line":98,"end_character":26},"in_reply_to":"3fa0c359_d0c0fae3","updated":"2018-02-15 23:28:48.000000000","message":"Agreed, it\u0027s not reasonable to force operators do this split up front.  See my comment in the Alternative section for how we handle this internally.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":98,"context_line":"the hosts into two groups. One allowing overcommit of shared pCPUs and other"},{"line_number":99,"context_line":"allowing both dedicated and dedicated+shared pCPUs guests."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Hyper threading should be disabled on compute hosts where"},{"line_number":102,"context_line":"`shared_vcpu_pin_set` is configured otherwise it will adversely affect"},{"line_number":103,"context_line":"performance of dedicated CPU guests."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Example"},{"line_number":106,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_705d6645","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":36},"updated":"2018-02-13 08:21:26.000000000","message":"Why should we lay down such a strict condition?\n\nIf a user wants to have more performance and doesn\u0027t want to have impact from another sibling thread, he can just use existing cpu-threads-policy option, no?","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"dd1f9831a268e584799564e21dc0857996412104","unresolved":false,"context_lines":[{"line_number":98,"context_line":"the hosts into two groups. One allowing overcommit of shared pCPUs and other"},{"line_number":99,"context_line":"allowing both dedicated and dedicated+shared pCPUs guests."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Hyper threading should be disabled on compute hosts where"},{"line_number":102,"context_line":"`shared_vcpu_pin_set` is configured otherwise it will adversely affect"},{"line_number":103,"context_line":"performance of dedicated CPU guests."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Example"},{"line_number":106,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_56efadaf","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":36},"in_reply_to":"3fa0c359_705d6645","updated":"2018-02-15 23:28:48.000000000","message":"Agreed, this doesn\u0027t make sense.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":".. code::"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    isolcpus \u003d 4-7, 16-23, 12-15, 24-31"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"n-cpu.conf:"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_2b16934a","line":124,"range":{"start_line":124,"start_character":27,"end_line":124,"end_character":32},"updated":"2018-02-13 08:21:26.000000000","message":"Cores of 12 and 13 are not used anywhere. And for shared cpus, why do we need to use isolcpus? In the first place, is this grub setting always needed? If not, I don\u0027t think we need this in the spec; at least it should be explicitly noted that this is optional.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"dd1f9831a268e584799564e21dc0857996412104","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"There is no alternative way to assign both dedicated and shared pCPUs of"},{"line_number":153,"context_line":"virtualization hosts to the guest vCPUs."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_d603bd72","line":153,"range":{"start_line":152,"start_character":0,"end_line":153,"end_character":40},"updated":"2018-02-15 23:28:48.000000000","message":"Internally my company already supports both shared and dedicated vCPUs on the same compute node.\n\nWe modified nova to report cpu usage on a compute node as a floating point value.  Each dedicated vCPU counts as usage of \"1\", and each shared vCPU counts as usage of \"1/cpu_allocation_ratio\".  This lets us continue to use much of the logic that checks whether there is enough space on a compute node, since the overall usage on a node can never be more than the number of pCPUs available to nova on that node.\n\nAll \"shared\" instances are placed into a Linux cpuset that is affined to pCPUs used for \"shared\" vCPUs (this is basically NUMACell.cpuset - NUMACell.pinned_cpus).  When a \"dedicated\" vCPU is allocated or freed, NUMACell.pinned_cpus is updated and the cpuset affinity is recalculated and adjusted.  (The Linux cpuset is used so that we don\u0027t need to loop over all shared instances on the compute node and adjust the affinity on all of them.)","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"There is no alternative way to assign both dedicated and shared pCPUs of"},{"line_number":153,"context_line":"virtualization hosts to the guest vCPUs."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_37c0ca7c","line":153,"range":{"start_line":152,"start_character":0,"end_line":153,"end_character":40},"updated":"2018-02-16 19:23:02.000000000","message":"Oh, there *definitely* is an alternative to this :)\n\nAnd that alternative is to have the VNF vendors re-architect their VNF applications to not make these kinds of hardware-specific coupling requirements on the underlying infrastructure.\n\nThe example VNF that does packet core processing and also control systems processing could be redesigned to be two virtual machines instead of one large one. The control systems processing part could be implemented as a sidecar container-like thing instead of being embedded in the same VM that does packet core processing.\n\nBut, instead of asking VNF vendors to do this work, we jump through lots of hoops trying to produce hardware-defined software for them.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"798309634cc48f7c8a3ae7f733431596cfc0745f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"There is no alternative way to assign both dedicated and shared pCPUs of"},{"line_number":153,"context_line":"virtualization hosts to the guest vCPUs."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_f1d12331","line":153,"range":{"start_line":152,"start_character":0,"end_line":153,"end_character":40},"updated":"2018-02-16 00:17:25.000000000","message":"One other alternative...it might be simpler to allocate a single host pCPU (or maybe a single host pCPU per host NUMA node) and reserve it for running *all* the low-performance work from all the instances rather than tracking them dynamically.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c8cbd8c32dd033e90285c7dd3510e765c041afbe","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"There is no alternative way to assign both dedicated and shared pCPUs of"},{"line_number":153,"context_line":"virtualization hosts to the guest vCPUs."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_eb650bb6","line":153,"range":{"start_line":152,"start_character":0,"end_line":153,"end_character":40},"updated":"2018-02-13 08:21:26.000000000","message":"Well, the fundamental problem of the present code I _think_ here is that the cores in vcpu_pin_set are used as both shared cpus and dedicated cpus.\n\nIIUC, this spec proposes to pull out shared cpus option from vcpu_pin_set. And thus \"we need a new scheme in placement to deal with this new shared cpu.\"\n\n\nThen, why don\u0027t we leave vcpu_pin_set for shared cpu option and pull out cpus for dedicated as \"vcpu_dedicate_set\", and just put that \"vcpu_dedicate_set\" cores into host NUMACell object? That is, the \"vcpu_dedicate_set\" cores are only used when cpu_policy is set to dedicated.\n\nThis is just an idea, but if the default of vcpu_dedicate_set is the same as vcpu_pin_set, we can preserve the compatibility, and with the new option of \"mixed\", we can avoid that \"split aggregates\" operation. Furthermore, we might be able to deprecate emulator-threads-policy, sticking emulator cpus to be on the cores of vcpu_pin_set(i.e. cpus for shared).","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"b39287fe9e7e954884e0670110e57b91043f0e2b","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"There is no alternative way to assign both dedicated and shared pCPUs of"},{"line_number":153,"context_line":"virtualization hosts to the guest vCPUs."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_a6c4a041","line":153,"range":{"start_line":152,"start_character":0,"end_line":153,"end_character":40},"in_reply_to":"3fa0c359_576f96c4","updated":"2018-02-19 01:39:40.000000000","message":"It is a great point, Jay. Thanks to your comments, I realized that this spec can be split into two specs to make things clearer and go further step by step.","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e45c1cb6c7a6274f1e6461a6b6c8739ca4f12ab9","unresolved":false,"context_lines":[{"line_number":149,"context_line":"Alternatives"},{"line_number":150,"context_line":"------------"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"There is no alternative way to assign both dedicated and shared pCPUs of"},{"line_number":153,"context_line":"virtualization hosts to the guest vCPUs."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa0c359_576f96c4","line":153,"range":{"start_line":152,"start_character":0,"end_line":153,"end_character":40},"in_reply_to":"3fa0c359_d603bd72","updated":"2018-02-16 19:23:02.000000000","message":"It\u0027s not about supporting both shared and dedicated on the same compute host. This spec is about supporting both shared and dedicated in the *same VM instance*...","commit_id":"6d139908c831406e501136a1c2135a8b63e1b40a"}],"specs/rocky/approved/mixed-cpu-policy-host.rst":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"64f522c85926caaecfc40996efe77813c0974e0c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Host Configuration"},{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicate_set`` on the compute"},{"line_number":59,"context_line":"nodes. The VMs with ``hw:cpu_policy\u003ddedicated`` pick their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicate_set`` instead of ``vcpu_pin_set``."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_344e2b6f","line":58,"range":{"start_line":58,"start_character":41,"end_line":58,"end_character":60},"updated":"2018-02-21 16:44:39.000000000","message":"It would be possible to allocate dedicated pCPUs on-demand from vcpu_pin_set.  This would be much more elegant as it would allow flexible usage of resources rather than requiring an up-front pre-allocation.  The complicating factor is that removing a dedicated CPU from the set would require adjusting the affinity of all the \"shared\" vCPUs.  If that is the objection then we should mention it here for discussion.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"362453200e4ef8eca2341be253c1b132ff5744aa","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Host Configuration"},{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicate_set`` on the compute"},{"line_number":59,"context_line":"nodes. The VMs with ``hw:cpu_policy\u003ddedicated`` pick their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicate_set`` instead of ``vcpu_pin_set``."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_99e09a28","line":58,"range":{"start_line":58,"start_character":47,"end_line":58,"end_character":55},"updated":"2018-02-21 16:16:44.000000000","message":"let\u0027s call this vcpu_dedicated_set to align with the policy name of \"dedicated\".","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"Host Configuration"},{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicate_set`` on the compute"},{"line_number":59,"context_line":"nodes. The VMs with ``hw:cpu_policy\u003ddedicated`` pick their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicate_set`` instead of ``vcpu_pin_set``."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_309aa961","line":58,"range":{"start_line":58,"start_character":41,"end_line":58,"end_character":60},"in_reply_to":"3fa0c359_344e2b6f","updated":"2018-02-22 08:40:14.000000000","message":"\u003e let\u0027s call this vcpu dedicated_set\n\nGood idea. Done.\n\n\u003e It would be possible to allocate dedicated pCPUs on-demand from vcpu_pin_set\n\nI put that approach into the \"Alternative\" section.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"362453200e4ef8eca2341be253c1b132ff5744aa","unresolved":false,"context_lines":[{"line_number":59,"context_line":"nodes. The VMs with ``hw:cpu_policy\u003ddedicated`` pick their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicate_set`` instead of ``vcpu_pin_set``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The pCPUs in ``vcpu_dedicate_set`` are put into the ``siblings`` field in the"},{"line_number":63,"context_line":"host\u0027s ``NUMATopology`` object. The ``cpuset`` field in the ``NUMATopology``"},{"line_number":64,"context_line":"object will remain the same to hold pCPUs in ``vcpu_pin_set``."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_d9f622d8","line":64,"range":{"start_line":62,"start_character":0,"end_line":64,"end_character":62},"updated":"2018-02-21 16:16:44.000000000","message":"I guess I don\u0027t understand this part of the proposal. I think it\u0027s enough to just say \"vcpu_dedicated_set\" shall be an exclusive subset of \"vcpu_pin_set\" and that instances with a CPU policy of \"shared\" shall be placed on pCPUs that are the set difference between vcpu_pin_set and vcpu_dedicated_set.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":59,"context_line":"nodes. The VMs with ``hw:cpu_policy\u003ddedicated`` pick their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicate_set`` instead of ``vcpu_pin_set``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The pCPUs in ``vcpu_dedicate_set`` are put into the ``siblings`` field in the"},{"line_number":63,"context_line":"host\u0027s ``NUMATopology`` object. The ``cpuset`` field in the ``NUMATopology``"},{"line_number":64,"context_line":"object will remain the same to hold pCPUs in ``vcpu_pin_set``."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_50b895c6","line":64,"range":{"start_line":62,"start_character":0,"end_line":64,"end_character":62},"in_reply_to":"3fa0c359_d9f622d8","updated":"2018-02-22 08:40:14.000000000","message":"Okay. I agree that\u0027s cleaner. I have one concern, but after all I prefer your proposal. I put that concern in updated \"Documentation impact\" section. Please have a look.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"362453200e4ef8eca2341be253c1b132ff5744aa","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"To avoid in-consistency with allocation ratio and to get appropriate"},{"line_number":70,"context_line":"allocation candidates, the Nova will only report shared pCPUs to the Placement"},{"line_number":71,"context_line":"as the host\u0027s VCPU inventory. In the same way, the Nova will claim only"},{"line_number":72,"context_line":"shared vCPUs when getting allocation candidates."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This means that the Nova manages dedicated pCPUs internally without the"},{"line_number":75,"context_line":"Placement and that the ``NUMATopologyFilter`` remains responsible for"},{"line_number":76,"context_line":"scheduling hosts for the cases where NUMA related features are specified."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Note that there might be a possibility to report these dedicated pCPUs as a"},{"line_number":79,"context_line":"inventory of the \"NUMA resource providers\" in the future and offload these"},{"line_number":80,"context_line":"management to the Placement. But at least this is out of the scope of this"},{"line_number":81,"context_line":"spec."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_d9e4e20f","line":81,"range":{"start_line":69,"start_character":0,"end_line":81,"end_character":5},"updated":"2018-02-21 16:16:44.000000000","message":"I would replace the above with just this:\n\n\"Placement will not be playing a part in any of this. The NUMATopologyFilter is the thing that will need to determine if an instance will \"fit\" on the host\u0027s set of (dedicated or shared) pCPUs. Placement won\u0027t be involved in this logic.\"","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"To avoid in-consistency with allocation ratio and to get appropriate"},{"line_number":70,"context_line":"allocation candidates, the Nova will only report shared pCPUs to the Placement"},{"line_number":71,"context_line":"as the host\u0027s VCPU inventory. In the same way, the Nova will claim only"},{"line_number":72,"context_line":"shared vCPUs when getting allocation candidates."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"This means that the Nova manages dedicated pCPUs internally without the"},{"line_number":75,"context_line":"Placement and that the ``NUMATopologyFilter`` remains responsible for"},{"line_number":76,"context_line":"scheduling hosts for the cases where NUMA related features are specified."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Note that there might be a possibility to report these dedicated pCPUs as a"},{"line_number":79,"context_line":"inventory of the \"NUMA resource providers\" in the future and offload these"},{"line_number":80,"context_line":"management to the Placement. But at least this is out of the scope of this"},{"line_number":81,"context_line":"spec."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_10ae8d80","line":81,"range":{"start_line":69,"start_character":0,"end_line":81,"end_character":5},"in_reply_to":"3fa0c359_d9e4e20f","updated":"2018-02-22 08:40:14.000000000","message":"Done.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"362453200e4ef8eca2341be253c1b132ff5744aa","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":87,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads. If"},{"line_number":88,"context_line":"``share(default)``, the emulator threads float over shared pCPUs."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_199b2a66","line":86,"range":{"start_line":86,"start_character":7,"end_line":86,"end_character":45},"updated":"2018-02-21 16:16:44.000000000","message":"Unless I\u0027m badly mistaken, the emulator_threads_policy\u003disolate policy is isolating the emulator thread *from the VM\u0027s I/O threads*, not from other emulator threads. So, IMHO, it\u0027s actually more appropriate to place the emulator thread on one of the *shared* pCPU set, not consume one of the dedicated pCPUs for the emulator thread.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"64f522c85926caaecfc40996efe77813c0974e0c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":87,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads. If"},{"line_number":88,"context_line":"``share(default)``, the emulator threads float over shared pCPUs."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_b92556c4","line":86,"range":{"start_line":86,"start_character":7,"end_line":86,"end_character":45},"in_reply_to":"3fa0c359_199b2a66","updated":"2018-02-21 16:44:39.000000000","message":"I believe you are in fact mistaken. :)  According to the spec setting emulator_threads_policy\u003disolate is intended to avoid \"stealing\" time from the vCPU threads, and it will allocate an extra pCPU for each instance.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":87,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads. If"},{"line_number":88,"context_line":"``share(default)``, the emulator threads float over shared pCPUs."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_d06ca537","line":86,"range":{"start_line":86,"start_character":7,"end_line":86,"end_character":45},"in_reply_to":"3fa0c359_b92556c4","updated":"2018-02-22 08:40:14.000000000","message":"@Jay, Chris\n\nI at first didn\u0027t understand what Jay is saying about, but I think I got it now. Updated.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6344cc294ea5b437c11b1b8222a2a16523349657","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":87,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads. If"},{"line_number":88,"context_line":"``share(default)``, the emulator threads float over shared pCPUs."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_ff2722c6","line":86,"range":{"start_line":86,"start_character":7,"end_line":86,"end_character":45},"in_reply_to":"3fa0c359_b92556c4","updated":"2018-02-22 16:34:14.000000000","message":"@cfriesen: isn\u0027t that precisely what I said?","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"b93b476a00595cdec9e7badb0def095ba7135198","unresolved":false,"context_lines":[{"line_number":83,"context_line":"Emulator Threads Policy"},{"line_number":84,"context_line":"-----------------------"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":87,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads. If"},{"line_number":88,"context_line":"``share(default)``, the emulator threads float over shared pCPUs."},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_5d0bbed3","line":86,"range":{"start_line":86,"start_character":7,"end_line":86,"end_character":45},"in_reply_to":"3fa0c359_ff2722c6","updated":"2018-02-22 17:21:02.000000000","message":"You said \"the emulator_threads_policy\u003disolate policy is isolating the emulator thread *from the VM\u0027s I/O threads*, not from other emulator threads\".\n\nI\u0027m just pointing out that it\u0027s actually the VM\u0027s vCPU threads that we care about, not the IO threads. (Without \"isolate\" the emulator thread \"steals\" time from the vCPUs, and you can get priority inversion if you try to run all vCPUs as RT.)\n\nI do agree that it would be appropriate to run the emulator threads on the \"shared\" pCPU set rather than consume a \"dedicated\" pCPU.  Arguably it should consume a fractional pCPU (like a \"shared\" vCPU does) to ensure we don\u0027t have too many emulator threads running on a single pCPU.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"362453200e4ef8eca2341be253c1b132ff5744aa","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":107,"context_line":"   vcpu_dedicate_set \u003d 4-7, 12-15"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_19b48ad0","line":107,"range":{"start_line":106,"start_character":0,"end_line":107,"end_character":33},"updated":"2018-02-21 16:16:44.000000000","message":"I don\u0027t understand this. Wouldn\u0027t vcpu_pin_set be 0-15? That would make the set of pCPUs for \"floater\" vCPUs (and emulator threads) \u003d\u003d 1-3, 9-11","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":107,"context_line":"   vcpu_dedicate_set \u003d 4-7, 12-15"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_30eb8978","line":107,"range":{"start_line":106,"start_character":0,"end_line":107,"end_character":33},"in_reply_to":"3fa0c359_19b48ad0","updated":"2018-02-22 08:40:14.000000000","message":"I agree that\u0027s cleaner. Done.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"362453200e4ef8eca2341be253c1b132ff5744aa","unresolved":false,"context_lines":[{"line_number":183,"context_line":"sidecar container-like thing instead of being embedded in the same VM that"},{"line_number":184,"context_line":"does packet core processing."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"But, instead of asking VNF vendors to do this work, we jump through lots of"},{"line_number":187,"context_line":"hoops trying to produce hardware-defined software for them."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_99bf3aa9","line":187,"range":{"start_line":186,"start_character":0,"end_line":187,"end_character":59},"updated":"2018-02-21 16:16:44.000000000","message":"this was a bit tongue-in-cheek of me. you can probably remove it :)","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":183,"context_line":"sidecar container-like thing instead of being embedded in the same VM that"},{"line_number":184,"context_line":"does packet core processing."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"But, instead of asking VNF vendors to do this work, we jump through lots of"},{"line_number":187,"context_line":"hoops trying to produce hardware-defined software for them."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_d08825c7","line":187,"range":{"start_line":186,"start_character":0,"end_line":187,"end_character":59},"in_reply_to":"3fa0c359_74ed93ee","updated":"2018-02-22 08:40:14.000000000","message":"Anyway, I realized this is not an alternative of this spec. This is an alternative of the next spec in https://review.openstack.org/#/c/545734/. I badly mistook and have moved this part there. \n\nI apologize you that I confuse you.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"64f522c85926caaecfc40996efe77813c0974e0c","unresolved":false,"context_lines":[{"line_number":183,"context_line":"sidecar container-like thing instead of being embedded in the same VM that"},{"line_number":184,"context_line":"does packet core processing."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"But, instead of asking VNF vendors to do this work, we jump through lots of"},{"line_number":187,"context_line":"hoops trying to produce hardware-defined software for them."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa0c359_74ed93ee","line":187,"range":{"start_line":186,"start_character":0,"end_line":187,"end_character":59},"in_reply_to":"3fa0c359_99bf3aa9","updated":"2018-02-21 16:44:39.000000000","message":"To be fair, even in a realtime packet-processing VM you will often have some non-realtime housekeeping work to do, and it\u0027s useful to not consume a whole pCPU for that work.  We currently have a variation to this where you can specify one vCPU (typically vCPU0) as a \"shared\" vCPU, and it runs on a single pCPU alongside all other \"shared\" vCPUs from other instances.  This lets you pack more \"dedicated\" vCPUs onto a given compute node.","commit_id":"31fac2cb023d4f0cee5b32d5d46a776866b91844"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"32d6389ef24292a0d485539bf10401783816f03c","unresolved":false,"context_lines":[{"line_number":222,"context_line":"``vcpu_pin_set`` to preserve version compatibility and not to get upgade"},{"line_number":223,"context_line":"impact."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"In this case, there will be no shared pCPUs on the host. So, the"},{"line_number":226,"context_line":"VMs with ``emulator_thread_policy\u003disolate`` can\u0027t be deployed on that"},{"line_number":227,"context_line":"host. This should be well announced in the release notes."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Implementation"},{"line_number":230,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa0c359_41e8c9b1","line":227,"range":{"start_line":225,"start_character":0,"end_line":227,"end_character":57},"updated":"2018-02-22 08:40:14.000000000","message":"@Jay\n\nThis is one concern, but I don\u0027t think this is a \"big\" impact here and it is available if we announce this properly. That said, first it is not api change but the change in scheduler policy. Second, I don\u0027t think the \"emulator_thread_policy\u003disolate\" is a matured and popular option in product use cases as it is still buggy as we can see in [1].\n\n[1] https://review.openstack.org/#/c/539865/.\n\nThis is why I updated this spec according to your words. Afterthoughts I prefer the updated one since this is obviously cleaner design.","commit_id":"ee5bfc5438bba9ab137f94a32e8e192f2a23192c"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"12428e32f2dbccb17c9fcf076a75ad540f9aed52","unresolved":false,"context_lines":[{"line_number":222,"context_line":"``vcpu_pin_set`` to preserve version compatibility and not to get upgade"},{"line_number":223,"context_line":"impact."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"In this case, there will be no shared pCPUs on the host. So, the"},{"line_number":226,"context_line":"VMs with ``emulator_thread_policy\u003disolate`` can\u0027t be deployed on that"},{"line_number":227,"context_line":"host. This should be well announced in the release notes."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Implementation"},{"line_number":230,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa0c359_366dba31","line":227,"range":{"start_line":225,"start_character":0,"end_line":227,"end_character":57},"in_reply_to":"3fa0c359_41e8c9b1","updated":"2018-02-22 12:38:25.000000000","message":"Later: No, this breaks the compatibility between the releases more seriously, which results to force operators to set all the host\u0027s configuration before upgrading. I\u0027ll update the spec again tomorrow afternoon.","commit_id":"ee5bfc5438bba9ab137f94a32e8e192f2a23192c"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/mixed-cpu-policy-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature enables VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":14,"context_line":"``hw:cpu-policy\u003ddedicated`` to co-locate on the same host at the same time by"},{"line_number":15,"context_line":"introducing ``vcpu_dedicated_set`` in the nova configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_42ce7d5a","line":14,"range":{"start_line":14,"start_character":31,"end_line":14,"end_character":75},"updated":"2018-02-22 17:08:16.000000000","message":"you can just write \"to be colocated\", since colocated means to share a space at the same time. :)","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/mixed-cpu-policy-host"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature enables VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":14,"context_line":"``hw:cpu-policy\u003ddedicated`` to co-locate on the same host at the same time by"},{"line_number":15,"context_line":"introducing ``vcpu_dedicated_set`` in the nova configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_58f18594","line":14,"range":{"start_line":14,"start_character":31,"end_line":14,"end_character":75},"in_reply_to":"3fa0c359_42ce7d5a","updated":"2018-02-23 00:35:49.000000000","message":"Thanks! Done.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Today, the Nova supports the following two policies when deploying VMs."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* ``hw:cpu_policy\u003dshared``"},{"line_number":23,"context_line":"   Every vCPU on the VM float freely on host pCPUs specified in"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_02d4f5e7","line":20,"range":{"start_line":20,"start_character":7,"end_line":20,"end_character":16},"updated":"2018-02-22 17:08:16.000000000","message":"just \"nova\", not \"the Nova\"","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Today, the Nova supports the following two policies when deploying VMs."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* ``hw:cpu_policy\u003dshared``"},{"line_number":23,"context_line":"   Every vCPU on the VM float freely on host pCPUs specified in"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_182d3dfd","line":20,"range":{"start_line":20,"start_character":7,"end_line":20,"end_character":16},"in_reply_to":"3fa0c359_02d4f5e7","updated":"2018-02-23 00:35:49.000000000","message":"Done","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Today, the Nova supports the following two policies when deploying VMs."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* ``hw:cpu_policy\u003dshared``"},{"line_number":23,"context_line":"   Every vCPU on the VM float freely on host pCPUs specified in"},{"line_number":24,"context_line":"   ``vcpu_pin_set``. The pCPUs are allowed to be shared with other"},{"line_number":25,"context_line":"   processes."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_62fcd971","line":23,"range":{"start_line":23,"start_character":24,"end_line":23,"end_character":29},"updated":"2018-02-22 17:08:16.000000000","message":"floats","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Today, the Nova supports the following two policies when deploying VMs."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* ``hw:cpu_policy\u003dshared``"},{"line_number":23,"context_line":"   Every vCPU on the VM float freely on host pCPUs specified in"},{"line_number":24,"context_line":"   ``vcpu_pin_set``. The pCPUs are allowed to be shared with other"},{"line_number":25,"context_line":"   processes."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_38303956","line":23,"range":{"start_line":23,"start_character":24,"end_line":23,"end_character":29},"in_reply_to":"3fa0c359_62fcd971","updated":"2018-02-23 00:35:49.000000000","message":"Done","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* ``hw:cpu_policy\u003ddedicated``"},{"line_number":28,"context_line":"   Every vCPU on the VM is pinned to one dedicated pCPU that is picked up from"},{"line_number":29,"context_line":"   ``vcpu_pin_set``. The Nova won\u0027t pick pCPUs that are already pinned to"},{"line_number":30,"context_line":"   other VMs."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"However, if these two VMs with different policies are co-located on the same"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_223fb125","line":29,"range":{"start_line":29,"start_character":21,"end_line":29,"end_character":29},"updated":"2018-02-22 17:08:16.000000000","message":"just \"Nova\" :)","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"* ``hw:cpu_policy\u003ddedicated``"},{"line_number":28,"context_line":"   Every vCPU on the VM is pinned to one dedicated pCPU that is picked up from"},{"line_number":29,"context_line":"   ``vcpu_pin_set``. The Nova won\u0027t pick pCPUs that are already pinned to"},{"line_number":30,"context_line":"   other VMs."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"However, if these two VMs with different policies are co-located on the same"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_584665c2","line":29,"range":{"start_line":29,"start_character":21,"end_line":29,"end_character":29},"in_reply_to":"3fa0c359_223fb125","updated":"2018-02-23 00:35:49.000000000","message":"Done","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"   ``vcpu_pin_set``. The Nova won\u0027t pick pCPUs that are already pinned to"},{"line_number":30,"context_line":"   other VMs."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"However, if these two VMs with different policies are co-located on the same"},{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_820fa586","line":37,"range":{"start_line":32,"start_character":0,"end_line":37,"end_character":75},"updated":"2018-02-22 17:08:16.000000000","message":"++ correct and well said.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"cdea9f9830528793b2c6f85f6cbec08e3f5b880b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_1d7776d6","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":75},"updated":"2018-02-22 17:52:30.000000000","message":"I would suggest that it\u0027s almost as bad to be forced to separate pCPUs for shared/dedicated before deployment, hence my suggestion to allocate \"shared\" pCPUs dynamically as needed.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_b88529af","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":75},"in_reply_to":"3fa0c359_1d7776d6","updated":"2018-02-23 00:35:49.000000000","message":"@Chris\nI put that dynamic approach in alternative section.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"40a6721846a50f5414b1adb93ad3b474329dfa56","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_c9ccf836","line":43,"updated":"2018-02-22 15:14:48.000000000","message":"That looks to add complexity and remove flexibility. We have an API to handle aggregates, so operators can easily add/remove a host to the \"dedicated\" aggregate to manage resources.\n\nWe don\u0027t have API to manage nova.conf.\n\nI don\u0027t understand the use-case; packaging resources per nova.conf instead of per aggregates.  \n\nThat does not look right, and unfortunately there is no smart solution to handle that automatically.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"142b3b0e7370924498693d46c257b8cf3a82bca4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_968112fe","line":43,"in_reply_to":"3fa0c359_2107a1cc","updated":"2018-02-23 12:54:53.000000000","message":"BTW, Sahid, I agree with you that using a dedicated API is much better than having to change CONF options! :)\n\nIf I had my way, all this node resource configuration stuff would be modified by API, not CONF options. But, unfortunately, that\u0027s not how things are today.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"46fdfa0312a8141b46db9716500fe76ee7e22764","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_7c00e734","line":43,"in_reply_to":"3fa0c359_2107a1cc","updated":"2018-02-23 15:16:45.000000000","message":"One use-case that our customers have is where they have a small cloud (possibly as small as a single all-in-one node) and want to run a mix of high-performance and low-performance workloads.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1796ba1790783340a679f9d6d4fc4ee39ed867e7","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_2107a1cc","line":43,"in_reply_to":"3fa0c359_7866c1bd","updated":"2018-02-23 07:49:49.000000000","message":"My worry is that we are going to add complexity and the use-case is not clearly defined, what kind of applications require such partitioning?\n\nWhen I said \"remove flexibility\" it\u0027s to point that: Why operator would prefer update nova.conf of the hosts then restart the services to do partitioning where they could use a dedicated API with no restart and easy managing.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_7866c1bd","line":43,"in_reply_to":"3fa0c359_825d657a","updated":"2018-02-23 00:35:49.000000000","message":"I added that point explicitly in \"upgrade impact\" section.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_825d657a","line":43,"in_reply_to":"3fa0c359_c9ccf836","updated":"2018-02-22 17:08:16.000000000","message":"@sahid: I don\u0027t believe this spec \"removes flexibility\". While it can reasonably be argued that this spec increases complexity, it does not do so *by default*. In other words, it doesn\u0027t alter the existing behaviour of Nova at all. Operators that are using host aggregates to segregate pinned and non-pinned instances can continue to use that coarse-grained segregation if they wish and nothing would change at all.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables us to co-locate \"vCPUs with shared pCPUs backend\" and \"vCPUs with"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_62e619b3","line":45,"range":{"start_line":44,"start_character":73,"end_line":45,"end_character":40},"updated":"2018-02-22 17:08:16.000000000","message":"this is the key, here. this spec is all about reducing the waste that comes from needing to separate entire compute hosts for pinned instances.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"46fdfa0312a8141b46db9716500fe76ee7e22764","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables us to co-locate \"vCPUs with shared pCPUs backend\" and \"vCPUs with"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_7c21c7b3","line":45,"range":{"start_line":44,"start_character":73,"end_line":45,"end_character":40},"in_reply_to":"3fa0c359_59faddbc","updated":"2018-02-23 15:16:45.000000000","message":"On the other hand, running multiple applications in one VM is essentially going back to the old days where you had to worry about ensuring that all of those applications were compatible with each other and didn\u0027t interfere with each other.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d46027efbad19eee584e03043ad28a10884ea006","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables us to co-locate \"vCPUs with shared pCPUs backend\" and \"vCPUs with"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_960cb2ec","line":45,"range":{"start_line":44,"start_character":73,"end_line":45,"end_character":40},"in_reply_to":"3fa0c359_61d8491d","updated":"2018-02-23 12:48:04.000000000","message":"\u003e Our work was to partition pCPUs in a way so we can get the most of\n \u003e hosts to run high performance workloads. I don\u0027t see any use-case\n \u003e where we want limit the capacity of the high-performance\n \u003e applications to run some low-performance applications.\n\nTetsuro\u0027s use case is to have compute hosts useful for both high performance as well as low performance applications. As the functionality currently exists in Nova, the NFV deployer typically has to buy a greater number of physical compute hosts than is actually needed. This is because the host aggregate way of segregating high-performance applications from low-performance applications leaves a lot of wasted CPU power on the compute hosts in the high-performance aggregate. He wants to make efficient use of all that wasted CPU.\n\nBTW, this is also an issue for Verizon. Our edge NFV deployments don\u0027t have many compute hosts (sometimes they sit in a telco closet somewhere with little room for expansion). This means that the CPU that is wasted on the compute hosts in the high performance aggregate has a very high cost compared to a multi-rack, multi-row datacenter deployment.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"1796ba1790783340a679f9d6d4fc4ee39ed867e7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables us to co-locate \"vCPUs with shared pCPUs backend\" and \"vCPUs with"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_61d8491d","line":45,"range":{"start_line":44,"start_character":73,"end_line":45,"end_character":40},"in_reply_to":"3fa0c359_62e619b3","updated":"2018-02-23 07:49:49.000000000","message":"I understand that, I don\u0027t think it\u0027s a good point, that needs more explanation. I would like to understand *who* is asking for that? Most of our work around CPU Pinning, NUMA and all of that was to address specific use-cases.\n\nOur work was to partition pCPUs in a way so we can get the most of hosts to run high performance workloads. I don\u0027t see any use-case where we want limit the capacity of the high-performance applications to run some low-performance applications.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5ec1de658aefa32b8c45a0282226ce187e4a48cb","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables us to co-locate \"vCPUs with shared pCPUs backend\" and \"vCPUs with"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_ffc06952","line":45,"range":{"start_line":44,"start_character":73,"end_line":45,"end_character":40},"in_reply_to":"3fa0c359_7c21c7b3","updated":"2018-02-23 15:23:24.000000000","message":"Agreed, but that\u0027s not *this* spec :) I also am not thrilled with the \"shared and dedicated in a single VM\" spec, but this spec is about the shared and dedicated on a single *host*.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"0bf9362299bff077089548a2acd164a981d22ca9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"co-locate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables us to co-locate \"vCPUs with shared pCPUs backend\" and \"vCPUs with"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_59faddbc","line":45,"range":{"start_line":44,"start_character":73,"end_line":45,"end_character":40},"in_reply_to":"3fa0c359_960cb2ec","updated":"2018-02-23 13:55:30.000000000","message":"\u003e Tetsuro\u0027s use case is to have compute hosts useful for both high performance as well as low performance applications. As the functionality currently exists in Nova, the NFV deployer typically has to buy a greater number of physical compute hosts than is actually needed. This is because the host aggregate way of segregating high-performance applications from low-performance applications leaves a lot of wasted CPU power on the compute hosts in the high-performance aggregate. He wants to make efficient use of all that wasted CPU.\n\nI understand what you mean and what you try to resolve, but without introducing this option we can have the same effect. So you have a host with 10CPUs, an instance pinned on 8 running high-performance app. - Starting an other instance which will be pinned on the 2 left CPUs is going to have the same impact than configuring \u0027vcpu_dedicated_set\u003d8-9\u0027 (and you can make running all the low-performance apps on it).\n\n\u003e BTW, this is also an issue for Verizon. Our edge NFV deployments don\u0027t have many compute hosts (sometimes they sit in a telco closet somewhere with little room for expansion). This means that the CPU that is wasted on the compute hosts in the high performance aggregate has a very high cost compared to a multi-rack, multi-row datacenter deployment.\n\nIt\u0027s about to think differently, instead of having one instance per process, you have to consider N processes on one instance, they are going to float on the pCPUs in the same way. and it\u0027s probably more efficient since we avoid the QEMU overhead.\n\nI think what you try to resolve is not really an issue that is why I\u0027m a bit reticent introducing that option, it adds complexity and does not provide flexibility for the operators to manage it.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_c2684df6","line":59,"range":{"start_line":59,"start_character":9,"end_line":59,"end_character":10},"updated":"2018-02-22 17:08:16.000000000","message":"vcpu :)","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_98fb8d77","line":59,"range":{"start_line":59,"start_character":9,"end_line":59,"end_character":10},"in_reply_to":"3fa0c359_c2684df6","updated":"2018-02-23 00:35:49.000000000","message":"thanks. done.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_02287594","line":61,"range":{"start_line":61,"start_character":38,"end_line":61,"end_character":73},"updated":"2018-02-22 17:08:16.000000000","message":"shouldn\u0027t this default to set(vcpu_pin_set) - set(vcpu_dedicated_set)? Otherwise, the floater vCPUs may float on pCPUs that are reserved for dedicated work.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"cdea9f9830528793b2c6f85f6cbec08e3f5b880b","unresolved":false,"context_lines":[{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_dd734e4d","line":61,"range":{"start_line":61,"start_character":38,"end_line":61,"end_character":73},"in_reply_to":"3fa0c359_02287594","updated":"2018-02-22 17:52:30.000000000","message":"Agreed.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7a38f794fe6e2292f9c4a640cf29ffb73e1cb643","unresolved":false,"context_lines":[{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_4ed763c0","line":61,"range":{"start_line":61,"start_character":38,"end_line":61,"end_character":73},"in_reply_to":"3fa0c359_2abe91ad","updated":"2018-02-24 23:51:45.000000000","message":"I was missing one thing. If we set -1 (or something) for vcpus_dedicated_set by defalt, the subset approach is possible. Internally it would be something like,\n\n  if vcpus_dedicated_set \u003d -1:\n      # if vcpus_dedicated_set isn\u0027t set, we fall back to the legacy usage.\n      shared_vcpus \u003d dedicated_cpus \u003d set(vcpus_pin_set)\n  else:\n      # if vcpus_dedicated_set is set, we can use the subset approach.\n      shared_vcpus \u003d set(vcpus_pin_set) - set(vcpus_dedicated_set)\n      dedicated_vcpus \u003d set(vcpus_dedicated_set)\n\nI\u0027m good with this.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d46027efbad19eee584e03043ad28a10884ea006","unresolved":false,"context_lines":[{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_761ec60c","line":61,"range":{"start_line":61,"start_character":38,"end_line":61,"end_character":73},"in_reply_to":"3fa0c359_38d83951","updated":"2018-02-23 12:48:04.000000000","message":"Tetsuro, what I\u0027m proposing is that the default for vcpu_dedicated_set by equal to vcpu_pin_set. That would mean zero disruption on upgrades -- things would continue to function exactly as they have before the upgrade. The operator would need to change the nova.conf on the compute host and restart the nova-compute service for the new \"dedicated and shared on same host\" system to take effect.\n\nMake sense?","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_2abe91ad","line":61,"range":{"start_line":61,"start_character":38,"end_line":61,"end_character":73},"in_reply_to":"3fa0c359_761ec60c","updated":"2018-02-24 08:50:54.000000000","message":"The subset approach does make sense if I have only \"dedicated hosts\" in my environment.\n\nIf I am an operator who have \"dedicated hosts\", I\u0027m now using all \"vcpu_pin_set\" for dedicated pCPUs in Queens. So if the \"vcpu_dedicated_set\" equals to \"vcpu_pin_set\" by default, I have nothing to do upgrading to Rocky. \u003c-- Cool!\n\nLet me say I have \"shared host\", too.\nI\u0027m now using all \"vcpu_pin_set\" for shared pCPUs on that host. So if the \"vcpu_dedicated_set\" equals to \"vcpu_pin_set\" by default, I will have no shared pCPUs...\n\n  set(\"vcpu_pin_set\")-set(\"vcpu_dedicated_set\") \u003d empty set\n\n...in Rockys, which means I have to reconfigure to explicitly set \"vcpu_dedicated_set\" to the empty set upgrading to Rocky. \u003c--Not cool!\n\n\nIf we don\u0027t take the \"disjoint set approach\" and if \"vcpu_dedicated_set\"  equals to \"vcpu_pin_set\" default, the \"vcpu_pin_set\" is for shared *and* dedicated pCPUs, which is the same situation as Queens. So  operators have to change the nova.conf neither for \"shared hosts\" nor for \"dedicated hosts\".\n\n\n... is what I am thinking about. Please tell me if I am missing something!","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``cpu_dedicated_set`` shall be a subset of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_38d83951","line":61,"range":{"start_line":61,"start_character":38,"end_line":61,"end_character":73},"in_reply_to":"3fa0c359_dd734e4d","updated":"2018-02-23 00:35:49.000000000","message":"Not agreed. I agree that \"subset approach\" is a cleaner design, but that forces operators reconfigure the compute node\u0027s nova configuration file when upgrading OpenStack to Rocky. For this point we should compromise to allow non disjoint sets between shared and dedicated pCPUs. Please see the alternative section.\nAdded a note here.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"cdea9f9830528793b2c6f85f6cbec08e3f5b880b","unresolved":false,"context_lines":[{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_58050c0f","line":65,"updated":"2018-02-22 17:52:30.000000000","message":"I think you\u0027re missing something here.  How do you represent pCPU usage with a system that has a mix of shared and dedicated instances?  Presumably we would want to display different usage numbers for a single \"shared\" vCPU vs a \"dedicated\" vCPU.\n\nInternally we changed the usage calculation so each \"shared\" vCPU consumed 1/cpu_allocation_ratio pCPUs, and each \"dedicated\" vCPU consumed 1 pCPU.  This has the nice property that the overall usage cannot be greater than len(vcpu_pin_set) and it works well with how the resource tracker used to work (in that the old CoreFilter properly detected when there was no more room left).","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f627919a6d3bbc20ada9e6dc8b40c520a539fd11","unresolved":false,"context_lines":[{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_7624860d","line":65,"in_reply_to":"3fa0c359_2bba22c0","updated":"2018-02-23 13:03:03.000000000","message":"@cfriesen: As mentioned on IRC yesterday, the cpu_allocation_ratio has nothing to do with pinned vCPUs.\n\nAlso, the compute_nodes.vcpus and compute_nodes.vcpus_used Nova DB table fields refer to the VCPU resources made available by the compute node to guests. VCPU resources !\u003d pinned CPUs. There are two entirely separate systems for tracking virtual CPUs and for tracking pCPUs that are pinned to a guest.\n\nThe former is tracked by placement (the VCPU resource class) and is what the compute_nodes.vcpus, compute_nodes.vcpus_used, and compute_nodes.cpu_allocation_ratio refer to.\n\nThe latter is tracked 100% inside the nova/virt/hardware.py module which saves pinned pCPUs to the NUMATopology object that is stored in the compute_nodes.numa_topology Nova DB field.\n\nWe have no plans to port the NUMATopology object to the Placement API.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"42af1786557d72ebf7f9ab50774585c7e870dc7d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_2bba22c0","line":65,"in_reply_to":"3fa0c359_33a05af4","updated":"2018-02-23 05:34:13.000000000","message":"The cpu_allocation_ratio is defined as the number of vCPUs that can run on a single pCPU.  As such, it does not get affected by the number of dedicated pCPUs since they are not available for running \"shared\" vCPUs.\n\nGiven the division you specified, if we have one pCPU set aside for shared instances and a cpu_allocation_ratio of 2, then it follows that we should be able to allocate two \"shared\" vCPUs and 8 \"dedicated\" vCPUs on this node.\n\nIf we used all of the pCPUs for \"shared\" vCPUs (ie \"vcpu_dedicated_set\" is empty) then we would be able to allocate 18 \"shared\" vCPUs on this node.\n\nWith our internal patch we would represent the first case with the host having 9 pCPUs available, and we would consume them as (8*1)+(2*(1/2))\u003d9.  In the second case we would consume them as ((0*1) + 18*(1/2))\u003d9.\n\nCurrently nova reports \"vcpus\" and \"vcpus_used\" as part of the hypervisor details, but the second number can be much larger than the first.  This is counter-intuitive.  These also currently don\u0027t track whether they are shared or dedicated, making things confusing.  It would be ideal if we could look at the \"vcpus\" and \"vcpus_used\" numbers on a hypervisor and see how close it is to being filled, regardless of how its pCPUs are divided up between \"shared\" and \"dedicated\".","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_33a05af4","line":65,"in_reply_to":"3fa0c359_58050c0f","updated":"2018-02-23 00:35:49.000000000","message":"Let me say \n\n  pCPU(shared)    : 1\n  pCPU(dedicated) : 8\n  allocation_ratio: 2\n\nThe total pCPUs are 9. \nAnd we can only use 2 vCPUs for shared - i.e. pCPU(shared) multiplied by allocation_ratio.\n\nYour approach sounds that deploying 1 shared vCPU means 1/2 (\u003d1/allocation_ratio) pCPU, which means we can deploy up to 18 shared vCPUs (\u003dtotal_pCPU/(1/allocation_ratio)) to this host. Is this expected and acceptable for operators? Why does the actual allocation ratio get affected by the numbers of dedicated pCPUs? \n\nTo avoid this situation, resource tracker shouldn\u0027t track any of dedicated pCPUs\nand leave that management to host\u0027s NUMACell object. RequestSpec shouldn\u0027t\nhave any dedicated vCPUs request and we should leave the scheduling responsibility from CoreFilter to NUMATopoloyFilter.\nIn other words, we can never mix them anywhere in the code.\n\nAnd I have put this in \"Work items\" section.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"46fdfa0312a8141b46db9716500fe76ee7e22764","unresolved":false,"context_lines":[{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_bff3c108","line":65,"in_reply_to":"3fa0c359_7624860d","updated":"2018-02-23 15:16:45.000000000","message":"I get that they\u0027re different.  (I\u0027m not sure I agree that they *should be* different, but that\u0027s a separate issue.)\n\nBasically I have two concerns:\n\n1) I find it strange that compute_nodes.vcpus_used can get much larger than compute_nodes.vcpus.  Logically this just seems weird.\n\n2) In order to debug scheduler issues, it\u0027s useful to be able to see what resources are available on a given compute node. (And in the case of pinning/hugepages it\u0027s useful to further know what\u0027s available on each NUMA node).  If \"dedicated\" pCPU usage is simply not reported, then this is arguably a regression from the current system, where they would at least be reported via compute_nodes.vcpus_used (since each compute node is either \"dedicated\" or \"shared\" a \"used\" vCPU on a \"dedicated\" compute node counts as a \"used\" pCPU).","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Scheduling and Placement"},{"line_number":67,"context_line":"------------------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_c7283b34","line":65,"in_reply_to":"3fa0c359_bff3c108","updated":"2018-02-24 08:50:54.000000000","message":"If the resource tracker tracks no dedicated pCPUs and tracks dedicated vCPUs, I agree\n\n  compute_nodes.vcpu_used \u003e compute_nodes.vcpu\n\nhappens, but If we change the resource tracker not to track dedicated vCPUs, it doesn\u0027t happen, does it?\n\n[1] https://github.com/openstack/nova/blob/master/nova/compute/resource_tracker.py#L1421-L1450\n\nSo the discussion point here sounds \"how we should provide NUMACell information to operators\" to me.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"03df22d6b9ac206bc48700a3ce018fdb011b65f0","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":107,"context_line":"   vcpu_dedicated_set \u003d 4-7, 12-15"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_bd2d2296","line":107,"range":{"start_line":106,"start_character":0,"end_line":107,"end_character":34},"updated":"2018-02-22 17:08:16.000000000","message":"My comment from the last patch still applies.\n\nIf we set vcpu_pin_set to 0-15 and vcpu_dedicated_set to 4-7, 12-15 then that would leave 0-3, 9-11 as the set of pCPUs that would be usable by \"floater\" vCPUs.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":".. code::"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":107,"context_line":"   vcpu_dedicated_set \u003d 4-7, 12-15"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_f8abb184","line":107,"range":{"start_line":106,"start_character":0,"end_line":107,"end_character":34},"in_reply_to":"3fa0c359_bd2d2296","updated":"2018-02-23 00:35:49.000000000","message":"That approach is attractive, but it forces operators to reconfigure their host configuration file when upgrading to Rocky after all.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"cdea9f9830528793b2c6f85f6cbec08e3f5b880b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"of the running VMs on the same host for every VM deployment with dedicated"},{"line_number":182,"context_line":"policy."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Another alternative is to let ``cpu_dedicated_set`` be a subset of"},{"line_number":185,"context_line":"``vcpu_pin_set``, and let VMs with ``hw:cpu_policy\u003dshared`` placed on pCPUs"},{"line_number":186,"context_line":"that are the set difference between ``vcpu_pin_set`` and"},{"line_number":187,"context_line":"``vcpu_dedicated_set``."},{"line_number":188,"context_line":"But this is not recommended in terms of upgrade impact."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"In Queens, hosts for \"shared\" VMs and hosts \"dedicated\" VMs are explicitly"},{"line_number":191,"context_line":"separated. For the hosts for \"shared\" VMs, the default value of the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_bd8f6228","line":188,"range":{"start_line":184,"start_character":0,"end_line":188,"end_character":55},"updated":"2018-02-22 17:52:30.000000000","message":"isn\u0027t this exactly what you are describing at lines 58-63?","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":181,"context_line":"of the running VMs on the same host for every VM deployment with dedicated"},{"line_number":182,"context_line":"policy."},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"Another alternative is to let ``cpu_dedicated_set`` be a subset of"},{"line_number":185,"context_line":"``vcpu_pin_set``, and let VMs with ``hw:cpu_policy\u003dshared`` placed on pCPUs"},{"line_number":186,"context_line":"that are the set difference between ``vcpu_pin_set`` and"},{"line_number":187,"context_line":"``vcpu_dedicated_set``."},{"line_number":188,"context_line":"But this is not recommended in terms of upgrade impact."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"In Queens, hosts for \"shared\" VMs and hosts \"dedicated\" VMs are explicitly"},{"line_number":191,"context_line":"separated. For the hosts for \"shared\" VMs, the default value of the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_38e279d6","line":188,"range":{"start_line":184,"start_character":0,"end_line":188,"end_character":55},"in_reply_to":"3fa0c359_bd8f6228","updated":"2018-02-23 00:35:49.000000000","message":"To be honest, I missed to update @L58-63. Updated. I am sorry. \n\nUsing a subset of \"vcpu_pin_set\" as \"vcpu_dedicated_set\" is an alternative. If we can force operators to update their configuration file when upgrading to Rockys. I agree the subset approach would be better.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"cdea9f9830528793b2c6f85f6cbec08e3f5b880b","unresolved":false,"context_lines":[{"line_number":242,"context_line":"Upgrade impact"},{"line_number":243,"context_line":"--------------"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"The default value of ``vcpu_dedicated_set`` should be the same as"},{"line_number":246,"context_line":"``vcpu_pin_set`` to preserve version compatibility and not to get upgade"},{"line_number":247,"context_line":"impact."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_bdf52259","line":247,"range":{"start_line":245,"start_character":0,"end_line":247,"end_character":7},"updated":"2018-02-22 17:52:30.000000000","message":"This doesn\u0027t make sense.  If we are saying that \"vcpu_pin_set\" is a superset of \"vcpu_dedicated_set\" then setting vcpu_dedicated_set the same as vcpu_pin_set would result in zero pCPUs being available for \"shared\" instances.\n\nIf we\u0027re saying that \"vcpu_pin_set\" and \"vcpu_dedicated_set\" are disjoint sets, then setting vcpu_dedicated_set the same as vcpu_pin_set is invalid.\n\nIf we want to avoid upgrade impact, I think we\u0027d want to default \"vcpu_dedicated_set\" to \"legacy\", and then special-case that to mean the current behaviour.  (That way you could explicitly set it to the empty set to ensure that only shared instances could run on this compute node.)","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"762f9b11bd886346bcf8f8fa5759bd268a210d48","unresolved":false,"context_lines":[{"line_number":242,"context_line":"Upgrade impact"},{"line_number":243,"context_line":"--------------"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"The default value of ``vcpu_dedicated_set`` should be the same as"},{"line_number":246,"context_line":"``vcpu_pin_set`` to preserve version compatibility and not to get upgade"},{"line_number":247,"context_line":"impact."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa0c359_380b598e","line":247,"range":{"start_line":245,"start_character":0,"end_line":247,"end_character":7},"in_reply_to":"3fa0c359_bdf52259","updated":"2018-02-23 00:35:49.000000000","message":"I missed to update @L58-63. Now updated. I am sorry.","commit_id":"fa9caa1543b6bd60c3d89b824eacc4ad4dc232b7"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``vcpu_dedicated_set`` shall be a different set of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_cbf61e90","line":59,"range":{"start_line":59,"start_character":38,"end_line":59,"end_character":57},"updated":"2018-02-23 06:19:55.000000000","message":"should this be \"different set from\"?","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":56,"context_line":"------------------"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on the compute"},{"line_number":59,"context_line":"nodes. ``vcpu_dedicated_set`` shall be a different set of ``vcpu_pin_set``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_9f6da5cd","line":59,"range":{"start_line":59,"start_character":38,"end_line":59,"end_character":57},"in_reply_to":"3fa0c359_cbf61e90","updated":"2018-02-24 08:50:54.000000000","message":"Thanks! Done.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    We allow ``vcpu_dedicated_set`` and ``vcpu_dedicated_set`` to have the"},{"line_number":68,"context_line":"    same elements of pCPU numbers to keep the compatibility from Queens"},{"line_number":69,"context_line":"    while it is not recommended. See `Alternatives`_ and `Upgrade impact`_"},{"line_number":70,"context_line":"    section below."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_6b1fcab6","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":35},"updated":"2018-02-23 06:19:55.000000000","message":"should be vcpu_pin_set","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    We allow ``vcpu_dedicated_set`` and ``vcpu_dedicated_set`` to have the"},{"line_number":68,"context_line":"    same elements of pCPU numbers to keep the compatibility from Queens"},{"line_number":69,"context_line":"    while it is not recommended. See `Alternatives`_ and `Upgrade impact`_"},{"line_number":70,"context_line":"    section below."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_bf70a1a5","line":67,"range":{"start_line":67,"start_character":13,"end_line":67,"end_character":35},"in_reply_to":"3fa0c359_6b1fcab6","updated":"2018-02-24 08:50:54.000000000","message":"Thanks! Done.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    We allow ``vcpu_dedicated_set`` and ``vcpu_dedicated_set`` to have the"},{"line_number":68,"context_line":"    same elements of pCPU numbers to keep the compatibility from Queens"},{"line_number":69,"context_line":"    while it is not recommended. See `Alternatives`_ and `Upgrade impact`_"},{"line_number":70,"context_line":"    section below."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Scheduling and Placement"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_eb0bda79","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":18},"updated":"2018-02-23 06:19:55.000000000","message":"I don\u0027t like this since it means operators can shoot themselves in the foot later causing weird performance glitches for \"dedicated\" instances.  I think it would be better to default \u0027vcpu_dedicated_set\u0027 to a special-case value that implies legacy behaviour.  If operators later specify an actual cpu set it would be required to be disjoint from \u0027vcpu_pin_set\u0027.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    We allow ``vcpu_dedicated_set`` and ``vcpu_dedicated_set`` to have the"},{"line_number":68,"context_line":"    same elements of pCPU numbers to keep the compatibility from Queens"},{"line_number":69,"context_line":"    while it is not recommended. See `Alternatives`_ and `Upgrade impact`_"},{"line_number":70,"context_line":"    section below."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Scheduling and Placement"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_7fabf9d4","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":18},"in_reply_to":"3fa0c359_eb0bda79","updated":"2018-02-24 08:50:54.000000000","message":"Cool. I updated the note. Please see if I get you correctly.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":82,"context_line":"-----------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":85,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads, which means no"},{"line_number":86,"context_line":"difference is provided by this spec."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"If ``hw:emulator_threads_policy\u003dshare``, the emulator threads float over"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_4b68cef3","line":85,"range":{"start_line":85,"start_character":2,"end_line":85,"end_character":19},"updated":"2018-02-23 06:19:55.000000000","message":"vcpu_dedicated_set","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Emulator Threads Policy"},{"line_number":82,"context_line":"-----------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":85,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads, which means no"},{"line_number":86,"context_line":"difference is provided by this spec."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"If ``hw:emulator_threads_policy\u003dshare``, the emulator threads float over"},{"line_number":89,"context_line":"shared pCPUs, which means no difference for VMs with"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_6b74aafe","line":86,"range":{"start_line":84,"start_character":0,"end_line":86,"end_character":36},"updated":"2018-02-23 06:19:55.000000000","message":"With hw:emulator_threads_policy\u003disolate we\u0027re trying to isolate the emulator threads from the vCPU threads for this instance.  It would allow for tighter packing to run the emulator threads on the \"shared\" pCPUs rather than the \"dedicated\" pCPUs.  However, there are no guarantees that there are any \"shared\" pCPUs so that might make things more complicated if we had to also allow for falling back to allocating a \"dedicated\" pCPU.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Emulator Threads Policy"},{"line_number":82,"context_line":"-----------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"If the ``hw:emulator_threads_policy\u003disolate``, a pCPU from"},{"line_number":85,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads, which means no"},{"line_number":86,"context_line":"difference is provided by this spec."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"If ``hw:emulator_threads_policy\u003dshare``, the emulator threads float over"},{"line_number":89,"context_line":"shared pCPUs, which means no difference for VMs with"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_bf28a132","line":86,"range":{"start_line":84,"start_character":0,"end_line":86,"end_character":36},"in_reply_to":"3fa0c359_6b74aafe","updated":"2018-02-24 08:50:54.000000000","message":"Hmm... I have started to think this is complicated enough to pull out this feature into another spec. Could you compromise to let this spec leave emulator threads to behave the same way as current behavior? I updated this part.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":85,"context_line":"``vcpu_dedicate_set`` is assigned to the emulator threads, which means no"},{"line_number":86,"context_line":"difference is provided by this spec."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"If ``hw:emulator_threads_policy\u003dshare``, the emulator threads float over"},{"line_number":89,"context_line":"shared pCPUs, which means no difference for VMs with"},{"line_number":90,"context_line":"``hw:cpu_policy\u003dshared``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"But for VMs with ``hw:cpu_policy\u003ddedicated``, VM\u0027s I/O threads on"},{"line_number":93,"context_line":"dedicated pCPUs will never have their time stolen by emulator threads"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_cb005e37","line":90,"range":{"start_line":88,"start_character":0,"end_line":90,"end_character":25},"updated":"2018-02-23 06:19:55.000000000","message":"It is not correct to say there would be no difference.  Currently with hw:emulator_threads_policy\u003dshare, the emulator threads for a particular VM will float over the same pCPUs as the vCPU threads for that VM.  (So they \"share\" the same pCPUs as the vCPU threads.)","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":89,"context_line":"shared pCPUs, which means no difference for VMs with"},{"line_number":90,"context_line":"``hw:cpu_policy\u003dshared``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"But for VMs with ``hw:cpu_policy\u003ddedicated``, VM\u0027s I/O threads on"},{"line_number":93,"context_line":"dedicated pCPUs will never have their time stolen by emulator threads"},{"line_number":94,"context_line":"even when ``hw:emulator_threads_policy\u003dshare``."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Because for both cases emulator threads come to be \"isolated\" from"},{"line_number":97,"context_line":"VM\u0027s I/O threads on dedicated vCPUs, we deprecate ``isolate`` option"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_6b902aee","line":94,"range":{"start_line":92,"start_character":0,"end_line":94,"end_character":47},"updated":"2018-02-23 06:19:55.000000000","message":"I think you mean \"vCPU threads\" here, not \"I/O threads\".\n\nCurrently if you have hw:cpu_policy\u003ddedicated and hw:emulator_threads_policy\u003dshare then the emulator threads will be affined to the same pCPUs as the vCPU threads and they will \"steal\" time from those vCPU threads.  (I think the qemu I/O threads will also be affined to those same pCPUs.)","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":93,"context_line":"dedicated pCPUs will never have their time stolen by emulator threads"},{"line_number":94,"context_line":"even when ``hw:emulator_threads_policy\u003dshare``."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Because for both cases emulator threads come to be \"isolated\" from"},{"line_number":97,"context_line":"VM\u0027s I/O threads on dedicated vCPUs, we deprecate ``isolate`` option"},{"line_number":98,"context_line":"in Rocky release and remove ``emulator_threads_policy`` itself in the"},{"line_number":99,"context_line":"next release."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Example"},{"line_number":102,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_8b79f6c5","line":99,"range":{"start_line":96,"start_character":0,"end_line":99,"end_character":13},"updated":"2018-02-23 06:19:55.000000000","message":"This doesn\u0027t make sense since it relies on a misunderstanding of the intent of hw:emulator_threads_policy.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Example"},{"line_number":102,"context_line":"-------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":107,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_ae6ba0b4","line":104,"range":{"start_line":104,"start_character":29,"end_line":104,"end_character":52},"updated":"2018-02-23 06:19:55.000000000","message":"How do you propose to deal with hyperthreading?  Would you enforce that all siblings need to be in the same group (either \"shared\" or \"dedicated\")?","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Example"},{"line_number":102,"context_line":"-------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":107,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_ca292d8a","line":104,"range":{"start_line":104,"start_character":29,"end_line":104,"end_character":52},"in_reply_to":"3fa0c359_ae6ba0b4","updated":"2018-02-24 08:50:54.000000000","message":"No, we don\u0027t have to enforce the siblings in the same group. We have nothing to propose here. Let\u0027s consider one \"dedicated\" lcore. If its sibling lcore is \"shared\", the \"dedicated\" lcore is used for neither case \"cpu_thread_policy\u003drequired\" nor \"cpu_thread_policy\u003disolate\" since the sibling lcore is not in NUMACell.sibling_set field. And that is the expected behavior here. Reviewing the branch starting from here[1] might help you.\n\nIn other words, \"we are just moving vcpu_pin_set to another set, so there is no reason to impact the behavior of the other options.\" (emulator_threads_policy had been sounded impacted just because I had intentionally changed the feature on the spec. Now I pulled out this part from the spec)\n\nUpdated.\n\n[1] https://review.openstack.org/#/c/537361/4","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":116,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":".. code::"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"   NUMACell(id\u003d0, cpuset\u003dset([1, 2, 3]), memory\u003d1024,"},{"line_number":121,"context_line":"            cpu_usage\u003d0, memory_usage\u003d0, mempages\u003d[],"},{"line_number":122,"context_line":"            siblings\u003d[set([4]), set([5]), set([6]), set([7])],"},{"line_number":123,"context_line":"            pinned_cpus\u003dset([]))"},{"line_number":124,"context_line":"   NUMACell(id\u003d1, cpuset\u003dset([9, 10, 11]), memory\u003d1024,"},{"line_number":125,"context_line":"            cpu_usage\u003d0, memory_usage\u003d0, mempages\u003d[],"},{"line_number":126,"context_line":"            siblings\u003d[set([12]), set([13]), set([14]), set([15])],"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_ce3dccbb","line":123,"range":{"start_line":119,"start_character":0,"end_line":123,"end_character":32},"updated":"2018-02-23 06:19:55.000000000","message":"Not including the \"dedicated\" pCPUs in \"cpuset\" would require significant changes to the code.  The current code all assumes that \"pinned_cpus\" is a subset of \"cpuset\".","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":116,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":".. code::"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"   NUMACell(id\u003d0, cpuset\u003dset([1, 2, 3]), memory\u003d1024,"},{"line_number":121,"context_line":"            cpu_usage\u003d0, memory_usage\u003d0, mempages\u003d[],"},{"line_number":122,"context_line":"            siblings\u003d[set([4]), set([5]), set([6]), set([7])],"},{"line_number":123,"context_line":"            pinned_cpus\u003dset([]))"},{"line_number":124,"context_line":"   NUMACell(id\u003d1, cpuset\u003dset([9, 10, 11]), memory\u003d1024,"},{"line_number":125,"context_line":"            cpu_usage\u003d0, memory_usage\u003d0, mempages\u003d[],"},{"line_number":126,"context_line":"            siblings\u003d[set([12]), set([13]), set([14]), set([15])],"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_aa5aa1ee","line":123,"range":{"start_line":119,"start_character":0,"end_line":123,"end_character":32},"in_reply_to":"3fa0c359_ce3dccbb","updated":"2018-02-24 08:50:54.000000000","message":"How about adding a new field of \"cpuset_dedicated\" here?","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f29afecb9ae17d9521234c8482c218947aac8ceb","unresolved":false,"context_lines":[{"line_number":163,"context_line":"* hw:cpu_policy\u003ddedicated"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"The guest\u0027s vCPUs are pinned to the pCPUs picked from one host\u0027s NUMA node"},{"line_number":166,"context_line":"in ``vcpu_dedicated_set``. In this case, note that the CPU usage is not changed"},{"line_number":167,"context_line":"since the resource tracker tracks only shared vCPUs and shared pCPUs:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":".. code::"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_8edfc464","line":167,"range":{"start_line":166,"start_character":27,"end_line":167,"end_character":69},"updated":"2018-02-23 06:19:55.000000000","message":"I don\u0027t think this makes sense, but we\u0027ll likely need to discuss at the PTG.  If the reported CPU usage doesn\u0027t change, then the admin has no way to know full their hypervisors are without going to the database or parsing the audit logs for the individual compute nodes.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"d13b96507f87f4c722f48de9ea698103c8ecdade","unresolved":false,"context_lines":[{"line_number":163,"context_line":"* hw:cpu_policy\u003ddedicated"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"The guest\u0027s vCPUs are pinned to the pCPUs picked from one host\u0027s NUMA node"},{"line_number":166,"context_line":"in ``vcpu_dedicated_set``. In this case, note that the CPU usage is not changed"},{"line_number":167,"context_line":"since the resource tracker tracks only shared vCPUs and shared pCPUs:"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":".. code::"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3fa0c359_cabdadd8","line":167,"range":{"start_line":166,"start_character":27,"end_line":167,"end_character":69},"in_reply_to":"3fa0c359_8edfc464","updated":"2018-02-24 08:50:54.000000000","message":"Agree it is better to provide some interface to let users know dedicated CPU usage. I will update this part after the PTG.","commit_id":"960863cb1b505539d8b517ea77c989444c893256"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature enables VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":14,"context_line":"``hw:cpu-policy\u003ddedicated`` to colocate on the same host at the same time by"},{"line_number":15,"context_line":"introducing ``pcpu_pin_set`` in the nova configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\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":13,"id":"1f9dbf25_0bd1f7cd","line":15,"range":{"start_line":15,"start_character":14,"end_line":15,"end_character":26},"updated":"2018-03-01 22:15:07.000000000","message":"Logically this name doesn\u0027t really work because a pCPU is just a processor on the host.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This feature enables VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":14,"context_line":"``hw:cpu-policy\u003ddedicated`` to colocate on the same host at the same time by"},{"line_number":15,"context_line":"introducing ``pcpu_pin_set`` in the nova configuration."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem description"},{"line_number":18,"context_line":"\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":13,"id":"1f9dbf25_06dd6e41","line":15,"range":{"start_line":15,"start_character":14,"end_line":15,"end_character":26},"in_reply_to":"1f9dbf25_0bd1f7cd","updated":"2018-03-01 23:00:28.000000000","message":"Well, I just wanted to use a similar name to corresponding resource class in placement anyway. I want more opinions for the name. So let me hold this.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":71,"context_line":"   hosts for VMs with ``hw:cpu_policy\u003ddedicated``. See `Alternatives`_ and"},{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``pcpu_pin_set`` is set, it should be disjoint from ``vcpu_pin_set``."},{"line_number":75,"context_line":"   In this case, the operator is recommended not to host aggregation to"},{"line_number":76,"context_line":"   segregate hosts for shared and dedicated."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_2b72b3e6","line":74,"range":{"start_line":74,"start_character":31,"end_line":74,"end_character":74},"updated":"2018-03-01 22:15:07.000000000","message":"I would say it must be disjoint, and that nova-compute will verify this at startup.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":71,"context_line":"   hosts for VMs with ``hw:cpu_policy\u003ddedicated``. See `Alternatives`_ and"},{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``pcpu_pin_set`` is set, it should be disjoint from ``vcpu_pin_set``."},{"line_number":75,"context_line":"   In this case, the operator is recommended not to host aggregation to"},{"line_number":76,"context_line":"   segregate hosts for shared and dedicated."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_66d8f252","line":74,"range":{"start_line":74,"start_character":31,"end_line":74,"end_character":74},"in_reply_to":"1f9dbf25_2b72b3e6","updated":"2018-03-01 23:00:28.000000000","message":"Done","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``pcpu_pin_set`` is set, it should be disjoint from ``vcpu_pin_set``."},{"line_number":75,"context_line":"   In this case, the operator is recommended not to host aggregation to"},{"line_number":76,"context_line":"   segregate hosts for shared and dedicated."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Scheduling and Placement"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_4b4cdf9d","line":75,"range":{"start_line":75,"start_character":45,"end_line":75,"end_character":56},"updated":"2018-03-01 22:15:07.000000000","message":"should be \"...not to use host...\" I think.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``pcpu_pin_set`` is set, it should be disjoint from ``vcpu_pin_set``."},{"line_number":75,"context_line":"   In this case, the operator is recommended not to host aggregation to"},{"line_number":76,"context_line":"   segregate hosts for shared and dedicated."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Scheduling and Placement"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_46d37639","line":75,"range":{"start_line":75,"start_character":45,"end_line":75,"end_character":56},"in_reply_to":"1f9dbf25_4b4cdf9d","updated":"2018-03-01 23:00:28.000000000","message":"Done","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU``s for shared vCPUs, and requests ``PCPU``s for"},{"line_number":87,"context_line":"dedicated pCPUs to placement."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The NUMATopologyFilter would continue to be the thing that selected the"},{"line_number":90,"context_line":"specific pCPUs a guest will consume."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_0b46d77d","line":87,"range":{"start_line":86,"start_character":55,"end_line":87,"end_character":29},"updated":"2018-03-01 22:15:07.000000000","message":"I don\u0027t really like this.  They\u0027re vCPUs in both cases, but their affinity and allocation ratios are different.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU``s for shared vCPUs, and requests ``PCPU``s for"},{"line_number":87,"context_line":"dedicated pCPUs to placement."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The NUMATopologyFilter would continue to be the thing that selected the"},{"line_number":90,"context_line":"specific pCPUs a guest will consume."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_26b74ad8","line":87,"range":{"start_line":86,"start_character":55,"end_line":87,"end_character":29},"in_reply_to":"1f9dbf25_0b46d77d","updated":"2018-03-01 23:00:28.000000000","message":"In that case, we need to separate the request to placement between \"give me VCPUs from NUMA node\" or \"give me VCPUs from compute host.\" and that is a bit complicated. And if you request them at the same time in the next spec like, \"show allocation candidates who has over 2 VCPUs for compute host\u0027s inventory and  over 5 VCPUs for his child\u0027s NUMA\u0027s inventory\" sounds much more difficult to me.\n\nIf you use another resource class, you don\u0027t have to ask compute node nor his NUMA node respectively, but you can ask to a whole tree. That would be much easier and simpler.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"c625baf59ae40e2542f71c0cfd0057075669802c","unresolved":false,"context_lines":[{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU``s for shared vCPUs, and requests ``PCPU``s for"},{"line_number":87,"context_line":"dedicated pCPUs to placement."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The NUMATopologyFilter would continue to be the thing that selected the"},{"line_number":90,"context_line":"specific pCPUs a guest will consume."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_26618a37","line":87,"range":{"start_line":86,"start_character":55,"end_line":87,"end_character":29},"in_reply_to":"1f9dbf25_26b74ad8","updated":"2018-03-01 23:14:30.000000000","message":"I suppose you could think of it as asking placement for a vCPU and also for a pCPU (to which we will affine another vCPU).  So I withdraw my objection.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``pcpu_pin_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":104,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":105,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":106,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":107,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":108,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_eb0a8b24","line":105,"range":{"start_line":103,"start_character":1,"end_line":105,"end_character":52},"updated":"2018-03-01 22:15:07.000000000","message":"would we want to enforce that if HT is enabled both siblings need to be in the same set?  (either destined to be used for \"shared\" or for \"dedicated\"?)","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"c625baf59ae40e2542f71c0cfd0057075669802c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``pcpu_pin_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":104,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":105,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":106,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":107,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":108,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_a6e11a9d","line":105,"range":{"start_line":103,"start_character":1,"end_line":105,"end_character":52},"in_reply_to":"1f9dbf25_262d0a43","updated":"2018-03-01 23:14:30.000000000","message":"In the \"cpu_threads_policy\u003drequire\" case, don\u0027t we basically require all of the threads of a core to be given to one VM?  If so, that would mean that all the siblings need to be in the same set.  Maybe check with sfinucan.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dfaf1874ba7f8dcaf70ca2df4c2fadf71e9ec80c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``pcpu_pin_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":104,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":105,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":106,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":107,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":108,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_3376a5a6","line":105,"range":{"start_line":103,"start_character":1,"end_line":105,"end_character":52},"in_reply_to":"1f9dbf25_a6e11a9d","updated":"2018-03-02 07:51:55.000000000","message":"Well, my opinion is that if a VM instance requests *two* threads with required policy and if a host has *three* siblings, the VM *can* be deployed to the host, even if the three siblings of the host has one shared cpu like [dedicated, dedicated, shared]. This is consistent with the current behavior, that is, the VM *can* be deployed to the host with siblings with [dedicated, dedicated, host(\u003dnot in vcpu_pin_set)]","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``pcpu_pin_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":104,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":105,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":106,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":107,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":108,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_262d0a43","line":105,"range":{"start_line":103,"start_character":1,"end_line":105,"end_character":52},"in_reply_to":"1f9dbf25_eb0a8b24","updated":"2018-03-01 23:00:28.000000000","message":"No, I wouldn\u0027t. The cpu is not used in \"cpu_threads_policy\u003disolate\" case, but it can be used in \"cpu_threads_policy\u003dprefer|require\" case. So, it should be up to users. We don\u0027t want to impose unnecessary restriction to users as possible.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":107,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":108,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. note::"},{"line_number":111,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."},{"line_number":112,"context_line":"   There is a possibility to change nova to let emulator threads float on"},{"line_number":113,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_c63b06cf","line":113,"range":{"start_line":110,"start_character":3,"end_line":113,"end_character":63},"updated":"2018-03-01 22:15:07.000000000","message":"this should go up two paragraphs, right below where we\u0027re talking about hw:emulator_threads_policy.","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":107,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":108,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. note::"},{"line_number":111,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."},{"line_number":112,"context_line":"   There is a possibility to change nova to let emulator threads float on"},{"line_number":113,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_265f4ae3","line":113,"range":{"start_line":110,"start_character":3,"end_line":113,"end_character":63},"in_reply_to":"1f9dbf25_c63b06cf","updated":"2018-03-01 23:00:28.000000000","message":"Done","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            siblings\u003d[set([12]), set([13]), set([14]), set([15])],"},{"line_number":143,"context_line":"            pinned_cpus\u003dset([]))"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"First, let\u0027s build a VM with the following flavor with no NFV feature:"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_464db670","line":145,"range":{"start_line":145,"start_character":55,"end_line":145,"end_character":69},"updated":"2018-03-01 22:15:07.000000000","message":"let\u0027s keep NFV out of this.  maybe just use \"special features\"","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"4edb84f1dfd0d420e24312191beaff013f27fb8c","unresolved":false,"context_lines":[{"line_number":142,"context_line":"            siblings\u003d[set([12]), set([13]), set([14]), set([15])],"},{"line_number":143,"context_line":"            pinned_cpus\u003dset([]))"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"First, let\u0027s build a VM with the following flavor with no NFV feature:"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_666552b5","line":145,"range":{"start_line":145,"start_character":55,"end_line":145,"end_character":69},"in_reply_to":"1f9dbf25_464db670","updated":"2018-03-01 23:00:28.000000000","message":"Done","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d2bc90774b33bd6993f5a1974b5de9ea92e22565","unresolved":false,"context_lines":[{"line_number":250,"context_line":"Upgrade impact"},{"line_number":251,"context_line":"--------------"},{"line_number":252,"context_line":""},{"line_number":253,"context_line":"The default value of ``pcpu_pin_set`` should be the same as ``vcpu_pin_set``"},{"line_number":254,"context_line":"to preserve version compatibility and not to get upgrade impact."},{"line_number":255,"context_line":"Operators that are using host aggregates to segregate pinned and non-pinned"},{"line_number":256,"context_line":"instances can continue to use that segregation if they wish."},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1f9dbf25_c6aea6e6","line":254,"range":{"start_line":253,"start_character":0,"end_line":254,"end_character":64},"updated":"2018-03-01 22:15:07.000000000","message":"I think it would be more accurate to say that the default value should be a magic value that tells nova to internally set the variable the same as \"vcpu_pin_set\".","commit_id":"6c9a7219ceb5b991b358de6005b6ef29476f551e"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":29,"context_line":"   ``vcpu_pin_set``. nova won\u0027t pick pCPUs that are already pinned to other"},{"line_number":30,"context_line":"   VMs."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"However, if these two VMs with different policies are colocated on the same"},{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_2b729c12","line":34,"range":{"start_line":32,"start_character":9,"end_line":34,"end_character":41},"updated":"2018-03-03 15:52:24.000000000","message":"It\u0027s a bit of an awkward sentence - how about:\n\n\"If VMs with different pinning policies are colocated on the same host, the ``shared`` VM\u0027s vCPUs can float on pCPUs pinned to the ``dedicated`` VM.\n\nAlso, we should explicitly spell out why this is bad.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_4b56085f","line":36,"range":{"start_line":36,"start_character":39,"end_line":36,"end_character":42},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"create\"?","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_ab5f8c70","line":36,"range":{"start_line":36,"start_character":5,"end_line":36,"end_character":9},"updated":"2018-03-03 15:52:24.000000000","message":"nit: remove this","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_2b4b7cb0","line":37,"range":{"start_line":37,"start_character":40,"end_line":37,"end_character":74},"updated":"2018-03-03 15:52:24.000000000","message":"I\u0027d start a new sentence here, and also mention the less efficient resource utilisation that this causes. So something like \"This results in lower flexibility and inefficient resource usage.\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"host, the VM with shared cpu-policy can float on pCPUs that are pinned to the"},{"line_number":34,"context_line":"vCPU on the VM with dedicated cpu-policy."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"This fact forces operators to manually set aggregates to separate hosts for"},{"line_number":37,"context_line":"shared and dedicated before deployment, which results in lower flexibility."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_0b50005d","line":37,"range":{"start_line":36,"start_character":54,"end_line":37,"end_character":38},"updated":"2018-03-03 15:52:24.000000000","message":"nit: awkward English - how about: \"to separate ``shared`` hosts from ``dedicated`` hosts.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"colocate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_6bd664c6","line":43,"range":{"start_line":43,"start_character":41,"end_line":43,"end_character":56},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"create aggregates\"?","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":40,"context_line":"Use Cases"},{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"colocate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_0be560a8","line":43,"range":{"start_line":43,"start_character":58,"end_line":43,"end_character":61},"updated":"2018-03-03 15:52:24.000000000","message":"nit: remove this","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":41,"context_line":"---------"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":44,"context_line":"colocate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_cbf0d86a","line":44,"range":{"start_line":44,"start_character":9,"end_line":44,"end_character":53},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"low performance and high performance VMs\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"colocate VMs for high performance and low performance on the same hosts for"},{"line_number":45,"context_line":"better utilization of compute resources."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Furthermore, this spec enables developers to add another spec [1]_ that"},{"line_number":48,"context_line":"enables instances that have vCPUs that are pinned to specific pCPUs and"},{"line_number":49,"context_line":"vCPUs that are not pinned to specific pCPUs."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_4b8928c8","line":49,"range":{"start_line":47,"start_character":0,"end_line":49,"end_character":44},"updated":"2018-03-03 15:52:24.000000000","message":"I\u0027d actually remove this? It\u0027s not a use case in the proper sense - and if the other spec depends on this one it should show up through the patch order/dependencies in Gerrit.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":62,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":63,"context_line":"``vcpu_dedicated_set``."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"   If ``vcpu_dedicated_set`` is not set, it is set to the same set as"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_cbbe9864","line":64,"updated":"2018-03-03 15:52:24.000000000","message":"What about pCPUs that are in neither? They go to the host, right? Should probably mention that here, and mention that this is existing behaviour.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"   If ``vcpu_dedicated_set`` is not set, it is set to the same set as"},{"line_number":68,"context_line":"   ``vcpu_pin_set``. This is to keep the compatibility from Queens."},{"line_number":69,"context_line":"   In this case, the operator should continue to use host aggregation to"},{"line_number":70,"context_line":"   segregate hosts for VMs with ``hw:cpu_policy\u003dshared`` and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_4bb28896","line":67,"range":{"start_line":67,"start_character":41,"end_line":67,"end_character":54},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"it defaults to\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":".. note::"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"   If ``vcpu_dedicated_set`` is not set, it is set to the same set as"},{"line_number":68,"context_line":"   ``vcpu_pin_set``. This is to keep the compatibility from Queens."},{"line_number":69,"context_line":"   In this case, the operator should continue to use host aggregation to"},{"line_number":70,"context_line":"   segregate hosts for VMs with ``hw:cpu_policy\u003dshared`` and"},{"line_number":71,"context_line":"   hosts for VMs with ``hw:cpu_policy\u003ddedicated``. See `Alternatives`_ and"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_8b6df005","line":68,"range":{"start_line":67,"start_character":3,"end_line":68,"end_character":67},"updated":"2018-03-03 15:52:24.000000000","message":"I had to think twice about this. By making ``vcpu_dedicated_set`` the same as ``vcpu_pin_set``, we allow instances without pinning to float over pinned pCPUs - which is *wrong*, but is what we currently have, so that\u0027s why it\u0027s the default. So I\u0027d suggest being more explicit here.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":67,"context_line":"   If ``vcpu_dedicated_set`` is not set, it is set to the same set as"},{"line_number":68,"context_line":"   ``vcpu_pin_set``. This is to keep the compatibility from Queens."},{"line_number":69,"context_line":"   In this case, the operator should continue to use host aggregation to"},{"line_number":70,"context_line":"   segregate hosts for VMs with ``hw:cpu_policy\u003dshared`` and"},{"line_number":71,"context_line":"   hosts for VMs with ``hw:cpu_policy\u003ddedicated``. See `Alternatives`_ and"},{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``vcpu_dedicated_set`` is set, it must be disjoint from"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_0b81e08f","line":71,"range":{"start_line":70,"start_character":13,"end_line":71,"end_character":50},"updated":"2018-03-03 15:52:24.000000000","message":"nit: how about \"``shared`` hosts from ``dedicated`` hosts.\"?","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"   ``vcpu_pin_set``. This is to keep the compatibility from Queens."},{"line_number":69,"context_line":"   In this case, the operator should continue to use host aggregation to"},{"line_number":70,"context_line":"   segregate hosts for VMs with ``hw:cpu_policy\u003dshared`` and"},{"line_number":71,"context_line":"   hosts for VMs with ``hw:cpu_policy\u003ddedicated``. See `Alternatives`_ and"},{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``vcpu_dedicated_set`` is set, it must be disjoint from"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_cb4c58a0","line":71,"range":{"start_line":71,"start_character":54,"end_line":71,"end_character":55},"updated":"2018-03-03 15:52:24.000000000","message":"nit: missing \"the\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":72,"context_line":"   `Upgrade impact`_ section for details."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"   If ``vcpu_dedicated_set`` is set, it must be disjoint from"},{"line_number":75,"context_line":"   ``vcpu_pin_set``. In this case, the operator is recommended not to use"},{"line_number":76,"context_line":"   host aggregation to segregate hosts for shared and dedicated."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Scheduling and Placement"},{"line_number":79,"context_line":"------------------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_ab49cc8b","line":76,"range":{"start_line":75,"start_character":35,"end_line":76,"end_character":63},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"it is not necessary to use host aggregates.\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":78,"context_line":"Scheduling and Placement"},{"line_number":79,"context_line":"------------------------"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The virt driver reports the host\u0027s dedicated pCPUs to placement as NUMA"},{"line_number":82,"context_line":"resource provider\u0027s inventories of ``PCPU`` resource class."},{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_ab3eacd7","line":82,"range":{"start_line":81,"start_character":64,"end_line":82,"end_character":59},"updated":"2018-03-03 15:52:24.000000000","message":"nit: Can we reformulate this and get rid of the apostrophe - so \"as inventories of the ``PCPU`` resource class in the NUMA resource provider.\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The virt driver reports the host\u0027s dedicated pCPUs to placement as NUMA"},{"line_number":82,"context_line":"resource provider\u0027s inventories of ``PCPU`` resource class."},{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU`` for shared vCPUs, and requests ``PCPU`` for"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_eb34b4fd","line":83,"range":{"start_line":83,"start_character":55,"end_line":83,"end_character":61},"updated":"2018-03-03 15:52:24.000000000","message":"Should or must? \"Should\" implies that it could be set to something other than 1.0 if desired.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"The virt driver reports the host\u0027s dedicated pCPUs to placement as NUMA"},{"line_number":82,"context_line":"resource provider\u0027s inventories of ``PCPU`` resource class."},{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU`` for shared vCPUs, and requests ``PCPU`` for"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_8b3bb0e9","line":83,"range":{"start_line":83,"start_character":62,"end_line":83,"end_character":71},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"always be\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":83,"context_line":"By definition, the allocation ratio of the inventories should be always"},{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU`` for shared vCPUs, and requests ``PCPU`` for"},{"line_number":87,"context_line":"dedicated pCPUs to placement."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The NUMATopologyFilter would continue to be the thing that selected the"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_263173ed","line":86,"range":{"start_line":86,"start_character":39,"end_line":86,"end_character":53},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \" and \"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":84,"context_line":"``1.0``."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Nova requests ``VCPU`` for shared vCPUs, and requests ``PCPU`` for"},{"line_number":87,"context_line":"dedicated pCPUs to placement."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The NUMATopologyFilter would continue to be the thing that selected the"},{"line_number":90,"context_line":"specific pCPUs a guest will consume."}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_06b9d72c","line":87,"range":{"start_line":87,"start_character":16,"end_line":87,"end_character":28},"updated":"2018-03-03 15:52:24.000000000","message":"nit: I don\u0027t like the \"requests to placement\" wording, but I have no better idea, and I\u0027ve already smothered you in nits, so... :)","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Nova requests ``VCPU`` for shared vCPUs, and requests ``PCPU`` for"},{"line_number":87,"context_line":"dedicated pCPUs to placement."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The NUMATopologyFilter would continue to be the thing that selected the"},{"line_number":90,"context_line":"specific pCPUs a guest will consume."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Impact on other options"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_e6870b61","line":89,"range":{"start_line":89,"start_character":23,"end_line":89,"end_character":67},"updated":"2018-03-03 15:52:24.000000000","message":"nit: \"will continue to select\"","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"44d4c1980ddf3b3834960dbb44870a8d034f8eb4","unresolved":false,"context_lines":[{"line_number":240,"context_line":"Other deployer impact"},{"line_number":241,"context_line":"---------------------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"N/A"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Developer impact"},{"line_number":246,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f9dbf25_663c5bbf","line":243,"updated":"2018-03-03 15:52:24.000000000","message":"There are a couple of edge cases that I think we need to spell out in this spec (if not in this section then somewhere else):\n\nHow do we handle the case of an operator misconfiguring ``vcpu_dedicated_set`` and setting it to something that overlaps ``vcpu_pin_set``? Do we refuse to start with an error message?\n\nHow do we handle ``vcpu_dedicated_set`` being changed \"underneath\" an instance - so an operator changing ``vcpu_dedicated_set``, restarting nova-compute, but forgetting that instances were pinned to those CPUs? Again refuse to start with an error message?","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7eb756b37a2e037c4fc1a18af1cbcceececf4fb1","unresolved":false,"context_lines":[{"line_number":240,"context_line":"Other deployer impact"},{"line_number":241,"context_line":"---------------------"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"N/A"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Developer impact"},{"line_number":246,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ff6b8bd7_173b80d1","line":243,"in_reply_to":"1f9dbf25_663c5bbf","updated":"2018-03-06 06:55:23.000000000","message":"Exactly. And it was the agreement in the PTG, Dublin.","commit_id":"c6147cd5958707421a239c4384657ddd466bc247"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Impact on other options"},{"line_number":93,"context_line":"-----------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"With this spec, no additional change is proposed on the options that need"},{"line_number":96,"context_line":"``hw:cpu_policy\u003ddedicated``."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_fc8bae64","line":95,"range":{"start_line":95,"start_character":56,"end_line":95,"end_character":63},"updated":"2018-03-14 16:22:54.000000000","message":"Could we explicitly specify what those options are?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Impact on other options"},{"line_number":93,"context_line":"-----------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"With this spec, no additional change is proposed on the options that need"},{"line_number":96,"context_line":"``hw:cpu_policy\u003ddedicated``."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_7c80fe46","line":95,"range":{"start_line":95,"start_character":40,"end_line":95,"end_character":51},"updated":"2018-03-14 16:22:54.000000000","message":"nit: \"needed for\"","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":92,"context_line":"Impact on other options"},{"line_number":93,"context_line":"-----------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"With this spec, no additional change is proposed on the options that need"},{"line_number":96,"context_line":"``hw:cpu_policy\u003ddedicated``."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_bc8a1667","line":95,"range":{"start_line":95,"start_character":0,"end_line":95,"end_character":14},"updated":"2018-03-14 16:22:54.000000000","message":"nit: remove this","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":96,"context_line":"``hw:cpu_policy\u003ddedicated``."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_7cf55eec","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":47},"updated":"2018-03-14 16:22:54.000000000","message":"This is existing behaviour, right?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":96,"context_line":"``hw:cpu_policy\u003ddedicated``."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_c6f608d8","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":47},"in_reply_to":"df7087c5_7cf55eec","updated":"2018-03-15 04:20:56.000000000","message":"Right.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3c5502309f589a20c5cc7f1e728248261bfe4248","unresolved":false,"context_lines":[{"line_number":96,"context_line":"``hw:cpu_policy\u003ddedicated``."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_b41f8606","line":99,"range":{"start_line":99,"start_character":0,"end_line":99,"end_character":47},"in_reply_to":"df7087c5_7cf55eec","updated":"2018-03-15 04:55:36.000000000","message":"Yes.  (With the caveat that if some vCPUs are marked as \"realtime\" then the emulator threads will be affined with the non-realtime vCPUs.)","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_9cd39260","line":100,"updated":"2018-03-14 16:22:54.000000000","message":"nit: newline here, please :)","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_66013caf","line":100,"in_reply_to":"df7087c5_9cd39260","updated":"2018-03-15 04:20:56.000000000","message":"Done","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. note::"},{"line_number":104,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_bc0bf6d3","line":101,"range":{"start_line":100,"start_character":48,"end_line":101,"end_character":60},"updated":"2018-03-14 16:22:54.000000000","message":"This is a new thing, right? How do we currently pick the pCPU on which the emulator threads are isolated?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"For VMs with ``hw:emulator_threads_policy\u003dshare``, their emulator threads"},{"line_number":99,"context_line":"float over pCPUs where their vCPUs are running."},{"line_number":100,"context_line":"VMs with ``hw:emulator_threads_policy\u003disolate`` pick specific dedicated"},{"line_number":101,"context_line":"pCPUs from ``vcpu_dedicated_set`` for their emulator threads."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. note::"},{"line_number":104,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_2b922d4d","line":101,"range":{"start_line":100,"start_character":48,"end_line":101,"end_character":60},"in_reply_to":"df7087c5_bc0bf6d3","updated":"2018-03-15 04:20:56.000000000","message":"That is now picked from vcpu_pin_set as well as dedicated pCPUs, so if we change code to pick dedicated pCPUs from vcpu_dedicated_set then the emulator threads follow that behavior without doing any special treatment.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":103,"context_line":".. note::"},{"line_number":104,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."},{"line_number":105,"context_line":"   There is a possibility to change nova to let emulator threads float on"},{"line_number":106,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_bce3f6d8","line":106,"range":{"start_line":106,"start_character":33,"end_line":106,"end_character":49},"updated":"2018-03-14 16:22:54.000000000","message":"Well... If I\u0027ve understood the previous paragraph correctly, we\u0027l still have to change how pCPUs are picked for emulator threads. But I guess let\u0027s start by making it work, then we can make it configurable.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":103,"context_line":".. note::"},{"line_number":104,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."},{"line_number":105,"context_line":"   There is a possibility to change nova to let emulator threads float on"},{"line_number":106,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_cb929157","line":106,"range":{"start_line":106,"start_character":33,"end_line":106,"end_character":49},"in_reply_to":"df7087c5_bce3f6d8","updated":"2018-03-15 04:20:56.000000000","message":"That is being discussed in another spec. https://review.openstack.org/#/c/511188/\n\nI don\u0027t think it should be completely configurable. What NFV operators want to do here is just to segregate the emulator threads from fast path packet processing threads that are pinned to dedicated pCPUs.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":106,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_1c6ea22e","line":109,"range":{"start_line":109,"start_character":40,"end_line":109,"end_character":46},"updated":"2018-03-14 16:22:54.000000000","message":"\u0027picked\u0027 meaning \u0027will receive a pinned vCPU\u0027, right?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":106,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_66d93c20","line":109,"range":{"start_line":109,"start_character":40,"end_line":109,"end_character":46},"in_reply_to":"df7087c5_1c6ea22e","updated":"2018-03-15 04:20:56.000000000","message":"Right.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_3c260617","line":110,"range":{"start_line":110,"start_character":19,"end_line":110,"end_character":51},"updated":"2018-03-14 16:22:54.000000000","message":"If the sibling isn\u0027t used, why not pin a vCPU to the other sibling?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_0b02c96f","line":110,"range":{"start_line":110,"start_character":19,"end_line":110,"end_character":51},"in_reply_to":"df7087c5_3c260617","updated":"2018-03-15 04:20:56.000000000","message":"For cpu_threads_policy\u003disolate, we don\u0027t want any other threads running on that \"physical core\" to avoid cache pollution and to get the maximum performance.\n\nFor cpu_threads_policy\u003drequire, the siblings of vCPUs need to be the siblings of pCPUs as well.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_dc734a15","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":6},"updated":"2018-03-14 16:22:54.000000000","message":"Same question as L110.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_bf7c4883","line":113,"range":{"start_line":111,"start_character":48,"end_line":113,"end_character":59},"updated":"2018-03-14 16:22:54.000000000","message":"This sentence is just confusing - a pCPU can receive a pinned vCPU if it has enough siblings to receive the other vCPUs, regardless of whether... what exactly?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU(lcore) who"},{"line_number":109,"context_line":"has a shared pCPU(lcore) sibling is not picked regardless of whether the"},{"line_number":110,"context_line":"shared pCPU(lcore) sibling is now being used or not."},{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_06ade099","line":113,"range":{"start_line":111,"start_character":48,"end_line":113,"end_character":59},"in_reply_to":"df7087c5_bf7c4883","updated":"2018-03-15 04:20:56.000000000","message":"Sounds good to me! Reworded.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_bfa1a8fa","line":114,"updated":"2018-03-14 16:22:54.000000000","message":"What do we do if we have a require cpu_policy, but the cpu_dedicated_set only has 1 of every sibling pair? So for example, two cores with two hyperthreads each: [1 2] [3 4] and we set cpu_dedicated_set to \"1, 3\"? No flavour with cpu_threads_policy\u003drequired can be scheduled to that host.\n\nI feel like the code to work all this out will become very messy, very fast.\n\nShould we enforce that if a hyperthread is in the dedicated set, all of its siblings must be as well? This would essentially turn the dedicated set from a set of logical pCPUs to a set of physical cores, regardless of whether they have hyperthreads or not. That might make the accounting easier?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_c6712878","line":114,"in_reply_to":"df7087c5_bfa1a8fa","updated":"2018-03-15 04:20:56.000000000","message":"\u003e No flavour with cpu_threads_policy\u003drequired can be scheduled to that host.\n\nExactly.\n\n\u003e I feel like the code to work all this out will become very messy, very fast.\n\nIt might be a good prediction. But the fact is that it\u0027s already working. \nhttps://github.com/openstack/nova/blob/master/nova/virt/hardware.py#L636\n\nI\u0027m just saying I\u0027m not going to change the current behavior. I\u0027m proposing nothing here.\n\n\u003e Should we enforce that if a hyperthread is in the dedicated set, all of its siblings must be as well?\n\nWell, at least that should be another spec. As I already mentioned, I don\u0027t want to add any tasks within this spec. And IMO, we\u0027d like to avoid to restrict users for configuration as much as possible.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3c5502309f589a20c5cc7f1e728248261bfe4248","unresolved":false,"context_lines":[{"line_number":111,"context_line":"For VMs with ``hw:cpu_threads_policy\u003drequire``, a dedicated pCPU(lcore) can be"},{"line_number":112,"context_line":"picked if it has enough dedicated pCPUs(lcores) for its siblings regardless of"},{"line_number":113,"context_line":"whether it has shared pCPUs(lcore) for its siblings or not."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_3a0838d8","line":114,"in_reply_to":"df7087c5_c6712878","updated":"2018-03-15 04:55:36.000000000","message":"Personally I think it would be reasonable to ensure that all HT siblings are either for \"shared\" or for \"dedicated\" vCPUs, but you\u0027re right that such validation could easily be added later as a standalone piece.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":121,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_df6a5c7f","line":118,"range":{"start_line":118,"start_character":29,"end_line":118,"end_character":52},"updated":"2018-03-14 16:22:54.000000000","message":"Based on my previous comment, the really hairy case is *with* hyperthreading and cpu thread policy require, so maybe walking through an example for that case would be useful.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"Example"},{"line_number":116,"context_line":"-------"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":121,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_460bd8d4","line":118,"range":{"start_line":118,"start_character":29,"end_line":118,"end_character":52},"in_reply_to":"df7087c5_df6a5c7f","updated":"2018-03-15 04:20:56.000000000","message":"Ack. will do.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":259,"context_line":"--------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"``vcpu_dedicated_set`` defaults to the same as ``vcpu_pin_set`` to preserve"},{"line_number":262,"context_line":"version compatibility and not to get upgrade impact. Operators that are using"},{"line_number":263,"context_line":"host aggregates to segregate pinned and non-pinned instances can continue to"},{"line_number":264,"context_line":"use that segregation if they wish."},{"line_number":265,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_ffeac0d5","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":7},"updated":"2018-03-14 16:22:54.000000000","message":"nit: \"backwards\"","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":259,"context_line":"--------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"``vcpu_dedicated_set`` defaults to the same as ``vcpu_pin_set`` to preserve"},{"line_number":262,"context_line":"version compatibility and not to get upgrade impact. Operators that are using"},{"line_number":263,"context_line":"host aggregates to segregate pinned and non-pinned instances can continue to"},{"line_number":264,"context_line":"use that segregation if they wish."},{"line_number":265,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_1fd1b423","line":262,"range":{"start_line":262,"start_character":26,"end_line":262,"end_character":36},"updated":"2018-03-14 16:22:54.000000000","message":"nit: \"to avoid\"","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":259,"context_line":"--------------"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"``vcpu_dedicated_set`` defaults to the same as ``vcpu_pin_set`` to preserve"},{"line_number":262,"context_line":"version compatibility and not to get upgrade impact. Operators that are using"},{"line_number":263,"context_line":"host aggregates to segregate pinned and non-pinned instances can continue to"},{"line_number":264,"context_line":"use that segregation if they wish."},{"line_number":265,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_a6fbd4be","line":262,"range":{"start_line":262,"start_character":0,"end_line":262,"end_character":7},"in_reply_to":"df7087c5_ffeac0d5","updated":"2018-03-15 04:20:56.000000000","message":"Done","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"46ce41a252e4c32fc83d896718c6ea86238ec432","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"  * Add ``vcpu_dedicated_set`` to the nova configuration."},{"line_number":284,"context_line":"  * Add ``cpuset_dedicated`` field in host\u0027s ``NUMACell`` object."},{"line_number":285,"context_line":"  * Rename ``NUMA_CORE`` standard class to ``PCPU`` in placement [1]_."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"2. Add support for the libvert driver"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_ffa640ab","line":285,"updated":"2018-03-14 16:22:54.000000000","message":"Wait, what? I thought a NUMA core would be the RP, with an inventory of pCPUS, and we distinguish the dedicated set from the pinned set with traits?","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":282,"context_line":""},{"line_number":283,"context_line":"  * Add ``vcpu_dedicated_set`` to the nova configuration."},{"line_number":284,"context_line":"  * Add ``cpuset_dedicated`` field in host\u0027s ``NUMACell`` object."},{"line_number":285,"context_line":"  * Rename ``NUMA_CORE`` standard class to ``PCPU`` in placement [1]_."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"2. Add support for the libvert driver"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_069ba065","line":285,"in_reply_to":"df7087c5_ffa640ab","updated":"2018-03-15 04:20:56.000000000","message":"I don\u0027t think NUMA core would be a RP. NUMA core is a resource rather than a provider. That is agreed in the PTG. See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128041.html","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"ce1b0151b260176b50f5d04ac0e2bd5a633cf467","unresolved":false,"context_lines":[{"line_number":300,"context_line":"Dependencies"},{"line_number":301,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"This spec depends on the spec \"Resource Class Affinity\" [1]_ being proposed"},{"line_number":304,"context_line":"in Rocky."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Testing"},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_3f54b852","line":304,"range":{"start_line":303,"start_character":0,"end_line":304,"end_character":9},"updated":"2018-03-14 16:25:16.000000000","message":"That\u0027s been abandoned. Now what? :)","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3c5502309f589a20c5cc7f1e728248261bfe4248","unresolved":false,"context_lines":[{"line_number":300,"context_line":"Dependencies"},{"line_number":301,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"This spec depends on the spec \"Resource Class Affinity\" [1]_ being proposed"},{"line_number":304,"context_line":"in Rocky."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Testing"},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_d4979a39","line":304,"range":{"start_line":303,"start_character":0,"end_line":304,"end_character":9},"in_reply_to":"df7087c5_3f54b852","updated":"2018-03-15 04:55:36.000000000","message":"Sylvain Bauzas has proposed https://review.openstack.org/#/c/552924/","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"17b86a0c603e28d6a82a0662914a38a689f46a7d","unresolved":false,"context_lines":[{"line_number":300,"context_line":"Dependencies"},{"line_number":301,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"This spec depends on the spec \"Resource Class Affinity\" [1]_ being proposed"},{"line_number":304,"context_line":"in Rocky."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Testing"},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_66c4dc40","line":304,"range":{"start_line":303,"start_character":0,"end_line":304,"end_character":9},"in_reply_to":"df7087c5_3f54b852","updated":"2018-03-15 04:20:56.000000000","message":"This should be reopened to describe how we report NUMA resource provider form the virt driver. Wait a moment, please.","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"ed65f62d7707e0424ba7b94014da412bda01524f","unresolved":false,"context_lines":[{"line_number":300,"context_line":"Dependencies"},{"line_number":301,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"This spec depends on the spec \"Resource Class Affinity\" [1]_ being proposed"},{"line_number":304,"context_line":"in Rocky."},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"Testing"},{"line_number":307,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":18,"id":"df7087c5_443aeb98","line":304,"range":{"start_line":303,"start_character":0,"end_line":304,"end_character":9},"in_reply_to":"df7087c5_d4979a39","updated":"2018-03-15 08:51:35.000000000","message":"Done. Thanks!","commit_id":"804f3fc1a385bfd7e0c8eba2723cc3a677240e25"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":53,"context_line":"------------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on compute"},{"line_number":56,"context_line":"nodes. ``vcpu_dedicated_set`` must be a disjoint set from ``vcpu_pin_set``."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":59,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_e278ce90","line":56,"range":{"start_line":56,"start_character":60,"end_line":56,"end_character":72},"updated":"2018-03-15 10:49:44.000000000","message":"At this point, I\u0027d really like to rename this option since \"pin\" is far to close to \"pinned\". Not sure if that\u0027s worth the effort though.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3f91fb3ac9a6f326079c39bd221afa675c9600c7","unresolved":false,"context_lines":[{"line_number":53,"context_line":"------------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on compute"},{"line_number":56,"context_line":"nodes. ``vcpu_dedicated_set`` must be a disjoint set from ``vcpu_pin_set``."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":59,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_f8529666","line":56,"range":{"start_line":56,"start_character":60,"end_line":56,"end_character":72},"in_reply_to":"df7087c5_48bf59a9","updated":"2018-03-16 16:54:52.000000000","message":"For your point (a), while technically you are correct I think when people talk about \"pinned\" vCPUs they are using it as shorthand for a one-to-one relationship between vCPU and pCPU.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":53,"context_line":"------------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"We introduce a new configuration option ``vcpu_dedicated_set`` on compute"},{"line_number":56,"context_line":"nodes. ``vcpu_dedicated_set`` must be a disjoint set from ``vcpu_pin_set``."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"VMs with ``hw:cpu_policy\u003dshared`` are placed on pCPUs in ``vcpu_pin_set``."},{"line_number":59,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_48bf59a9","line":56,"range":{"start_line":56,"start_character":60,"end_line":56,"end_character":72},"in_reply_to":"df7087c5_e278ce90","updated":"2018-03-16 04:35:24.000000000","message":"Well, I didn\u0027t touch it because...\n\na) Actually shared VMs are \"pinned\" to the \"range\" of this cpu set. So I don\u0027t like the manner today that everyone in the community take \"dedicated cpus\" as the same thing as \"pinned cpus\". I\u0027d like to define that they are different. It\u0027s just a verbal requirement, though.\n\nb) Not sure if that\u0027s worth the effort against the cost to confuse existing deployers as you mentioned.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":59,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicated_set``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The pCPUs in neither ``vcpu_pin_set`` nor ``vcpu_dedicated_set`` are never"},{"line_number":63,"context_line":"assigned to VMs. They can be used in the host. This is consistent with the"},{"line_number":64,"context_line":"existing behavior."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_e2ebee0f","line":62,"range":{"start_line":62,"start_character":10,"end_line":62,"end_character":20},"updated":"2018-03-15 10:49:44.000000000","message":"that are not in the union of\n\n(I forget what the opposite of the union is for set theory)","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":59,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicated_set``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The pCPUs in neither ``vcpu_pin_set`` nor ``vcpu_dedicated_set`` are never"},{"line_number":63,"context_line":"assigned to VMs. They can be used in the host. This is consistent with the"},{"line_number":64,"context_line":"existing behavior."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_a8fe3568","line":62,"range":{"start_line":62,"start_character":10,"end_line":62,"end_character":20},"in_reply_to":"df7087c5_e2ebee0f","updated":"2018-03-16 04:35:24.000000000","message":"Done","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3f91fb3ac9a6f326079c39bd221afa675c9600c7","unresolved":false,"context_lines":[{"line_number":59,"context_line":"VMs with ``hw:cpu_policy\u003ddedicated`` picks their pCPUs from"},{"line_number":60,"context_line":"``vcpu_dedicated_set``."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The pCPUs in neither ``vcpu_pin_set`` nor ``vcpu_dedicated_set`` are never"},{"line_number":63,"context_line":"assigned to VMs. They can be used in the host. This is consistent with the"},{"line_number":64,"context_line":"existing behavior."},{"line_number":65,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_b88bbebd","line":62,"range":{"start_line":62,"start_character":10,"end_line":62,"end_character":20},"in_reply_to":"df7087c5_e2ebee0f","updated":"2018-03-16 16:54:52.000000000","message":"I think it\u0027s the complement, but your wording is clearer than \"the complement of the union of...\"","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":100,"context_line":"are pinned to specific dedicated pCPUs from ``vcpu_dedicated_set`` instead of"},{"line_number":101,"context_line":"``vcpu_pin_set``."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":".. note::"},{"line_number":104,"context_line":"   Because this spec enables us to bring some shared pCPUs to every host."},{"line_number":105,"context_line":"   There is a possibility to change nova to let emulator threads float on"},{"line_number":106,"context_line":"   the shared pCPUs. But this is out of the scope of this spec."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"For VMs with ``hw:cpu_threads_policy\u003disolate``, a dedicated pCPU can\u0027t receive"},{"line_number":109,"context_line":"a pinned vCPU if the pCPU has a sibling for shared vCPUs."}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_62c83ea5","line":106,"range":{"start_line":103,"start_character":0,"end_line":106,"end_character":63},"updated":"2018-03-15 10:49:44.000000000","message":"I was reading the previous paragraph and was about to bring this up. Good to see you beat me to it. I guess sahid\u0027s spec should cover this.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Example"},{"line_number":121,"context_line":"-------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":126,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_424e5a38","line":123,"range":{"start_line":123,"start_character":37,"end_line":123,"end_character":52},"updated":"2018-03-15 10:49:44.000000000","message":"hyperthreading (or SMP, if you want to be generic)","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Example"},{"line_number":121,"context_line":"-------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":126,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_a215e04a","line":123,"range":{"start_line":123,"start_character":37,"end_line":123,"end_character":52},"in_reply_to":"df7087c5_424e5a38","updated":"2018-03-16 04:35:24.000000000","message":"Done. Thanks.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3f91fb3ac9a6f326079c39bd221afa675c9600c7","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Example"},{"line_number":121,"context_line":"-------"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"The compute node has 16 CPUs without hyper threading:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"* NUMA node0 CPU(s): 0-7"},{"line_number":126,"context_line":"* NUMA node1 CPU(s): 8-15"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_18b66a8b","line":123,"range":{"start_line":123,"start_character":37,"end_line":123,"end_character":52},"in_reply_to":"df7087c5_424e5a38","updated":"2018-03-16 16:54:52.000000000","message":"Isn\u0027t it SMT?","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":".. code::"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":133,"context_line":"   vcpu_dedicated_set \u003d 4-7, 12-15"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"then the host\u0027s NUMACell data model would be like this:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_226c869a","line":132,"range":{"start_line":132,"start_character":22,"end_line":132,"end_character":23},"updated":"2018-03-15 10:49:44.000000000","message":"nit: Are you allowed spaces in this option?","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":".. code::"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":133,"context_line":"   vcpu_dedicated_set \u003d 4-7, 12-15"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"then the host\u0027s NUMACell data model would be like this:"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_5607e918","line":132,"range":{"start_line":132,"start_character":22,"end_line":132,"end_character":23},"in_reply_to":"df7087c5_226c869a","updated":"2018-03-16 04:35:24.000000000","message":"Done","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":132,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":133,"context_line":"   vcpu_dedicated_set \u003d 4-7, 12-15"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code::"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_020b82d5","line":135,"range":{"start_line":135,"start_character":16,"end_line":135,"end_character":24},"updated":"2018-03-15 10:49:44.000000000","message":"``NUMACell``","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":132,"context_line":"   vcpu_pin_set \u003d 1-3, 9-11"},{"line_number":133,"context_line":"   vcpu_dedicated_set \u003d 4-7, 12-15"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"then the host\u0027s NUMACell data model would be like this:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code::"},{"line_number":138,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_1615f13f","line":135,"range":{"start_line":135,"start_character":16,"end_line":135,"end_character":24},"in_reply_to":"df7087c5_020b82d5","updated":"2018-03-16 04:35:24.000000000","message":"Done","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"The guest\u0027s vCPUs are expected to float on all the pCPUs in ``vcpu_pin_set``."},{"line_number":155,"context_line":"The result of the VM xml configuration would be like this:"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":".. code::"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    \u003cvcpu placement\u003d\u0027static\u0027 cpuset\u003d\"1-3, 9-11\"\u003e4\u003c/vcpu\u003e"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Second, let\u0027s build a VM with the following flavor with a NUMA node:"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_c29a6a60","line":159,"range":{"start_line":154,"start_character":0,"end_line":159,"end_character":56},"updated":"2018-03-15 10:49:44.000000000","message":"Hmm, I thought we were still constrained to a single NUMA node. However, my dual-socket server died yesterday and I can\u0027t validate this. Could you confirm?","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3f91fb3ac9a6f326079c39bd221afa675c9600c7","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"The guest\u0027s vCPUs are expected to float on all the pCPUs in ``vcpu_pin_set``."},{"line_number":155,"context_line":"The result of the VM xml configuration would be like this:"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":".. code::"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    \u003cvcpu placement\u003d\u0027static\u0027 cpuset\u003d\"1-3, 9-11\"\u003e4\u003c/vcpu\u003e"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Second, let\u0027s build a VM with the following flavor with a NUMA node:"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_18442a73","line":159,"range":{"start_line":154,"start_character":0,"end_line":159,"end_character":56},"in_reply_to":"df7087c5_c29a6a60","updated":"2018-03-16 16:54:52.000000000","message":"I think we were for a while, then switched it back.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":151,"context_line":""},{"line_number":152,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"The guest\u0027s vCPUs are expected to float on all the pCPUs in ``vcpu_pin_set``."},{"line_number":155,"context_line":"The result of the VM xml configuration would be like this:"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":".. code::"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    \u003cvcpu placement\u003d\u0027static\u0027 cpuset\u003d\"1-3, 9-11\"\u003e4\u003c/vcpu\u003e"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Second, let\u0027s build a VM with the following flavor with a NUMA node:"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_022daca6","line":159,"range":{"start_line":154,"start_character":0,"end_line":159,"end_character":56},"in_reply_to":"df7087c5_c29a6a60","updated":"2018-03-16 04:35:24.000000000","message":"I\u0027m sorry to hear that the server passed away.\n\nYup, I\u0027m sure about this. Done in http://paste.openstack.org/show/702464/\n\nThe code will also tell you this. （NB: \"allowed_cpus\" is \"vcpu_pin_set\"）\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L4358-L4364","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Second, let\u0027s build a VM with the following flavor with a NUMA node:"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":164,"context_line":"* hw:numa_node\u003d1"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"The guest\u0027s vCPUs are expected to float on the pCPUs in one host\u0027s NUMA"},{"line_number":167,"context_line":"node\u0027s shared pCPUs. The result of the VM xml configuration would be"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_82ceb257","line":164,"range":{"start_line":164,"start_character":2,"end_line":164,"end_character":16},"updated":"2018-03-15 10:49:44.000000000","message":"nit: ``hw:numa_node\u003d1``","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":161,"context_line":"Second, let\u0027s build a VM with the following flavor with a NUMA node:"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* CPU\u003d4, MEMORY\u003d512"},{"line_number":164,"context_line":"* hw:numa_node\u003d1"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"The guest\u0027s vCPUs are expected to float on the pCPUs in one host\u0027s NUMA"},{"line_number":167,"context_line":"node\u0027s shared pCPUs. The result of the VM xml configuration would be"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_0c587e85","line":164,"range":{"start_line":164,"start_character":2,"end_line":164,"end_character":16},"in_reply_to":"df7087c5_82ceb257","updated":"2018-03-16 04:35:24.000000000","message":"Done","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":200,"context_line":"Alternatives"},{"line_number":201,"context_line":"------------"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"A more elaborate alternative would be to dynamically allocate dedicated vCPUs"},{"line_number":204,"context_line":"on-demand from ``vcpu_pin_set`` without requiring an up-front pre-configuration"},{"line_number":205,"context_line":"of ``vcpu_dedicated_set``. The complicating factor here is that adding and"},{"line_number":206,"context_line":"removing dedicated vCPUs from the set would require adjusting the affinity of"},{"line_number":207,"context_line":"all the shared vCPUs. We don\u0027t want to dynamically change the xml configuration"},{"line_number":208,"context_line":"of the running VMs on the same host for every VM deployment with dedicated"},{"line_number":209,"context_line":"policy."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Another alternative is to start two nova-compute services on a same host"},{"line_number":212,"context_line":"with a specific ``vcpu_pin_set`` for each. But preparing two similar"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_c20fca85","line":209,"range":{"start_line":203,"start_character":0,"end_line":209,"end_character":7},"updated":"2018-03-15 10:49:44.000000000","message":"cfriesen noted that Wind River do something like this using...cgroups, I think? Namely, they place all their non-dedicated instances inside that cgroup and simply modify the CPU affinity of said cgroup as more dedicated instances are added. However, libvirt doesn\u0027t expose anything like this so I doubt it\u0027s a viable option for us.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3f91fb3ac9a6f326079c39bd221afa675c9600c7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"Alternatives"},{"line_number":201,"context_line":"------------"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"A more elaborate alternative would be to dynamically allocate dedicated vCPUs"},{"line_number":204,"context_line":"on-demand from ``vcpu_pin_set`` without requiring an up-front pre-configuration"},{"line_number":205,"context_line":"of ``vcpu_dedicated_set``. The complicating factor here is that adding and"},{"line_number":206,"context_line":"removing dedicated vCPUs from the set would require adjusting the affinity of"},{"line_number":207,"context_line":"all the shared vCPUs. We don\u0027t want to dynamically change the xml configuration"},{"line_number":208,"context_line":"of the running VMs on the same host for every VM deployment with dedicated"},{"line_number":209,"context_line":"policy."},{"line_number":210,"context_line":""},{"line_number":211,"context_line":"Another alternative is to start two nova-compute services on a same host"},{"line_number":212,"context_line":"with a specific ``vcpu_pin_set`` for each. But preparing two similar"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_53d4c547","line":209,"range":{"start_line":203,"start_character":0,"end_line":209,"end_character":7},"in_reply_to":"df7087c5_c20fca85","updated":"2018-03-16 16:54:52.000000000","message":"We used cpusets, where we have one cpuset per host NUMA node and one for the system as a whole.  The qemu tasks for \"shared\" instances are placed into the appropriate cpuset, and the allowable host CPUs for all the tasks in the cpuset can be changed at once when we take a pCPU out of the pool and pin a single vCPU to it.\n\nLibvirt actually creates a cgroup per domain (if enabled) which isn\u0027t really helpful for our purposes, so we have to disable libvirt\u0027s use of cpusets.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":252,"context_line":"``vcpu_pin_set``, and if they overlap each other then emit a log explaining"},{"line_number":253,"context_line":"the conflict and refuse to start up. We will also validate"},{"line_number":254,"context_line":"``vcpu_dedicated_set`` against the existing pinned instances on the compute"},{"line_number":255,"context_line":"node, and if it doesn\u0027t match then emit a log explaining the conflict and"},{"line_number":256,"context_line":"refuse to start up."},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"Developer impact"},{"line_number":259,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_0268621a","line":256,"range":{"start_line":255,"start_character":6,"end_line":256,"end_character":19},"updated":"2018-03-15 10:49:44.000000000","message":"Not sure about this one. I guess operators will need to evacuate the host before changing this option. However, the current inability to live migrate pinned instances does make this tough to do. Hopefully [1] should fix it.\n\n[1] https://review.openstack.org/#/c/552722/","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":252,"context_line":"``vcpu_pin_set``, and if they overlap each other then emit a log explaining"},{"line_number":253,"context_line":"the conflict and refuse to start up. We will also validate"},{"line_number":254,"context_line":"``vcpu_dedicated_set`` against the existing pinned instances on the compute"},{"line_number":255,"context_line":"node, and if it doesn\u0027t match then emit a log explaining the conflict and"},{"line_number":256,"context_line":"refuse to start up."},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"Developer impact"},{"line_number":259,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_b6ee851f","line":256,"range":{"start_line":255,"start_character":6,"end_line":256,"end_character":19},"in_reply_to":"df7087c5_0268621a","updated":"2018-03-16 04:35:24.000000000","message":"Okay, I come to think that this is too much in detail implementation for a spec. I delete this part from the spec but bring this discussion again later with codes in implementation phase.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"3. Add support for the placement client"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  * Change it to request ``VCPU`` for VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":299,"context_line":"    ``PCPU`` for VMs with ``hw:cpu-policy\u003ddedicated``."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_8253126b","line":298,"range":{"start_line":298,"start_character":55,"end_line":298,"end_character":56},"updated":"2018-03-15 10:49:44.000000000","message":"s/-/_/","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":295,"context_line":""},{"line_number":296,"context_line":"3. Add support for the placement client"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  * Change it to request ``VCPU`` for VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":299,"context_line":"    ``PCPU`` for VMs with ``hw:cpu-policy\u003ddedicated``."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_963901a5","line":298,"range":{"start_line":298,"start_character":55,"end_line":298,"end_character":56},"in_reply_to":"df7087c5_8253126b","updated":"2018-03-16 04:35:24.000000000","message":"Oops. Good eye. Thanks!","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":296,"context_line":"3. Add support for the placement client"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"  * Change it to request ``VCPU`` for VMs with ``hw:cpu-policy\u003dshared`` and"},{"line_number":299,"context_line":"    ``PCPU`` for VMs with ``hw:cpu-policy\u003ddedicated``."},{"line_number":300,"context_line":""},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_a25ad67f","line":299,"range":{"start_line":299,"start_character":34,"end_line":299,"end_character":35},"updated":"2018-03-15 10:49:44.000000000","message":"s/-/_/","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":302,"context_line":"Dependencies"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"This spec depends on the spec \"NUMA Topology with Resource Providers\" [1]_"},{"line_number":306,"context_line":"being proposed in Rocky."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Testing"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_c2d26ad1","line":306,"range":{"start_line":305,"start_character":0,"end_line":306,"end_character":24},"updated":"2018-03-15 10:49:44.000000000","message":"Does it. Nothing I\u0027ve read here so far suggests we need to touch placement. We\u0027re simply modifying stuff we already have and adding a new configuration option.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":302,"context_line":"Dependencies"},{"line_number":303,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"This spec depends on the spec \"NUMA Topology with Resource Providers\" [1]_"},{"line_number":306,"context_line":"being proposed in Rocky."},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"Testing"},{"line_number":309,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_5697e93a","line":306,"range":{"start_line":305,"start_character":0,"end_line":306,"end_character":24},"in_reply_to":"df7087c5_c2d26ad1","updated":"2018-03-16 04:35:24.000000000","message":"Rebased.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f511d8e05ac4142b3a50ae5599dd8f756bc93f2","unresolved":false,"context_lines":[{"line_number":317,"context_line":"Documentation Impact"},{"line_number":318,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Documents need to be updated to describe changes introducing a new config"},{"line_number":321,"context_line":"option ``vcpu_dedicated_set`` on the compute nodes."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_22e326a6","line":321,"range":{"start_line":320,"start_character":0,"end_line":321,"end_character":51},"updated":"2018-03-15 10:49:44.000000000","message":"We should get this for free, thanks to \u0027oslo_config.sphinxext\u0027 :)","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"7d381064cc9efc1a5d814aa1e390d289e215f1ca","unresolved":false,"context_lines":[{"line_number":317,"context_line":"Documentation Impact"},{"line_number":318,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"Documents need to be updated to describe changes introducing a new config"},{"line_number":321,"context_line":"option ``vcpu_dedicated_set`` on the compute nodes."},{"line_number":322,"context_line":""},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":20,"id":"df7087c5_1624115d","line":321,"range":{"start_line":320,"start_character":0,"end_line":321,"end_character":51},"in_reply_to":"df7087c5_22e326a6","updated":"2018-03-16 04:35:24.000000000","message":"Good to know! Thanks.\nI will just leave it here to remind us to update admin/cpu-topologies guide for clearer explanation with these behaviors in the spec.","commit_id":"a20535026d91221fbce42fec7d11540ec240d7f9"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ec1a0073b433872b968876c6f8251719fce2cd10","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Use Cases"},{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":45,"context_line":"colocate low performance and high performance VMs on the same hosts for"},{"line_number":46,"context_line":"better utilization of compute resources."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"df7087c5_8246494f","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":57},"updated":"2018-03-20 09:33:15.000000000","message":"What do you mean by manually set aggregation?","commit_id":"26aa512729f00b004161c293d1250dba1cfbef7a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"966c9151ec53dd5557e31163b0439e6907b82adc","unresolved":false,"context_lines":[{"line_number":41,"context_line":"Use Cases"},{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":45,"context_line":"colocate low performance and high performance VMs on the same hosts for"},{"line_number":46,"context_line":"better utilization of compute resources."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"df7087c5_8aff3266","line":44,"range":{"start_line":44,"start_character":0,"end_line":44,"end_character":57},"in_reply_to":"df7087c5_8246494f","updated":"2018-03-20 17:41:06.000000000","message":"I assume he means the current practice of assigning entire compute nodes to either \"shared\" or \"dedicated\" host aggregates.","commit_id":"26aa512729f00b004161c293d1250dba1cfbef7a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ec1a0073b433872b968876c6f8251719fce2cd10","unresolved":false,"context_lines":[{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":45,"context_line":"colocate low performance and high performance VMs on the same hosts for"},{"line_number":46,"context_line":"better utilization of compute resources."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"df7087c5_42a591b4","line":45,"updated":"2018-03-20 09:33:15.000000000","message":"I think the use-case should be a bit more elaborated. What are the high performance VMs?","commit_id":"26aa512729f00b004161c293d1250dba1cfbef7a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"966c9151ec53dd5557e31163b0439e6907b82adc","unresolved":false,"context_lines":[{"line_number":42,"context_line":"---------"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"As an operator, I don\u0027t want to manually set aggregation. And I want to"},{"line_number":45,"context_line":"colocate low performance and high performance VMs on the same hosts for"},{"line_number":46,"context_line":"better utilization of compute resources."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"df7087c5_8a34124c","line":45,"in_reply_to":"df7087c5_42a591b4","updated":"2018-03-20 17:41:06.000000000","message":"Presumably in this context \"high performance\" VMs are the ones using \"dedicated\" vCPUs.","commit_id":"26aa512729f00b004161c293d1250dba1cfbef7a"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"62878d71e2c0e8a22932791e8410010875e4b1f9","unresolved":false,"context_lines":[{"line_number":299,"context_line":"Dependencies"},{"line_number":300,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"This spec depends on the spec \"NUMA Topology with Resource Providers\" [1]_"},{"line_number":303,"context_line":"being proposed in Rocky."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Testing"},{"line_number":306,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"df7087c5_33b7d1f7","line":303,"range":{"start_line":302,"start_character":0,"end_line":303,"end_character":24},"updated":"2018-03-16 17:00:37.000000000","message":"What is the dependency?  Certainly it would improve efficiency to be able to have placement filter out hosts without enough \"dedicated\" pCPUs, but NUMATopologyFilter should still be able to do it, no?","commit_id":"26aa512729f00b004161c293d1250dba1cfbef7a"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"ef16b5e78a6f00ce42b5c69de0cf29d3643fe0a2","unresolved":false,"context_lines":[{"line_number":299,"context_line":"Dependencies"},{"line_number":300,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"This spec depends on the spec \"NUMA Topology with Resource Providers\" [1]_"},{"line_number":303,"context_line":"being proposed in Rocky."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Testing"},{"line_number":306,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"df7087c5_22844fb1","line":303,"range":{"start_line":302,"start_character":0,"end_line":303,"end_character":24},"in_reply_to":"df7087c5_33b7d1f7","updated":"2018-03-19 00:06:10.000000000","message":"I\u0027d like to leave these two items to that spec.\n\n- Rename ``NUMA_CORE`` standard class to ``PCPU`` in placement.\n- Change the libvirt driver to report an NUMA RP with ``PCPU`` inventories for dedicated pCPUs.\n\nYou are right that this is just an improvement. I\u0027ll remove the dependency if that spec isn\u0027t going in. But difinitely we\u0027d like to have it. I leave it there at least for now.","commit_id":"26aa512729f00b004161c293d1250dba1cfbef7a"}]}
