)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4c37ccab27ed456b2551192ca5ffbff1103e0b15","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We\u0027d like to propose a way to create instance to"},{"line_number":10,"context_line":"take using of PCPU and VCPU resource in one instance."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I0c4ffe349dc9381c83c836efb4af99d072169c88"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7faddb67_3f6c3035","line":11,"updated":"2019-07-25 20:26:03.000000000","message":"Blueprint: use-pcpu-and-vcpu-in-one-instance","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"81cdaa3a8e57eb01e07f1d7942641b6f14c1048f","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Re-proposed in U release."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Latest POC code is located in topic: bp/mixed-cpu-instance-set4"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I0c4ffe349dc9381c83c836efb4af99d072169c88"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"3fa7e38b_289b1816","line":14,"range":{"start_line":14,"start_character":37,"end_line":14,"end_character":63},"updated":"2020-01-27 12:15:24.000000000","message":"Can you update these to use \u0027bp/use-pcpu-and-vcpu-in-one-instance\u0027 so we can find them easier?","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"471e339152a6bc212ae4664471a70df0788f1431","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Re-proposed in U release."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Latest POC code is located in topic: bp/mixed-cpu-instance-set4"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I0c4ffe349dc9381c83c836efb4af99d072169c88"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"3fa7e38b_f242aa92","line":14,"range":{"start_line":14,"start_character":37,"end_line":14,"end_character":63},"in_reply_to":"3fa7e38b_289b1816","updated":"2020-01-29 05:07:22.000000000","message":"\u003e Can you update these to use \u0027bp/use-pcpu-and-vcpu-in-one-instance\u0027\n \u003e so we can find them easier?\n\nI have move the code under topic \u0027bp/use-pcpu-and-vcpu-in-one-instance\u0027. Please notice that these patches are for spec@ver14. I\u0027ll make a update to reflect the design of ver17.\n\nthanks","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"}],"specs/train/approved/use-pcpu-vcpu-in-one-instance.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":13,"context_line":"CPU allocation policy and instances of ``shared`` CPU allocation policy on the"},{"line_number":14,"context_line":"same host. This spec aims to create an instance with partial instance CPUs"},{"line_number":15,"context_line":"running with ``dedicated`` CPU allocation policy and allocated from ``PCPU``"},{"line_number":16,"context_line":"resource class, and the rest instance CPUs running in ``shared`` policy and"},{"line_number":17,"context_line":"allocating from ``VCPU`` resource class."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_5b5dc3ea","line":16,"range":{"start_line":16,"start_character":24,"end_line":16,"end_character":28},"updated":"2019-07-02 18:19:03.000000000","message":"remaining","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bcc05f45ed4534d1bcf7e5c3885beeec7d0a54fa","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":"The current CPU allocation policies, ``dedicated`` or ``shared``, are applied"},{"line_number":23,"context_line":"to while CPUs of an instance, after the introduction of `CPU resource tracking`_"},{"line_number":24,"context_line":"it is possible to propose a more fine-grained CPU allocation policy, which is"},{"line_number":25,"context_line":"based the control over individual instance CPU, to specify the ``dedicated``"},{"line_number":26,"context_line":"or ``shared`` CPU allocation policy to each instance CPU."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_39648de5","line":23,"range":{"start_line":23,"start_character":28,"end_line":23,"end_character":35},"updated":"2019-07-03 09:35:02.000000000","message":". However, with","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bcc05f45ed4534d1bcf7e5c3885beeec7d0a54fa","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":"The current CPU allocation policies, ``dedicated`` or ``shared``, are applied"},{"line_number":23,"context_line":"to while CPUs of an instance, after the introduction of `CPU resource tracking`_"},{"line_number":24,"context_line":"it is possible to propose a more fine-grained CPU allocation policy, which is"},{"line_number":25,"context_line":"based the control over individual instance CPU, to specify the ``dedicated``"},{"line_number":26,"context_line":"or ``shared`` CPU allocation policy to each instance CPU."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_596dc1ca","line":23,"range":{"start_line":23,"start_character":3,"end_line":23,"end_character":8},"updated":"2019-07-03 09:35:02.000000000","message":"all","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Tracking the dedicated CPUs of instance"},{"line_number":49,"context_line":"---------------------------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Add a new extra specs and image metadata::"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  ``hw:cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":54,"context_line":"  or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_5b2b8332","line":51,"range":{"start_line":51,"start_character":26,"end_line":51,"end_character":42},"updated":"2019-07-02 18:19:03.000000000","message":"Is there a precedent for this? We usually don\u0027t allow users (via the image) to request resources except as allowed by the admin (via the flavor).\n\nI recognize that it\u0027s more like \"configuring\" resources already requested via the flavor; but IMO it\u0027s giving too much power to the user, who could abuse this to simply request all of their CPUs be dedicated.\n\n[Later] Is hw_cpu_policy already a thing in image metadata? If so, I guess this isn\u0027t any worse.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Tracking the dedicated CPUs of instance"},{"line_number":49,"context_line":"---------------------------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Add a new extra specs and image metadata::"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  ``hw:cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":54,"context_line":"  or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_555ee776","line":51,"range":{"start_line":51,"start_character":26,"end_line":51,"end_character":42},"in_reply_to":"9fb8cfa7_5b2b8332","updated":"2019-07-04 08:12:51.000000000","message":"`hw_cpu_policy` an existing property: https://docs.openstack.org/glance/latest/admin/useful-image-properties.html.\n\nI do not object to removing \u0027hw_cpus.dedicated\u0027 since it might arise concern.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bcc05f45ed4534d1bcf7e5c3885beeec7d0a54fa","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  ``hw:cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":54,"context_line":"  or"},{"line_number":55,"context_line":"  ``hw_cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Image metadata ``hw_cpus.dedicated`` only works when extra specs"},{"line_number":58,"context_line":"``hw:cpus.dedicated`` is not set in the instance flavor properties."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_39924da1","line":55,"updated":"2019-07-03 09:35:02.000000000","message":"I don\u0027t get why this is necessary. Why can\u0027t we request PCPU/VCPU resources like any other resource?\n\n    resources:VCPU\u003d2\n    resources:PCPU\u003d4\n\nAnd just rely on these being in a specific order, i.e. VCPUs will always be allocated first","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"  ``hw:cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":54,"context_line":"  or"},{"line_number":55,"context_line":"  ``hw_cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Image metadata ``hw_cpus.dedicated`` only works when extra specs"},{"line_number":58,"context_line":"``hw:cpus.dedicated`` is not set in the instance flavor properties."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_308265ca","line":55,"in_reply_to":"9fb8cfa7_39924da1","updated":"2019-07-04 08:12:51.000000000","message":"It is necessary.\nI guest ``resource::PCPU\u003d2`` only specifies the PCPU number of instance required, but here we want to be possible to tell which instance CPUs are pinning to the PCPUs exactly. For example pinning two PCPUs to the instance\u0027s first and last vCPUs.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  ``hw_cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Image metadata ``hw_cpus.dedicated`` only works when extra specs"},{"line_number":58,"context_line":"``hw:cpus.dedicated`` is not set in the instance flavor properties."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The CPUs appeared in list of ``hw:cpus.dedicated`` or ``hw_cpus.dedicated``"},{"line_number":61,"context_line":"will be allocated from host\u0027s ``PCPU`` resource, which is called the instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_7b30c79f","line":58,"updated":"2019-07-02 18:19:03.000000000","message":"otherwise.... exception? (yes)\n\nBut again, I\u0027m pretty sure we should not allow this to be requested via image metadata at all.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bcc05f45ed4534d1bcf7e5c3885beeec7d0a54fa","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  ``hw_cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Image metadata ``hw_cpus.dedicated`` only works when extra specs"},{"line_number":58,"context_line":"``hw:cpus.dedicated`` is not set in the instance flavor properties."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The CPUs appeared in list of ``hw:cpus.dedicated`` or ``hw_cpus.dedicated``"},{"line_number":61,"context_line":"will be allocated from host\u0027s ``PCPU`` resource, which is called the instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_99e6d94a","line":58,"in_reply_to":"9fb8cfa7_7b30c79f","updated":"2019-07-03 09:35:02.000000000","message":"Also, what about \u0027hw:cpu_policy\u0027? We were planning to make this legacy behavior","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  ``hw_cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Image metadata ``hw_cpus.dedicated`` only works when extra specs"},{"line_number":58,"context_line":"``hw:cpus.dedicated`` is not set in the instance flavor properties."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The CPUs appeared in list of ``hw:cpus.dedicated`` or ``hw_cpus.dedicated``"},{"line_number":61,"context_line":"will be allocated from host\u0027s ``PCPU`` resource, which is called the instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_10696924","line":58,"in_reply_to":"9fb8cfa7_7b30c79f","updated":"2019-07-04 08:12:51.000000000","message":"Will discard \u0027hw_cpus.dedicated\u0027.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  ``hw_cpus.dedicated\u003d\u003ccpuset string\u003e``"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Image metadata ``hw_cpus.dedicated`` only works when extra specs"},{"line_number":58,"context_line":"``hw:cpus.dedicated`` is not set in the instance flavor properties."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"The CPUs appeared in list of ``hw:cpus.dedicated`` or ``hw_cpus.dedicated``"},{"line_number":61,"context_line":"will be allocated from host\u0027s ``PCPU`` resource, which is called the instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_70c69d19","line":58,"in_reply_to":"9fb8cfa7_99e6d94a","updated":"2019-07-04 08:12:51.000000000","message":"The implementation of proposing spec depends on the changes made to `hw:cpu_policy` by `CPU resource tracking`_.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c4e13f6a51836c29e428933fa44297247c1e23df","unresolved":false,"context_lines":[{"line_number":62,"context_line":"``dedicated`` CPUs."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The CPUs specified in ``\u003ccpuset string\u003e`` are expected to be a sub set or the"},{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_e522df51","line":65,"range":{"start_line":65,"start_character":47,"end_line":65,"end_character":60},"updated":"2019-07-02 12:09:35.000000000","message":"we don\u0027t have cpuset field in the flavor. but I know what your mean. The id shouldn\u0027t be greater than flavor.vcpus.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":62,"context_line":"``dedicated`` CPUs."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"The CPUs specified in ``\u003ccpuset string\u003e`` are expected to be a sub set or the"},{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_95c0dfe2","line":65,"range":{"start_line":65,"start_character":47,"end_line":65,"end_character":60},"in_reply_to":"9fb8cfa7_e522df51","updated":"2019-07-04 08:12:51.000000000","message":"Change it to ---\u003e\n\nThe CPUs specified in ``\u003ccpuset string\u003e`` are expected to be a subset of the instance CPUs.\n\n------\nthe above covers the case that all instance CPUs are allocated from PCPU since `a set is a subset of itself`, right?","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An instance that the ``dedicated`` CPU list is not empty implies it is a NUMA"},{"line_number":71,"context_line":"awareness instance and the extra specs ``hw:numa_nodes`` is set to 1 if it is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_966a327f","line":68,"updated":"2019-07-02 18:19:03.000000000","message":"How does the VM find out which CPU IDs correspond to shared and which to dedicated?","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"47b82315eb61f41947f768a580d3cf241cd07492","unresolved":false,"context_lines":[{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An instance that the ``dedicated`` CPU list is not empty implies it is a NUMA"},{"line_number":71,"context_line":"awareness instance and the extra specs ``hw:numa_nodes`` is set to 1 if it is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_32e6e5ea","line":68,"in_reply_to":"7faddb67_9050f934","updated":"2019-07-04 10:41:42.000000000","message":"\u003e Or If you mean the application inside the VM gets to know which\n \u003e host CPU ID it running on,\n\nThis is what I meant. Not specifically which host CPU, but just that e.g. CPU 0 is a dedicated one, so it should use that one for performance critical processes.\n\n \u003e then it might need to access instance\n \u003e metadata REST API. And the host CPU information should be\n \u003e registered in metadata, and this should be task to be done.\n\nOkay. I don\u0027t know how metadata works, but if that\u0027s the way to do it, great. (There seems to be debate above.)","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3a4b7f3d2ef27689facca134d9f06a5b5f084487","unresolved":false,"context_lines":[{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An instance that the ``dedicated`` CPU list is not empty implies it is a NUMA"},{"line_number":71,"context_line":"awareness instance and the extra specs ``hw:numa_nodes`` is set to 1 if it is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_90d6b94f","line":68,"in_reply_to":"9fb8cfa7_19dae978","updated":"2019-07-04 04:21:04.000000000","message":"@Stephen, why expose that via metadata is wrong?","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An instance that the ``dedicated`` CPU list is not empty implies it is a NUMA"},{"line_number":71,"context_line":"awareness instance and the extra specs ``hw:numa_nodes`` is set to 1 if it is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_9050f934","line":68,"in_reply_to":"9fb8cfa7_966a327f","updated":"2019-07-04 08:12:51.000000000","message":"If I understand you correctly, do you want me to take one or more examples to tell which instance CPU is being used in as \u0027shared\u0027 or \u0027dedicated\u0027 when \u0027hw:cpus.dedicated\u0027 is specified?\n\nI have one example in the following paragraphs, and I need to add one more to cover the multiple instance NUMA nodes case.\n\nHere is the example I want to add:\n\n flavor:\n      vcpus\u003d8\n      memory_mb\u003d512\n      extra_specs:\n        hw:cpus.dedicated\u003d0-1,4\n        hw:numa_nodes\u003d2\n\nIn the instance above, there are two NUMA nodes and CPUs are equally divided across the NUMA nodes, that implies \n    hw:numa_cpus.0\u003d0-3\n  and\n    hw:numa_cpus.1\u003d4-7\n\nthe instance flavor has made CPU 0,1,4 are dedicated CPUs, so \nfor instance NUMA node0, PCPUs\u003d(0,1) and VCPUs\u003d(2,3); for instance NUMA node1 the PCPUS\u003d(4) and VCPUs\u003d(5,6,7).\n\nOr If you mean the application inside the VM gets to know which host CPU ID it running on, then it might need to access instance metadata REST API. And the host CPU information should be registered in metadata, and this should be task to be done.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bcc05f45ed4534d1bcf7e5c3885beeec7d0a54fa","unresolved":false,"context_lines":[{"line_number":65,"context_line":"same value of CPU list specified in instance ``flavor.cpuset``, and the CPUs"},{"line_number":66,"context_line":"that appear in ``cpuset`` but not in the list of the ``dedicated`` CPU list"},{"line_number":67,"context_line":"will be allocated from host\u0027s ``VCPU`` resource and called the instance"},{"line_number":68,"context_line":"``shared`` CPUs."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"An instance that the ``dedicated`` CPU list is not empty implies it is a NUMA"},{"line_number":71,"context_line":"awareness instance and the extra specs ``hw:numa_nodes`` is set to 1 if it is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_19dae978","line":68,"in_reply_to":"9fb8cfa7_966a327f","updated":"2019-07-03 09:35:02.000000000","message":"It can\u0027t, unless we want to expose this via metadata and that seems wrong","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":75,"context_line":"      vcpus\u003d4"},{"line_number":76,"context_line":"      memory_mb\u003d512"},{"line_number":77,"context_line":"      extra_specs:"},{"line_number":78,"context_line":"        hw:cpus.dedicated\u003d0,2"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"New instance CPU policy based on single vCPU"},{"line_number":81,"context_line":"----------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_dbc8d357","line":78,"range":{"start_line":78,"start_character":26,"end_line":78,"end_character":29},"updated":"2019-07-02 18:19:03.000000000","message":"To be clear, this is saying that within the *instance* the CPUs with IDs 0 and 2 will come from the host\u0027s [compute]cpu_dedicated_set (and IDs 1 and 3 will come from [compute]cpu_shared_set). These numbers do not (and must not) have any relation to the physical CPU IDs on the hypervisor.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":75,"context_line":"      vcpus\u003d4"},{"line_number":76,"context_line":"      memory_mb\u003d512"},{"line_number":77,"context_line":"      extra_specs:"},{"line_number":78,"context_line":"        hw:cpus.dedicated\u003d0,2"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"New instance CPU policy based on single vCPU"},{"line_number":81,"context_line":"----------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_b92dddfe","line":78,"range":{"start_line":78,"start_character":26,"end_line":78,"end_character":29},"in_reply_to":"9fb8cfa7_dbc8d357","updated":"2019-07-04 08:12:51.000000000","message":"I\u0027ll add some explanation to this example. \n\nSince the instance ``dedicated``/``shared`` vCPUs should not have a mapping with certain CPUs in host\u0027s cpu_dedicated_set/cpu_shared_set, but if the instance has multiple NUMA nodes then the ``dedicated`` and ``shared`` instance vCPU that belong to the same instance NUMA cell should locate in same host NUMA cell. Example2:\n\n    flavor:\n      vcpus\u003d4\n      memory_mb\u003d512\n      extra_specs:\n        hw:cpus.dedicated\u003d0,2\n        hw:numa_nodes\u003d2\n\nHere requesting an instance with two NUMA nodes, vCPU 0 and 1 are in instance NUMA cell 0, and vCPU 2 and 3 are in another instance NUMA cell. And also expecting the vCPU 0,2 to be allocated from cpu_dedicated_set, vCPU 1,3 to be allocated from cpu_shared_set. And this example also requests vCPU0 and 1 should reside on one host NUMA node since vCPU 0 and 1 belong to the one instance NUMA node. \nvCPU 2 and 3 are also required to be scheduled on host CPUs that belong to one host NUMA node.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":76,"context_line":"      memory_mb\u003d512"},{"line_number":77,"context_line":"      extra_specs:"},{"line_number":78,"context_line":"        hw:cpus.dedicated\u003d0,2"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"New instance CPU policy based on single vCPU"},{"line_number":81,"context_line":"----------------------------------------------"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_1b32eb5f","line":79,"updated":"2019-07-02 18:19:03.000000000","message":"Because the original spec [1] allows resources:PCPU in the flavor, we should consider a few different combinations:\n\n- Should it be legal to include resources:PCPU\u003d$dedicated_count? So in this example:\n\n    flavor:\n      vcpus\u003d4\n      memory_mb\u003d512\n      extra_specs:\n        resources:PCPU\u003d2  # \u003c\u003d\u003d this\n        hw:cpus.dedicated\u003d0,2\n\n- Does it make sense to allow vcpu\u003dX and resources:PCPU\u003dY where Y \u003c X *without* also specifying hw:cpus.dedicated? I assume it is important for the VM to know *which* of its logical CPUs are dedicated, so if we allowed the dedicated cpuset to be absent, there would have to be a documented convention for which logical CPU IDs we pick to be dedicated, e.g. \"the first Y\". So in this example:\n\n    flavor:\n      vcpus\u003d4\n      memory_mb\u003d512\n      extra_specs:\n        resources:PCPU\u003d2\n\n...implicitly means logical CPUs 0,1 are dedicated, and 2,3 are shared.\n\nOr we can make either/both of these generate an error.\n\nDiscuss.\n\n[1] http://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-resources.html#example-flavor-configurations","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8eee9671567119d45f94cfa458520ea2c787a604","unresolved":false,"context_lines":[{"line_number":76,"context_line":"      memory_mb\u003d512"},{"line_number":77,"context_line":"      extra_specs:"},{"line_number":78,"context_line":"        hw:cpus.dedicated\u003d0,2"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"New instance CPU policy based on single vCPU"},{"line_number":81,"context_line":"----------------------------------------------"},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_37c81454","line":79,"in_reply_to":"9fb8cfa7_1b32eb5f","updated":"2019-07-04 12:18:35.000000000","message":"I still think we shouldn\u0027t allow the user specify the \u0027resoruces:RC\u0027 directly. For example, we only support numa instance. If the user only specified resources:PCPU\u003d2, what we can do? fill the numa part into the resources? \n\nI prefer to keep those extra specs. And we translate those extra spec into placement request. I and Sean talk about this few times. like it also provides upgrade chance for the future if we want to change the way how to construct placement request.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":91,"context_line":"To keep compatibility, if extra specs ``hw:cpus.dedicated`` or image metadata"},{"line_number":92,"context_line":"``hw_cpus.dedicated`` is not empty, instance CPU allocation policy specified in"},{"line_number":93,"context_line":"``hw:cpu_policy`` or ``hw_cpu_policy`` will be omitted. Otherwise the old"},{"line_number":94,"context_line":"fashion CPU allocation policy will be used."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_d69f4a4f","line":94,"updated":"2019-07-02 18:19:03.000000000","message":"FWIW, I think it should be an error to specify hw:cpu_policy ``shared`` *or* ``dedicated`` when requesting a mix like this. So either we need a new value, like ``mixed``, or we should require hw:cpu_policy to be absent.\n\nOr we can go with Alex\u0027s suggestion below in Alternatives.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c4e13f6a51836c29e428933fa44297247c1e23df","unresolved":false,"context_lines":[{"line_number":92,"context_line":"``hw_cpus.dedicated`` is not empty, instance CPU allocation policy specified in"},{"line_number":93,"context_line":"``hw:cpu_policy`` or ``hw_cpu_policy`` will be omitted. Otherwise the old"},{"line_number":94,"context_line":"fashion CPU allocation policy will be used."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_e595ff40","line":95,"updated":"2019-07-02 12:09:35.000000000","message":"emulator thread policy only can be isolated when the cpu policy is dedicated. With this spec, we can set the emulator thread policy to isoalted when hw:cpu.dedicated I guess.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c4e13f6a51836c29e428933fa44297247c1e23df","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"None"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_45ddeb3e","line":99,"range":{"start_line":99,"start_character":1,"end_line":99,"end_character":4},"updated":"2019-07-02 12:09:35.000000000","message":"contribute another idea\n\nwe can extend the existed hw:cpu_policy.\n\nhw:cpu_policy\u003ddedicated:\u003ccpu id string\u003e,shared:\u003ccpu id string\u003e\n\nThis keeps the backward compatibility, and needn\u0027t to deal with some strange combination like hw:cpu_policy\u003dshared and hw:cpu.dedicated is set.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"08239e9534b4d4eb79f43ce3685696808af5534e","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"None"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_ca09cadd","line":99,"range":{"start_line":99,"start_character":1,"end_line":99,"end_character":4},"in_reply_to":"7faddb67_c62a378f","updated":"2019-07-22 07:58:49.000000000","message":"To remove redundancy, how about just adding one instance CPU allocation policy to current policies?\n\n  +\u0027dedicated::\u003ccpuset string\u003e\u0027\n\nThe instance is either to be a ``dedicated`` CPU or a ``shared`` CPU, once the ``dedicated`` CPU list is determined, the ``shared`` CPU list could be derived by \n``instance.cpuset``-``dedicated.\u003ccpuset.string\u003e``.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"None"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_76ba1ec1","line":99,"range":{"start_line":99,"start_character":1,"end_line":99,"end_character":4},"in_reply_to":"9fb8cfa7_45ddeb3e","updated":"2019-07-02 18:19:03.000000000","message":"or\n\n hw:cpu_policy.dedicated\u003d\u003ccpuset\u003e\n hw:cpu_policy.shared\u003d\u003ccpuset\u003e","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Alternatives"},{"line_number":97,"context_line":"------------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"None"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_c62a378f","line":99,"range":{"start_line":99,"start_character":1,"end_line":99,"end_character":4},"in_reply_to":"9fb8cfa7_76ba1ec1","updated":"2019-07-04 08:12:51.000000000","message":"I prefer the way from Alex.\n\ncurrently, we have two choices for \u0027hw:cpu_policy\u0027:\n-. \u0027dedicated\u0027\n-. \u0027shared\u0027\n\nAnd Alex is suggesting adding another two choices, which becomes:\n-. \u0027dedicated\u0027\n-. \u0027shared\u0027\n+. \u0027dedicated.\u003ccpuset string\u003e\u0027\n+. \u0027shared.\u003ccpuset string\u003e\u0027\n\nIt can only select one policy and avoids the trouble of handling the case that has two kinds of CPU allocation policies at the same time. It also maintains the compatibility to current policy.\n\nFor Eric\u0027s suggestion, it still needs to answer how to process the CPU allocation policy when specifying \u0027hw:cpu_policy\u003ddedicated\u0027 and \u0027hw:cpu_policy.dedicated\u003d\u003ccpuset subset string\u003e\u0027. while \u0027hw_cpu_policy\u003ddedicated\u0027 means all instance CPUs are dedicated CPUs, and in another property you just want partial CPUs to be dedicated CPUs.\nComparing with the proposal of \u0027hw:cpus.dedicated\u003d\u003ccpuset string\u003e\u0027 there is not much difference.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c4e13f6a51836c29e428933fa44297247c1e23df","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"``InstanceNUMACell`` needs to be upgraded to track the ``dedicated`` CPUs"},{"line_number":105,"context_line":"that belong to particular instance NUMA node."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"It is expected that ``NUMACell`` object is also upgraded in the implementation"},{"line_number":108,"context_line":"of `CPU resource tracking`_ for tracking the host NUMA specific ``PCPU``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_85c0c351","line":105,"range":{"start_line":104,"start_character":1,"end_line":105,"end_character":45},"updated":"2019-07-02 12:09:35.000000000","message":"maybe we needn\u0027t. InstanceNUMACell.cpu_pinning_raw can only store part of vcpus. It means those vcpus are dedicated. And we can easy calculate out the shared vcpu by InstaceNUMACell.cpuset - InstaceNUMACell.cpu_pinning_raw.keys()","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Data model impact"},{"line_number":102,"context_line":"-----------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"``InstanceNUMACell`` needs to be upgraded to track the ``dedicated`` CPUs"},{"line_number":105,"context_line":"that belong to particular instance NUMA node."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"It is expected that ``NUMACell`` object is also upgraded in the implementation"},{"line_number":108,"context_line":"of `CPU resource tracking`_ for tracking the host NUMA specific ``PCPU``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_233a1de7","line":105,"range":{"start_line":104,"start_character":1,"end_line":105,"end_character":45},"in_reply_to":"9fb8cfa7_85c0c351","updated":"2019-07-04 08:12:51.000000000","message":"Seems it is a way to avoid the change to InstanceNUMACell object.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c4e13f6a51836c29e428933fa44297247c1e23df","unresolved":false,"context_lines":[{"line_number":134,"context_line":"------------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"``InstanceNUMACell`` and ``NUMACell`` will be changed, this brings some extra"},{"line_number":137,"context_line":"criteria to in Nova scheduler\u0027s filtering and weight layers, but the"},{"line_number":138,"context_line":"performance impact should be pretty trivial."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_a5c62767","line":137,"range":{"start_line":137,"start_character":15,"end_line":137,"end_character":42},"updated":"2019-07-02 12:09:35.000000000","message":"so we are proposing modifying the NUMA topology filter. We need to mention that in the proposal section explicitly","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":134,"context_line":"------------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"``InstanceNUMACell`` and ``NUMACell`` will be changed, this brings some extra"},{"line_number":137,"context_line":"criteria to in Nova scheduler\u0027s filtering and weight layers, but the"},{"line_number":138,"context_line":"performance impact should be pretty trivial."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Other deployer impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_c303090f","line":137,"range":{"start_line":137,"start_character":15,"end_line":137,"end_character":42},"in_reply_to":"9fb8cfa7_a5c62767","updated":"2019-07-04 08:12:51.000000000","message":"OK, will add details in \u0027Proposed Changes\u0027 section.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c4e13f6a51836c29e428933fa44297247c1e23df","unresolved":false,"context_lines":[{"line_number":160,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Code of dependency spec  `CPU resource tracking`_ is still in coding, it is"},{"line_number":163,"context_line":"expected that some there is some code in creating the CPU mapping between"},{"line_number":164,"context_line":"instance NUMA cell ``shared`` vCPUs and some host NUMA cell VCPUs through"},{"line_number":165,"context_line":"libvirt driver."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Both host and instance NUMA cell need to track the PCPU information and it"},{"line_number":168,"context_line":"is required to modify the ``NUMACell`` and ``InstanceNUMACell`` objects"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_8593e34e","line":165,"range":{"start_line":163,"start_character":41,"end_line":165,"end_character":15},"updated":"2019-07-02 12:09:35.000000000","message":"the shared vcpu will map to the CONF.compute.shared_cpu_set. The dedicated vcpu will map to the CONF.compute.dedicated_cpu_set. we will have same logic in this spec.","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc4572da3356f51a959c42ae42d99d1fd9dbddaf","unresolved":false,"context_lines":[{"line_number":210,"context_line":"* `Proposes NUMA topology with RPs`_"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. _Support shared and dedicated VMs on same host: https://review.openstack.org/#/c/545734/"},{"line_number":213,"context_line":".. _CPU resource tracking: https://opendev.org/openstack/nova-specs/src/branch/master/specs/train/approved/cpu-resources.rst"},{"line_number":214,"context_line":".. _Proposes NUMA topology with RPs: https://review.opendev.org/#/c/552924/"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9fb8cfa7_bb15dfe7","line":213,"range":{"start_line":213,"start_character":27,"end_line":213,"end_character":124},"updated":"2019-07-02 18:19:03.000000000","message":"http://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-resources.html","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"b796d7ffa2f3f2ac437e368dcf48a14604295b75","unresolved":false,"context_lines":[{"line_number":210,"context_line":"* `Proposes NUMA topology with RPs`_"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":".. _Support shared and dedicated VMs on same host: https://review.openstack.org/#/c/545734/"},{"line_number":213,"context_line":".. _CPU resource tracking: https://opendev.org/openstack/nova-specs/src/branch/master/specs/train/approved/cpu-resources.rst"},{"line_number":214,"context_line":".. _Proposes NUMA topology with RPs: https://review.opendev.org/#/c/552924/"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7faddb67_030a8125","line":213,"range":{"start_line":213,"start_character":27,"end_line":213,"end_character":124},"in_reply_to":"9fb8cfa7_bb15dfe7","updated":"2019-07-04 08:12:51.000000000","message":"got","commit_id":"d4431ca5c213499e91fac0f079dd569861e19bd9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":53,"context_line":"instance CPUs, to be ``dedicated`` or ``shared``. Proposed a new extra policy"},{"line_number":54,"context_line":"to specify partial CPUs as ``dedicated`` or ``shared`` in such ways::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  ``hw:cpu_policy\u003ddedicated:\u003ccpuset string\u003e``"},{"line_number":57,"context_line":"  or"},{"line_number":58,"context_line":"  ``hw_cpu_policy\u003ddedicated:\u003ccpuset string\u003e``"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance selects the CPU allocation policy among ``dedicated``, ``shared``,"},{"line_number":61,"context_line":"``dedicated:\u003ccpuset string\u003e`` policies, and the new policy introduces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_ea76aaa4","line":58,"range":{"start_line":56,"start_character":2,"end_line":58,"end_character":45},"updated":"2019-07-12 12:48:19.000000000","message":"i dont think we shoudl  mode it like this\n\nwe should have a hw:cpu_dedicated_mask to mirror the hw:cpu_realtime_mask","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"instance CPUs, to be ``dedicated`` or ``shared``. Proposed a new extra policy"},{"line_number":54,"context_line":"to specify partial CPUs as ``dedicated`` or ``shared`` in such ways::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  ``hw:cpu_policy\u003ddedicated:\u003ccpuset string\u003e``"},{"line_number":57,"context_line":"  or"},{"line_number":58,"context_line":"  ``hw_cpu_policy\u003ddedicated:\u003ccpuset string\u003e``"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Instance selects the CPU allocation policy among ``dedicated``, ``shared``,"},{"line_number":61,"context_line":"``dedicated:\u003ccpuset string\u003e`` policies, and the new policy introduces"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_a264e74a","line":58,"range":{"start_line":56,"start_character":2,"end_line":58,"end_character":45},"in_reply_to":"7faddb67_ea76aaa4","updated":"2019-07-19 03:26:58.000000000","message":"hw:cpu_dedicated_mask sounds good also.\n\nSo we only allow to set hw:cpu_dedicated_mask when hw:cpu_policy is dedicated, right?","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      vcpus\u003d4"},{"line_number":85,"context_line":"      memory_mb\u003d512"},{"line_number":86,"context_line":"      extra_specs:"},{"line_number":87,"context_line":"        hw:cpus.dedicated\u003d0,2"},{"line_number":88,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"In this example, ``hw:cpus.dedicated\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_2a784228","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":29},"updated":"2019-07-12 12:48:19.000000000","message":"im not really sure that this makes sense\n\nmirror the\nhw:numa_cpus extraspec\nand have\nhw:numa_dedicated_cpus\n\nif we have this however we dont need \n\nthe previes extraspec change\nhw:cpu_policy\u003ddedicated:\u003ccpuset string\u003e\nor my  version hw:cpu_dedicated_mask\n\nwe need to also support the dot notation.\n\ne.g.\nhw:numa_dedicated_cpus.0\u003d0\nhw:numa_dedicated_cpus.1\u003d2 \n\nthis would be the same as the above but done expcitly.\n\nby the way without setting anything else the vm will also still have 4 sockets each with 1 core and 1 thread.\nwe should not change that as part of this spec.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      vcpus\u003d4"},{"line_number":85,"context_line":"      memory_mb\u003d512"},{"line_number":86,"context_line":"      extra_specs:"},{"line_number":87,"context_line":"        hw:cpus.dedicated\u003d0,2"},{"line_number":88,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"In this example, ``hw:cpus.dedicated\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_02de1bd9","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":29},"in_reply_to":"7faddb67_2a784228","updated":"2019-07-19 03:26:58.000000000","message":"I guess Huaqiang forget to update at here. he should write \u0027hw:cpu_policy\u003ddedicated:\u003ccpuset string\u003e\u0027\n\n@Sean\nI\u0027m not sure we should support dot notation. It sounds like we bring some extra trouble for the user. And the user needs to calculate which cpu id is in numa0, which cpu id is in numa1. But actually they are needless info.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Specifically vCPU 2 is 1:1 pinned to a host ``dedicated`` CPU, and vCPU 0,1,3"},{"line_number":118,"context_line":"are floating over the NUMA\u0027s ``shared`` CPU group that vCPU 2 is pinning on."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":".. note::"},{"line_number":121,"context_line":"    This specification brings CPU priorities, ``dedicated`` and ``shared`` to"},{"line_number":122,"context_line":"    the application in a instance, currently it is impossible for the"},{"line_number":123,"context_line":"    application to get the information that which CPU is ``PCPU`` and which is"},{"line_number":124,"context_line":"    ``VCPU`` since these two CPUs are in different priority."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    There is a way to do it through the RESTful API offered by"},{"line_number":127,"context_line":"    `Nova metadata service`_, but need a extra Nova specification to cover the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_13da534b","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":60},"updated":"2019-07-12 12:48:19.000000000","message":"conflatinting this with priorities is confusing.\n\nfor now they are just two different type of resouces PCPUs and VCPUs im aware of the other cpu priority work that intel is doing but please dont conflate these two things.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":117,"context_line":"Specifically vCPU 2 is 1:1 pinned to a host ``dedicated`` CPU, and vCPU 0,1,3"},{"line_number":118,"context_line":"are floating over the NUMA\u0027s ``shared`` CPU group that vCPU 2 is pinning on."},{"line_number":119,"context_line":""},{"line_number":120,"context_line":".. note::"},{"line_number":121,"context_line":"    This specification brings CPU priorities, ``dedicated`` and ``shared`` to"},{"line_number":122,"context_line":"    the application in a instance, currently it is impossible for the"},{"line_number":123,"context_line":"    application to get the information that which CPU is ``PCPU`` and which is"},{"line_number":124,"context_line":"    ``VCPU`` since these two CPUs are in different priority."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    There is a way to do it through the RESTful API offered by"},{"line_number":127,"context_line":"    `Nova metadata service`_, but need a extra Nova specification to cover the"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_a2f2a76e","line":124,"range":{"start_line":120,"start_character":0,"end_line":124,"end_character":60},"in_reply_to":"7faddb67_13da534b","updated":"2019-07-19 03:26:58.000000000","message":"yea, agree with you.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    application to get the information that which CPU is ``PCPU`` and which is"},{"line_number":124,"context_line":"    ``VCPU`` since these two CPUs are in different priority."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    There is a way to do it through the RESTful API offered by"},{"line_number":127,"context_line":"    `Nova metadata service`_, but need a extra Nova specification to cover the"},{"line_number":128,"context_line":"    whole idea."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Tracking ``dedicated`` and ``shared`` vCPUs in host and instance NUMA cell"},{"line_number":131,"context_line":"--------------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_f3a217ae","line":128,"range":{"start_line":126,"start_character":3,"end_line":128,"end_character":15},"updated":"2019-07-12 12:48:19.000000000","message":"we could jsut have that be in this spec. i was going to suggest just report the info in the metadta service.\n\nther is no need to have another spec unless you plan to do this in U and not train. if that is the case just state that this will be done in U and decalre it out of scope for now.\n\ni dont think its that much extra work to add the cpu masks to the metadata so i would jsut do this.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":136,"context_line":""},{"line_number":137,"context_line":"The spec `CPU resource tracking`_  introduces the ``PCPU`` and ``VCPU``"},{"line_number":138,"context_line":"resources and the host CPUs will be partitioned into up to three groups, the"},{"line_number":139,"context_line":"``dedicated``, ``shared`` and ``reserved`` group respectively. This spec is"},{"line_number":140,"context_line":"proposed based on the usage of these host CPU groups. Considering that the"},{"line_number":141,"context_line":"implementation of spec is still in coding stage, the change over ``NUMACell``"},{"line_number":142,"context_line":"can be fully discussed whenever the dependency spec code is done."}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_f38bf71b","line":139,"range":{"start_line":139,"start_character":30,"end_line":139,"end_character":62},"updated":"2019-07-12 12:48:19.000000000","message":"we do not have a reserved group\n\nwe have dedicated and shared. you reserve cpus by not adding them to either.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":137,"context_line":"The spec `CPU resource tracking`_  introduces the ``PCPU`` and ``VCPU``"},{"line_number":138,"context_line":"resources and the host CPUs will be partitioned into up to three groups, the"},{"line_number":139,"context_line":"``dedicated``, ``shared`` and ``reserved`` group respectively. This spec is"},{"line_number":140,"context_line":"proposed based on the usage of these host CPU groups. Considering that the"},{"line_number":141,"context_line":"implementation of spec is still in coding stage, the change over ``NUMACell``"},{"line_number":142,"context_line":"can be fully discussed whenever the dependency spec code is done."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"For ``InstanceNUMACell``, to store the instance ``dedicated`` CPU information,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_f3b9b7cb","line":141,"range":{"start_line":140,"start_character":54,"end_line":141,"end_character":48},"updated":"2019-07-12 12:48:19.000000000","message":"technically you are not ment to start the codeing until after the spec is appoved but maybe you are refering to\nhttps://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-resources.html\n\nas still in coding?","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":137,"context_line":"The spec `CPU resource tracking`_  introduces the ``PCPU`` and ``VCPU``"},{"line_number":138,"context_line":"resources and the host CPUs will be partitioned into up to three groups, the"},{"line_number":139,"context_line":"``dedicated``, ``shared`` and ``reserved`` group respectively. This spec is"},{"line_number":140,"context_line":"proposed based on the usage of these host CPU groups. Considering that the"},{"line_number":141,"context_line":"implementation of spec is still in coding stage, the change over ``NUMACell``"},{"line_number":142,"context_line":"can be fully discussed whenever the dependency spec code is done."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"For ``InstanceNUMACell``, to store the instance ``dedicated`` CPU information,"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_c29a4312","line":141,"range":{"start_line":140,"start_character":54,"end_line":141,"end_character":48},"in_reply_to":"7faddb67_f3b9b7cb","updated":"2019-07-19 03:26:58.000000000","message":"yes, he is referring to that spec.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":138,"context_line":"resources and the host CPUs will be partitioned into up to three groups, the"},{"line_number":139,"context_line":"``dedicated``, ``shared`` and ``reserved`` group respectively. This spec is"},{"line_number":140,"context_line":"proposed based on the usage of these host CPU groups. Considering that the"},{"line_number":141,"context_line":"implementation of spec is still in coding stage, the change over ``NUMACell``"},{"line_number":142,"context_line":"can be fully discussed whenever the dependency spec code is done."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"For ``InstanceNUMACell``, to store the instance ``dedicated`` CPU information,"},{"line_number":145,"context_line":"it is proposed to keep the ``dedicated`` CPU information of this instance NUMA"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_d3e91bb7","line":142,"range":{"start_line":141,"start_character":49,"end_line":142,"end_character":65},"updated":"2019-07-12 12:48:19.000000000","message":"with https://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-resources.html all vCPU and pCPU inventories will be on the compute node RP and the numa topology filter will continue to filter host on the numa constraints. so i think this is all going to be done as part of that spec but i suspect your going to have a dependency on  https://review.opendev.org/#/c/552924/ \nwhich introduces NUMA topologies to placement if you want to do anything more complex then what will be don in the cpu resouce tracking spec.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"resources and the host CPUs will be partitioned into up to three groups, the"},{"line_number":139,"context_line":"``dedicated``, ``shared`` and ``reserved`` group respectively. This spec is"},{"line_number":140,"context_line":"proposed based on the usage of these host CPU groups. Considering that the"},{"line_number":141,"context_line":"implementation of spec is still in coding stage, the change over ``NUMACell``"},{"line_number":142,"context_line":"can be fully discussed whenever the dependency spec code is done."},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"For ``InstanceNUMACell``, to store the instance ``dedicated`` CPU information,"},{"line_number":145,"context_line":"it is proposed to keep the ``dedicated`` CPU information of this instance NUMA"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_a2c067e2","line":142,"range":{"start_line":141,"start_character":49,"end_line":142,"end_character":65},"in_reply_to":"7faddb67_d3e91bb7","updated":"2019-07-19 03:26:58.000000000","message":"emm...it doesn\u0027t sound like a dependence for this spec. I guess the main part is let the virt driver can pin part of its vcpus to pcpus.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Emulator thread policy"},{"line_number":152,"context_line":"----------------------"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"If any instance vCPU is declared as a ``dedicated`` CPU, then it follows the"},{"line_number":155,"context_line":"existing emulator thread scheduling policy for the instance with a"},{"line_number":156,"context_line":"``dedicated`` CPU allocation policy, and select the ``dedicated`` emulator"},{"line_number":157,"context_line":"thread from ``PCPU`` resources. The emulator thread scheduling behavior in"},{"line_number":158,"context_line":"other environments keeps consistent with existing emulator scheduling rules"},{"line_number":159,"context_line":"under the same environments."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":".. note::"},{"line_number":162,"context_line":"    For exisiting eumulator threads policy please refer to"},{"line_number":163,"context_line":"    `Emulator threads policy`_."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Alternatives"},{"line_number":166,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_538d2bd1","line":163,"range":{"start_line":154,"start_character":0,"end_line":163,"end_character":31},"updated":"2019-07-12 12:48:19.000000000","message":"this is confusign to me.\n\nwe kind of want to remove teh emulator thread policy entirely.\n\nif you set hw:emulator_threads_policy\u003disolate yes the emulator would be schduled to a dedicated PCPU\n\nbut the defualt is share and since cpu_shared_policy will almost always be set going forward that will mean the defualt behavior is to run the emulator threads on the shared cpu set\nbased on https://specs.openstack.org/openstack/nova-specs/specs/rocky/approved/libvirt-emulator-threads-policy.html\n\ni would just remove this section","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":151,"context_line":"Emulator thread policy"},{"line_number":152,"context_line":"----------------------"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"If any instance vCPU is declared as a ``dedicated`` CPU, then it follows the"},{"line_number":155,"context_line":"existing emulator thread scheduling policy for the instance with a"},{"line_number":156,"context_line":"``dedicated`` CPU allocation policy, and select the ``dedicated`` emulator"},{"line_number":157,"context_line":"thread from ``PCPU`` resources. The emulator thread scheduling behavior in"},{"line_number":158,"context_line":"other environments keeps consistent with existing emulator scheduling rules"},{"line_number":159,"context_line":"under the same environments."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":".. note::"},{"line_number":162,"context_line":"    For exisiting eumulator threads policy please refer to"},{"line_number":163,"context_line":"    `Emulator threads policy`_."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Alternatives"},{"line_number":166,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_427413cf","line":163,"range":{"start_line":154,"start_character":0,"end_line":163,"end_character":31},"in_reply_to":"7faddb67_538d2bd1","updated":"2019-07-19 03:26:58.000000000","message":"I guess we don\u0027t have any proposal for remove the emulate thread policy now? So in the future we dont\u0027 want to support the dedicated emulator thread?","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b206efb74fa9201d5021c0d92c1f6286292f362c","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Tracking dedicated CPU through a new flavor extra specs"},{"line_number":169,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Instead of extending the ``hw:cpu_policy`` through adding a third instance CPU"},{"line_number":172,"context_line":"allocation policy, the dedicated vCPU should be tracked through adding a new"},{"line_number":173,"context_line":"extra specs and image metadata::"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_9323a3bd","line":171,"range":{"start_line":171,"start_character":25,"end_line":171,"end_character":42},"updated":"2019-07-12 12:48:19.000000000","message":"if it was not clear above i really really hate the current proposal to cram the core mask into the hw:cpu_policy\n\nbut as i pointed out on line we should have 1 addtional extra sepc\nhw:numa_dedicated_cpus[.\u003cnuma node\u003e]\u003d\u003clist of cores\u003e\n\ne.g\nhw:numa_dedicated_cpus\u003d1-3\nhw:numa_dedicated_cpus.0\u003d2,3\nhw:numa_dedicated_cpus.1\u003d6,7","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"64cb78c560d5cf966344658328df7e6ebf05836e","unresolved":false,"context_lines":[{"line_number":168,"context_line":"Tracking dedicated CPU through a new flavor extra specs"},{"line_number":169,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"Instead of extending the ``hw:cpu_policy`` through adding a third instance CPU"},{"line_number":172,"context_line":"allocation policy, the dedicated vCPU should be tracked through adding a new"},{"line_number":173,"context_line":"extra specs and image metadata::"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7faddb67_82476b77","line":171,"range":{"start_line":171,"start_character":25,"end_line":171,"end_character":42},"in_reply_to":"7faddb67_9323a3bd","updated":"2019-07-19 03:26:58.000000000","message":"may only concern is that numa node id info is useless.","commit_id":"99a209d7a99abeab7a3aefb9c05c5435ab8bb588"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"08239e9534b4d4eb79f43ce3685696808af5534e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"      memory_mb\u003d512"},{"line_number":82,"context_line":"      extra_specs:"},{"line_number":83,"context_line":"        hw:cpu_policy\u003ddedicated"},{"line_number":84,"context_line":"        hw:cpu_dedicated_mask\u003d0,2"},{"line_number":85,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_d5dae677","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":33},"updated":"2019-07-22 07:58:49.000000000","message":"If copy the rules from \u0027hw:cpu_realtime_mask\u0027 totally, it is not valid.\n\n@Sean @Alex,\n\nThe \u0027cpu_realtime_mask\u0027 specifies the non-realtime vCPUs, and is required to start with a \u0027^\u0027. Refer to section **CPU real-time policy** in https://docs.openstack.org/nova/latest/user/flavors.html\n\nFor making vCPU 0,2 as non-realtime CPUs, the extra specs should be used like these::\n\n    hw:cpu_realtime\u003dyes\n    hw:cpu_realtime_mask\u003d^0,^2\n\nI don\u0027t think \u0027cpu_realtime_mask\u0027 presents an intuitive way to define the non-realtime vCPUs since it must have a \u0027^\u0027 prefix before the CPU list.\n\nCan we also accept cpu set string that does not prefix with a \u0027^\u0027 sign, and perform following operation for final dedicated CPU list (only valid when hw:cpu_policy\u003ddecated):\n\n    Real_Dedicated_CPUs \u003d all_instance_cpus AND \n \"vCPU in \u0027hw:cpu_realtime_mask\u0027\"\n\nOne example is: \n\n    flavor.cpus\u003d6\n    hw:cpu_policy\u003ddedicated\n    hw:cpu_dedicated_mask\u003d0-2  \u003c- ^3-5 here has same effect\n\nvCPU 0-2 will be the dedicated vCPUs and vCPU 3-5 will be the shared vCPUs.","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1b6126a62533816667fcb6828d8df4b29015cfa3","unresolved":false,"context_lines":[{"line_number":81,"context_line":"      memory_mb\u003d512"},{"line_number":82,"context_line":"      extra_specs:"},{"line_number":83,"context_line":"        hw:cpu_policy\u003ddedicated"},{"line_number":84,"context_line":"        hw:cpu_dedicated_mask\u003d0,2"},{"line_number":85,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_22dc1045","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":33},"in_reply_to":"7faddb67_38976e93","updated":"2019-07-26 04:30:50.000000000","message":"@Sean, the cpu_realtime_mask is special one I think https://github.com/openstack/nova/blob/master/nova/virt/hardware.py#L1470, \n\n\"parse_cpu_spec(\"0-%d,%s\" % (flavor.vcpus - 1, mask))\"\n\nWe added all the vcpu ids in the code, that mean if you just input \"1,3\", Then the code convert it to \"0-4,1,3\". Then it is meaningless. It is meanful when you use \u0027^\u0027.","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"15476090576fae9649d2a2bf6237b962c698b784","unresolved":false,"context_lines":[{"line_number":81,"context_line":"      memory_mb\u003d512"},{"line_number":82,"context_line":"      extra_specs:"},{"line_number":83,"context_line":"        hw:cpu_policy\u003ddedicated"},{"line_number":84,"context_line":"        hw:cpu_dedicated_mask\u003d0,2"},{"line_number":85,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_38976e93","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":33},"in_reply_to":"7faddb67_757def6c","updated":"2019-07-25 15:17:35.000000000","message":"i think you missed my comment.\n^ is not required by cpu_realtime_mask\nwe support anything that is valide in the vcpu_pin_set.\n\nwe should just reuse the functionality\n\nthe example used for realtime mask uses the negation because in general wee will want all cpus to be realtime except a limmited set.\n\nwe shoudl jsut use the same function as i said above","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e6459f73ab35f94fea2852faeac5dfb46f8cdadc","unresolved":false,"context_lines":[{"line_number":81,"context_line":"      memory_mb\u003d512"},{"line_number":82,"context_line":"      extra_specs:"},{"line_number":83,"context_line":"        hw:cpu_policy\u003ddedicated"},{"line_number":84,"context_line":"        hw:cpu_dedicated_mask\u003d0,2"},{"line_number":85,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_757def6c","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":33},"in_reply_to":"7faddb67_d5dae677","updated":"2019-07-25 14:35:04.000000000","message":"I agree completely with this. \u0027cpu_realtime_mask\u0027 is definitely not intuitive and shouldn\u0027t be copied. +1 to not needing the \u0027^\u0027","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8bd206d7294eee54b3ee75324b7928a5c0dde092","unresolved":false,"context_lines":[{"line_number":81,"context_line":"      memory_mb\u003d512"},{"line_number":82,"context_line":"      extra_specs:"},{"line_number":83,"context_line":"        hw:cpu_policy\u003ddedicated"},{"line_number":84,"context_line":"        hw:cpu_dedicated_mask\u003d0,2"},{"line_number":85,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0,2`` indicates that vCPU 0 and 2 are"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_a389f026","line":84,"range":{"start_line":84,"start_character":8,"end_line":84,"end_character":33},"in_reply_to":"7faddb67_d5dae677","updated":"2019-07-25 14:34:53.000000000","message":"the  hw:cpu_realtime_mask does not require teh ^\n\n^ means not\n\nyou can write\n\nhw:cpu_realtime_mask\u003d^0,^2\nas  hw:cpu_realtime_mask\u003d1,3\nand its the same assuming 4 cpus.\n\nwe assumed that its more common for the majority of the cores to be realtime to the negation with ^ was shown\n\nbut as far as i know we already support \n\nranges e.g. 1-4\nlists e.g. 1,2,3,4\nnegations e.g. ^3\n\nand cobmibiation of the above.\n\nso i would expect that we would support the same for\nhw:cpu_dedicated_mask.\n\nalso the mose comon case i know of is that we would reserve core 0 for the os on a shared core\n\nso i expect the most common case for hw:cpu_dedicated_mask\n\nwill be hw:cpu_dedicated_mask\u003d^0\n\ne.g. all core excpt the first are pinned and the house keeping core which is almost always core 0 would be form the shared set. that would be the same as hw:cpu_dedicated_mask\u003d1-3 agin assuming 4 cpus totoal.\n\n\nwe use the same cpu spec pasrser as we use for pasting the vcpu pin set to pars the mask \n\nhttps://github.com/openstack/nova/blob/2c0cb71fb0ac0d502dc9fed24211e1ef15407b8f/nova/virt/hardware.py#L1470\n\n\nwhich is implemented here \nhttps://github.com/openstack/nova/blob/2c0cb71fb0ac0d502dc9fed24211e1ef15407b8f/nova/virt/hardware.py#L74-L133\n\nso we should just use that function to parse the \nhw:cpu_dedicated_mask too.","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8bd206d7294eee54b3ee75324b7928a5c0dde092","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Tracking ``dedicated`` and ``shared`` vCPUs in host and instance NUMA cell"},{"line_number":130,"context_line":"--------------------------------------------------------------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Both ``NUMACell`` and ``InstanceNUMACell`` data objects need to be updated to"},{"line_number":133,"context_line":"track the ``dedicated`` and ``shared`` CPU list associated with the host and"},{"line_number":134,"context_line":"instance NUMA node."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_e3060821","line":132,"range":{"start_line":132,"start_character":0,"end_line":132,"end_character":17},"updated":"2019-07-25 14:34:53.000000000","message":"the hos numa cell is alreay being updated by the cpu resouce tracking spec to track shared and dedicated cpu sets","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8bd206d7294eee54b3ee75324b7928a5c0dde092","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Tracking ``dedicated`` and ``shared`` vCPUs in host and instance NUMA cell"},{"line_number":130,"context_line":"--------------------------------------------------------------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Both ``NUMACell`` and ``InstanceNUMACell`` data objects need to be updated to"},{"line_number":133,"context_line":"track the ``dedicated`` and ``shared`` CPU list associated with the host and"},{"line_number":134,"context_line":"instance NUMA node."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_95598b36","line":132,"range":{"start_line":132,"start_character":24,"end_line":132,"end_character":40},"updated":"2019-07-25 14:34:53.000000000","message":"the instance numa toploty should not need to be updated\n\nwe already track the pinned cores in the instance numa toplogy https://github.com/openstack/nova/blob/2c0cb71fb0ac0d502dc9fed24211e1ef15407b8f/nova/objects/instance_numa_topology.py#L54\n\nand the shared cores are just the remainder.\n\nwe also will have the mask in the flavor so we should not need any canges to the instance numa cell object","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"1b6126a62533816667fcb6828d8df4b29015cfa3","unresolved":false,"context_lines":[{"line_number":129,"context_line":"Tracking ``dedicated`` and ``shared`` vCPUs in host and instance NUMA cell"},{"line_number":130,"context_line":"--------------------------------------------------------------------------"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Both ``NUMACell`` and ``InstanceNUMACell`` data objects need to be updated to"},{"line_number":133,"context_line":"track the ``dedicated`` and ``shared`` CPU list associated with the host and"},{"line_number":134,"context_line":"instance NUMA node."},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_42dfcc39","line":132,"range":{"start_line":132,"start_character":0,"end_line":132,"end_character":17},"in_reply_to":"7faddb67_e3060821","updated":"2019-07-26 04:30:50.000000000","message":"Yea, I agree with you, after reviewed Stephen\u0027s patch, I think we have everything we need in the model. And yes, we can reuse the cpu_pinning_raw.","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8bd206d7294eee54b3ee75324b7928a5c0dde092","unresolved":false,"context_lines":[{"line_number":140,"context_line":"is still in coding stage, the change over ``NUMACell`` can be fully discussed"},{"line_number":141,"context_line":"whenever the dependency spec code is done."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"For ``InstanceNUMACell``, to store the instance ``dedicated`` CPU information,"},{"line_number":144,"context_line":"it is proposed to keep the ``dedicated`` CPU information of this instance NUMA"},{"line_number":145,"context_line":"cell in the keys of ``InstanceNUMACell.cpu_pinning_raw`` in creating the"},{"line_number":146,"context_line":"``InstanceNUMACell`` data object for specific instance NUMA node. The instance"},{"line_number":147,"context_line":"NUMA node ``shared`` CPUs could be derived by subtracting"},{"line_number":148,"context_line":"``InstanceNUMACell.cpu_pinning_raw.keys()`` from ``InstanceNUMACell.cpuset``."},{"line_number":149,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_15b35b4f","line":146,"range":{"start_line":143,"start_character":0,"end_line":146,"end_character":65},"updated":"2019-07-25 14:34:53.000000000","message":"this is what we do today the only differenece is that we will nolonger have an entry for all guest vcpu in mearly the pinned ones that are declared in the mask.","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8bd206d7294eee54b3ee75324b7928a5c0dde092","unresolved":false,"context_lines":[{"line_number":144,"context_line":"it is proposed to keep the ``dedicated`` CPU information of this instance NUMA"},{"line_number":145,"context_line":"cell in the keys of ``InstanceNUMACell.cpu_pinning_raw`` in creating the"},{"line_number":146,"context_line":"``InstanceNUMACell`` data object for specific instance NUMA node. The instance"},{"line_number":147,"context_line":"NUMA node ``shared`` CPUs could be derived by subtracting"},{"line_number":148,"context_line":"``InstanceNUMACell.cpu_pinning_raw.keys()`` from ``InstanceNUMACell.cpuset``."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Alternatives"},{"line_number":151,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_75a40f09","line":148,"range":{"start_line":147,"start_character":20,"end_line":148,"end_character":77},"updated":"2019-07-25 14:34:53.000000000","message":"we could but we dont need too.\nthe shared set will be caulated but looking at the numa local subset of the host shared_cpu_set config option","commit_id":"831b9d003995b57b548a2779801f9de43b1243ca"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-pcpu-and-vcpu-in-one-instance"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The spec `CPU resource tracking`_ splits host CPUs into the ``PCPU`` resources"},{"line_number":12,"context_line":"and the ``VCPU`` resources, make it possible to run instances of ``dedicated``"},{"line_number":13,"context_line":"CPU allocation policy and instances of ``shared`` CPU allocation policy on the"},{"line_number":14,"context_line":"same host. This spec aims to create such kind of instance that some of the CPUs"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_158cbb7d","line":11,"range":{"start_line":11,"start_character":56,"end_line":11,"end_character":59},"updated":"2019-07-25 15:11:00.000000000","message":"drop","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":9,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-pcpu-and-vcpu-in-one-instance"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The spec `CPU resource tracking`_ splits host CPUs into the ``PCPU`` resources"},{"line_number":12,"context_line":"and the ``VCPU`` resources, make it possible to run instances of ``dedicated``"},{"line_number":13,"context_line":"CPU allocation policy and instances of ``shared`` CPU allocation policy on the"},{"line_number":14,"context_line":"same host. This spec aims to create such kind of instance that some of the CPUs"},{"line_number":15,"context_line":"are dedicated (``PCPU``) CPUs and the remaining CPUs are shared (``VCPU``)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_b5e84716","line":12,"range":{"start_line":12,"start_character":4,"end_line":12,"end_character":7},"updated":"2019-07-25 15:11:00.000000000","message":"drop","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":9,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-pcpu-and-vcpu-in-one-instance"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The spec `CPU resource tracking`_ splits host CPUs into the ``PCPU`` resources"},{"line_number":12,"context_line":"and the ``VCPU`` resources, make it possible to run instances of ``dedicated``"},{"line_number":13,"context_line":"CPU allocation policy and instances of ``shared`` CPU allocation policy on the"},{"line_number":14,"context_line":"same host. This spec aims to create such kind of instance that some of the CPUs"},{"line_number":15,"context_line":"are dedicated (``PCPU``) CPUs and the remaining CPUs are shared (``VCPU``)"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_d5eb830f","line":12,"range":{"start_line":12,"start_character":28,"end_line":12,"end_character":32},"updated":"2019-07-25 15:11:00.000000000","message":"making","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":31,"context_line":"As a NFV user, I want CPUs of different performance priority to meet the"},{"line_number":32,"context_line":"characterization of workloads from different sub-module. One example is the OVS"},{"line_number":33,"context_line":"workload, in which the CPUs for the data plane are usually required to respond"},{"line_number":34,"context_line":"to network traffic as quick as possible to seek the high performance, while"},{"line_number":35,"context_line":"the control plane CPUs may not have too much pressure on performance and could"},{"line_number":36,"context_line":"be assigned with CPUs that shared by other instances. This proposal in this"},{"line_number":37,"context_line":"spec could help to deploy more similar OVS nodes on the same host without force"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_55d79350","line":34,"range":{"start_line":34,"start_character":43,"end_line":34,"end_character":47},"updated":"2019-07-25 15:11:00.000000000","message":"provide","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":31,"context_line":"As a NFV user, I want CPUs of different performance priority to meet the"},{"line_number":32,"context_line":"characterization of workloads from different sub-module. One example is the OVS"},{"line_number":33,"context_line":"workload, in which the CPUs for the data plane are usually required to respond"},{"line_number":34,"context_line":"to network traffic as quick as possible to seek the high performance, while"},{"line_number":35,"context_line":"the control plane CPUs may not have too much pressure on performance and could"},{"line_number":36,"context_line":"be assigned with CPUs that shared by other instances. This proposal in this"},{"line_number":37,"context_line":"spec could help to deploy more similar OVS nodes on the same host without force"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_35dc5773","line":34,"range":{"start_line":34,"start_character":22,"end_line":34,"end_character":27},"updated":"2019-07-25 15:11:00.000000000","message":"quickly ?","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":33,"context_line":"workload, in which the CPUs for the data plane are usually required to respond"},{"line_number":34,"context_line":"to network traffic as quick as possible to seek the high performance, while"},{"line_number":35,"context_line":"the control plane CPUs may not have too much pressure on performance and could"},{"line_number":36,"context_line":"be assigned with CPUs that shared by other instances. This proposal in this"},{"line_number":37,"context_line":"spec could help to deploy more similar OVS nodes on the same host without force"},{"line_number":38,"context_line":"all instance CPUs to occupy the host CPUs exclusively."},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_75cbafa4","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":26},"updated":"2019-07-25 15:11:00.000000000","message":"to CPUs that are","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The flavor extra specs ``hw:cpu_policy`` and image metadata ``hw_cpu_policy``"},{"line_number":52,"context_line":"determine the instance CPU allocation policy, in a granularity of for all"},{"line_number":53,"context_line":"instance CPUs, to be ``dedicated`` or ``shared``. When the ``hw:cpu_policy`` is"},{"line_number":54,"context_line":"``dedicated`` Proposed a new extra spec to specify partial CPUs as dedicated::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  ``hw:cpu_dedicated_mask\u003d\u003ccpuset string\u003e``"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The new extra spec introduces the CPU allocation policy over individual"},{"line_number":59,"context_line":"instance CPU, in contrast to the ``shared`` and ``dedicated`` policies which"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_556eb396","line":56,"range":{"start_line":53,"start_character":50,"end_line":56,"end_character":43},"updated":"2019-07-25 15:11:00.000000000","message":"I\u0027m okay with the \u0027hw:cpu_dedicated_mask\u0027 extra spec, but I\u0027d much rather we introduced a new policy to define this. How about \u0027hw:cpu_policy\u003dcombined\u0027? If \u0027hw:cpu_policy\u003dcombined\u0027 is defined, \u0027hw:cpu_dedicated_mask\u0027 must be defined. If it isn\u0027t defined, defining \u0027hw:cpu_dedicated_mask\u0027 would be an error.","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"d31b4fe77f53ea3162d96c7459f1ed9ae51e9dac","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The flavor extra specs ``hw:cpu_policy`` and image metadata ``hw_cpu_policy``"},{"line_number":52,"context_line":"determine the instance CPU allocation policy, in a granularity of for all"},{"line_number":53,"context_line":"instance CPUs, to be ``dedicated`` or ``shared``. When the ``hw:cpu_policy`` is"},{"line_number":54,"context_line":"``dedicated`` Proposed a new extra spec to specify partial CPUs as dedicated::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  ``hw:cpu_dedicated_mask\u003d\u003ccpuset string\u003e``"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The new extra spec introduces the CPU allocation policy over individual"},{"line_number":59,"context_line":"instance CPU, in contrast to the ``shared`` and ``dedicated`` policies which"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_e36ca109","line":56,"range":{"start_line":53,"start_character":50,"end_line":56,"end_character":43},"in_reply_to":"7faddb67_556eb396","updated":"2019-07-29 10:44:19.000000000","message":"@Stephen,\n\nI think \u0027hw:cpu_dedicated_mask\u0027 along with \u0027hw:cpu_policy\u003ddedicated\u0027 will be simpler when considering the impact of upgrade. I also record your suggestion of this comment as an alternative in V6 with a slight difference that using \u0027mixed\u0027 instead of \u0027combined\u0027 for wording, please review.\n\nThanks","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"acc1965d2c13ec4a7aeb0d2828466ee9b92c5cce","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The flavor extra specs ``hw:cpu_policy`` and image metadata ``hw_cpu_policy``"},{"line_number":52,"context_line":"determine the instance CPU allocation policy, in a granularity of for all"},{"line_number":53,"context_line":"instance CPUs, to be ``dedicated`` or ``shared``. When the ``hw:cpu_policy`` is"},{"line_number":54,"context_line":"``dedicated`` Proposed a new extra spec to specify partial CPUs as dedicated::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  ``hw:cpu_dedicated_mask\u003d\u003ccpuset string\u003e``"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The new extra spec introduces the CPU allocation policy over individual"},{"line_number":59,"context_line":"instance CPU, in contrast to the ``shared`` and ``dedicated`` policies which"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_6310c7a9","line":56,"range":{"start_line":53,"start_character":50,"end_line":56,"end_character":43},"in_reply_to":"7faddb67_556eb396","updated":"2019-07-26 13:30:08.000000000","message":"I understand that a new \u0027combined\u0027 policy will not change the definition of original \u0027dedicated\u0027 policy, and we still can call an instance with all vCPUs allocated from host\u0027s dedicated cpu group \u0027dedicated\u0027 instance. Not a bad idea.","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f1dc8bda6812ef44a9364f9411f54aae4217d4a1","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The flavor extra specs ``hw:cpu_policy`` and image metadata ``hw_cpu_policy``"},{"line_number":52,"context_line":"determine the instance CPU allocation policy, in a granularity of for all"},{"line_number":53,"context_line":"instance CPUs, to be ``dedicated`` or ``shared``. When the ``hw:cpu_policy`` is"},{"line_number":54,"context_line":"``dedicated`` Proposed a new extra spec to specify partial CPUs as dedicated::"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"  ``hw:cpu_dedicated_mask\u003d\u003ccpuset string\u003e``"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The new extra spec introduces the CPU allocation policy over individual"},{"line_number":59,"context_line":"instance CPU, in contrast to the ``shared`` and ``dedicated`` policies which"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_9dc3b489","line":56,"range":{"start_line":53,"start_character":50,"end_line":56,"end_character":43},"in_reply_to":"7faddb67_e36ca109","updated":"2019-07-30 16:05:24.000000000","message":"Have reviewed. I don\u0027t think upgrade impacts are a serious concern here. If users want to use these new flavor extra specs for existing instances, they will need to resize their instances. As such, they will have an opportunity to switch the value of \u0027hw:cpu_policy\u0027 from \u0027dedicated\u0027 to \u0027mixed\u0027 while they are settting \u0027hw:cpu_dedicated_mask\u0027. If anything, upgrades will be simpler with a different policy since it will be clearer to the user that this is a new thing that wasn\u0027t possible previously.","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The ``\u003ccpuset string\u003e`` is a cpuset string, such as \u00270-1,5\u0027 specifying the"},{"line_number":64,"context_line":"instance CPUs that take the ``dedicated`` CPU allocation policy, and will be"},{"line_number":65,"context_line":"allocated from ``PCPU`` resources.The instance CPUs that not appear in"},{"line_number":66,"context_line":"``\u003ccpuset string\u003e`` list are ``shared`` CPUs, and be allocated from host"},{"line_number":67,"context_line":"``VCPU`` resources. An empty or invalid cpuset string here will cause an"},{"line_number":68,"context_line":"exception."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_f5c47f42","line":65,"range":{"start_line":65,"start_character":57,"end_line":65,"end_character":60},"updated":"2019-07-25 15:11:00.000000000","message":"do not","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The ``\u003ccpuset string\u003e`` is a cpuset string, such as \u00270-1,5\u0027 specifying the"},{"line_number":64,"context_line":"instance CPUs that take the ``dedicated`` CPU allocation policy, and will be"},{"line_number":65,"context_line":"allocated from ``PCPU`` resources.The instance CPUs that not appear in"},{"line_number":66,"context_line":"``\u003ccpuset string\u003e`` list are ``shared`` CPUs, and be allocated from host"},{"line_number":67,"context_line":"``VCPU`` resources. An empty or invalid cpuset string here will cause an"},{"line_number":68,"context_line":"exception."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_95e98bb8","line":65,"range":{"start_line":65,"start_character":33,"end_line":65,"end_character":34},"updated":"2019-07-25 15:11:00.000000000","message":"missing space after full stop","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0,2`` indicates that vCPU 0 and 2 are"},{"line_number":88,"context_line":"``dedicated`` CPUs that will be 1:1 pinned to the certain host CPU specified in"},{"line_number":89,"context_line":"``CONF.compute.cpu_dedicated_set``, and vCPU 1 and 3 are ``shared`` CPUs that"},{"line_number":90,"context_line":"will float on a range of host CPUs that belong to CPUs specified in"},{"line_number":91,"context_line":"``CONF.compute.cpu_shared_set``."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_d51ce378","line":88,"range":{"start_line":88,"start_character":43,"end_line":88,"end_character":66},"updated":"2019-07-25 15:11:00.000000000","message":"to arbitrary host CPUs\n\n(we don\u0027t allow a way to say \"pin guest core N to host core M and that can\u0027t change)","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8fe9de506e6785a4ce87699fad7995949d81b767","unresolved":false,"context_lines":[{"line_number":124,"context_line":"instance NUMA node."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The spec `CPU resource tracking`_  introduces the ``PCPU`` and ``VCPU``"},{"line_number":127,"context_line":"resources and the host CPUs will be partitioned into up to tow groups, the"},{"line_number":128,"context_line":"``dedicated`` and ``shared`` group respectively. This spec is proposed based on"},{"line_number":129,"context_line":"the usage of these host CPU groups. Considering that the implementation of spec"},{"line_number":130,"context_line":"is still in coding stage, the change over ``NUMACell`` can be fully discussed"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7faddb67_f506bf20","line":127,"range":{"start_line":127,"start_character":59,"end_line":127,"end_character":62},"updated":"2019-07-25 15:11:00.000000000","message":"two","commit_id":"642712e5bc2f77697d37883a0697e9533de2eadd"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"369d7b7d4d51d1fc15824f3e78cb3101b1e7e72d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Extending the instance CPU allocation policy"},{"line_number":48,"context_line":"--------------------------------------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"``dedicated`` and ``shared`` are the instance CPU allocation policies that"},{"line_number":51,"context_line":"determine how instance CPU is scheduled on host CPU. Currently all instance"},{"line_number":52,"context_line":"CPUs in one instance are required to have the same policy. We\u0027d like to make"},{"line_number":53,"context_line":"each instance CPU be possible to select its own policy, to be pinned on a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_bbd326d5","line":50,"range":{"start_line":50,"start_character":2,"end_line":50,"end_character":11},"updated":"2019-07-30 03:42:18.000000000","message":"nit:s/dedicated/Dedicated","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1926fdd2e31389be52b27525f04af043d7152d3c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Extending the instance CPU allocation policy"},{"line_number":48,"context_line":"--------------------------------------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"``dedicated`` and ``shared`` are the instance CPU allocation policies that"},{"line_number":51,"context_line":"determine how instance CPU is scheduled on host CPU. Currently all instance"},{"line_number":52,"context_line":"CPUs in one instance are required to have the same policy. We\u0027d like to make"},{"line_number":53,"context_line":"each instance CPU be possible to select its own policy, to be pinned on a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_c7ce2e59","line":50,"range":{"start_line":50,"start_character":2,"end_line":50,"end_character":11},"in_reply_to":"7faddb67_1fa81f1e","updated":"2019-07-31 01:19:35.000000000","message":"I am ok.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d2415088ccbc71f91ebbbe28dc3455abf88a1370","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Extending the instance CPU allocation policy"},{"line_number":48,"context_line":"--------------------------------------------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"``dedicated`` and ``shared`` are the instance CPU allocation policies that"},{"line_number":51,"context_line":"determine how instance CPU is scheduled on host CPU. Currently all instance"},{"line_number":52,"context_line":"CPUs in one instance are required to have the same policy. We\u0027d like to make"},{"line_number":53,"context_line":"each instance CPU be possible to select its own policy, to be pinned on a"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_1fa81f1e","line":50,"range":{"start_line":50,"start_character":2,"end_line":50,"end_character":11},"in_reply_to":"7faddb67_bbd326d5","updated":"2019-07-30 14:19:21.000000000","message":"these are enum values and should be lowercase","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"1f005dc25a7997abd5315af58706e52976c56428","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"and an image property::"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    hw_cpu_dedicatec_mask\u003d\u003ccpu set string\u003e"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the"},{"line_number":64,"context_line":"``dedicated`` policy is taken from flavor ``hw:cpu_policy``. Similarly,"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_a32469c7","line":61,"range":{"start_line":61,"start_character":4,"end_line":61,"end_character":25},"updated":"2019-07-29 10:47:01.000000000","message":"typo\n\nhw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ba93058c881e707675a54e166fc739993574ca7","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the"},{"line_number":64,"context_line":"``dedicated`` policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":65,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003d\u003ddedicated`` and"},{"line_number":66,"context_line":"``hw:cpu_policy`` is not specified. ``hw:cpu_dedicated_mask`` and"},{"line_number":67,"context_line":"``hw_cpu_dedicated_mask`` specify the CPUs that to be allocated from ``PCPU``"},{"line_number":68,"context_line":"resource, the rest of instance CPUs take the ``shared`` policy and are"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_fd9bc8c5","line":65,"range":{"start_line":65,"start_character":60,"end_line":65,"end_character":61},"updated":"2019-07-30 16:03:00.000000000","message":"nit: drop","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"c3ac6bf687be0067c1a5c0237750c8b9eb608288","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the"},{"line_number":64,"context_line":"``dedicated`` policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":65,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003d\u003ddedicated`` and"},{"line_number":66,"context_line":"``hw:cpu_policy`` is not specified. ``hw:cpu_dedicated_mask`` and"},{"line_number":67,"context_line":"``hw_cpu_dedicated_mask`` specify the CPUs that to be allocated from ``PCPU``"},{"line_number":68,"context_line":"resource, the rest of instance CPUs take the ``shared`` policy and are"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_21b4c7d0","line":65,"range":{"start_line":65,"start_character":60,"end_line":65,"end_character":61},"in_reply_to":"7faddb67_fd9bc8c5","updated":"2019-07-31 14:06:40.000000000","message":"Done","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"369d7b7d4d51d1fc15824f3e78cb3101b1e7e72d","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_76a943db","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"updated":"2019-07-30 03:42:18.000000000","message":"Recently, at the test site of one of our telecom customers, the system was required to meet the processing time-delay scenario.\n\nAt this time, we need to separately reserve the CPU to provide computing services (improve performance) for the host. This requires planning the vm\u0027s vCPU to be assigned to the corresponding pCPU, because the dedicated vCPU is set for the vm (flavor), but can not be assigned to the corresponding pCPU, can not predict the use of pCPU, can not do in the physical node Isolation allows the physical node to use this pCPU without other processes.\n\nFor example: If the vm\u0027s flavor-extra_spec is {\u0027extra_spec\u0027:{\u0027hw:cpu_policy\u0027\u003d\u0027dedicated\u0027, \u0027hw:cpu_dedicated_mask\u0027\u003d\u00270-1,5\u0027, \u0027hw:numa_nodes\u0027\u003d1}} and physical node\u0027s {\u0027pcpu\u0027: 0-5}, then after the vm is deployed, it will occupy 3 of the \u00270-5\u0027, but the corresponding relationship between the vCPU and the pCPU needs to be known after the vm is booted. Once the number of vms increases, the collection is very Inconvenient, if you can bind to the pCPU by specifying the vCPU, then this will make this scenario application friendly (currently it may increase the number of flavors of the same specification, unless [1] can be implemented).\n[1] https://review.opendev.org/#/c/663563/","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a33c40dbe37cf03132a8d0ece0a4a09ecb6594fe","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_045439fd","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_07e9a6b5","updated":"2019-07-31 14:29:50.000000000","message":"ok that is what this spec is intended to provide so i think we shoudl abandon this https://blueprints.launchpad.net/nova/+spec/specify-vcpu-bands-to-pcpu blueprint as it add confution since it implies this work is not sufficient.\n\nwe already have \nhttps://blueprints.launchpad.net/nova/+spec/use-pcpu-and-vcpu-in-one-instance\n\nto tack this work.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"1926fdd2e31389be52b27525f04af043d7152d3c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_07e9a6b5","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_2b735918","updated":"2019-07-31 01:19:35.000000000","message":"\u003e @brin if you are not asking for a way to specify the mapping \n \u003e between vcpu to pcpu in the flavor i retact my statemnet but i \n \u003e also want to be clear in the point above that we do not \n \u003e intened to allow modifying the mapping of guest cpus to host \n \u003e cpus outside of request some geust cpus be from the dedicated \n \u003e set and others form teh shared set.\n\n@sean-k-mooney, I know *specify* vcpu to pcpu will undermine the architecture of nova, this is not I want to say.\n\n \u003e I thought we were providing a way for the admin to say which \n \u003e host CPUs were going to be \"dedicated\" (PCPUs) and which \n \u003e \"shared\" (VCPUs). So if my instance requests PCPU:2,VCPU:3, \n \u003e they\u0027ll get two CPUs pinned from the dedicated pool and three \n \u003e virtual processor units floating across the shared pool.\n\nI agree with @efried, that\u0027s what I mean.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8dab1dde1fa182fa2a6a3a1091eeead7fe6aa534","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_3dc2c035","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_2b735918","updated":"2019-07-30 16:22:00.000000000","message":"\u003e you can map the high priorti cores to the cpu_dedicated_set\n \u003e and the low priortiy core to the shared set but nova/placmeent will\n \u003e not be aware of that unless you add a custom trati so it is\n \u003e incorrect to say \"PCPU:2,VCPU:3\" is a request two \"high priority\"\n \u003e and three \"normal priority\" core. it might result in that be we\n \u003e should not conflate the two thing.\n \u003e \n \u003e if you reqested\n \u003e \"PCPU:2,VCPU:3,CUSTOM_CPU_PRIORITISATION\u003drequired\"\n \u003e wher CUSTOM_CPU_PRIORITISATION is a trait that is only set on host\n \u003e that have that mapping it would be ok to phase that as \u0027a request\n \u003e two \"high priority\" and three \"normal priority\" cores\u0027 in your\n \u003e private cloud but i hope we will not encurage that pharsing without\n \u003e a trait in any documentation or reference architectures as its\n \u003e misleading otherwise as placmente and nova is not making any\n \u003e guratee about core pirority. i also think it should be an error to\n \u003e specify \"PCPU:2,VCPU:3\" if you dont have hw:cpu_policy\u003ddedicated.\n\nYeah, totally this. I wasn\u0027t trying to describe the full design of that use case, just enough of the bones of it to make sure that we were still able to cover it. \"Conflating\" PCPU\u003c\u003d\u003ehigh-priority/VCPU\u003c\u003d\u003enormal is how Jay suggested it be done, but the details (including a custom trait, how to set the CPU priorities, how to configure the cpu sets, how to build the flavors, etc.) will be a 100% downstream matter.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ba93058c881e707675a54e166fc739993574ca7","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_cb15e54a","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_5070c408","updated":"2019-07-30 16:03:00.000000000","message":"\u003e I thought we were providing a way for the admin to say which host\n \u003e CPUs were going to be \"dedicated\" (PCPUs) and which \"shared\"\n \u003e (VCPUs). So if my instance requests PCPU:2,VCPU:3, they\u0027ll get two\n \u003e CPUs pinned from the dedicated pool and three virtual processor\n \u003e units floating across the shared pool.\n \u003e \n \u003e True, you can\u0027t say which *specific* dedicated host procs you\u0027re\n \u003e going to get -- but you\u0027re guaranteed that whichever they are,\n \u003e they\u0027ll be from the dedicated set.\n \u003e \n \u003e Right???\n\nYes. This reads as if Brin Zhang was asking for the other option, a way to explicitly pin guest core N to host core M, which isn\u0027t an option for the reasons Sean points out. However, while we are planning to expose which guest cores are pinned and which are not, we should be clear that we\u0027re still not going to expose which host cores these individual guest cores are pinned to because that\u0027s not something we\u0027re going to do, right?","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ac743354055c626540e55ce3a9838fbd9495bc87","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_2b735918","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_5070c408","updated":"2019-07-30 15:55:41.000000000","message":"yes you can provided a mask per host to declare what cpus on that host can be used to pin vm cpus.\ngoing forward we will use the cpu_dedicated_set for that and currently you can use the vcpu_pin_set.\n\nhttps://blueprints.launchpad.net/nova/+spec/specify-vcpu-bands-to-pcpu has little detail of the usecase but given it was filed 4 weeks ago and we have had the ablity to spcify the cpu set in the config since juno i interpereted\n\nbrin\u0027s statment:\n\"Once the number of vms increases, the collection is very Inconvenient, if you can bind to the pCPU by specifying the vCPU, then this will make this scenario application friendly (currently it may increase the number of flavors of the same specification, unless [1] can be implemented). [1] https://review.opendev.org/#/c/663563/\"\n\nto implies a desire to be able to specify the vcpu to pcpu mapping via the flavor and not the config.\n\nif all that is being asked for is the ablity to declare what cpus are allows for shared and dedicated cpus via the config and ask for an amount of them then that is fine.\n\n\nthe high and low priortio core is a seperate topic.\n\nyou can map the high priorti cores to the cpu_dedicated_set \nand the low priortiy core to the shared set but nova/placmeent will not be aware of that unless you add a custom trati so it is incorrect to say \"PCPU:2,VCPU:3\" is a request two \"high priority\" and three \"normal priority\" core. it might result in that be we should not conflate the two thing.\n\nif you reqested \n\"PCPU:2,VCPU:3,CUSTOM_CPU_PRIORITISATION\u003drequired\"\nwher CUSTOM_CPU_PRIORITISATION is a trait that is only set on host that have that mapping it would be ok to phase that as \u0027a request two \"high priority\" and three \"normal priority\" cores\u0027 in your private cloud but i hope we will not encurage that pharsing without a trait in any documentation or reference architectures as its misleading otherwise as placmente and nova is not making any guratee about core pirority. i also think it should be an error to specify \"PCPU:2,VCPU:3\" if you dont have hw:cpu_policy\u003ddedicated.\n\n@brin if you are not asking for a way to specify the mapping between vcpu to pcpu in the flavor i retact my statemnet but i also want to be clear in the point above that we do not intened to allow modifying the mapping of guest cpus to host cpus outside of request some geust cpus be from the dedicated set and others form teh shared set.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d2415088ccbc71f91ebbbe28dc3455abf88a1370","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_bf154b4b","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_5ffa1775","updated":"2019-07-30 14:19:21.000000000","message":"@brin as an admin only interface we will be exposing this info but we will never allow you to explictly specify what host cores a guest is pinned to on a per instance basis.\n\nwe have rejected that several times so any attempt to force specific cores to be used via flaovr extra specs will be -3\u0027d\n\nif you want that level of contol you should use libvirt directly as it is expcltily breaking the cloud abstraction and is not in the scope of nova to provide support for.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"e4ab3af3b7465fe95afaa6113b9a9f043886cf1b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_91088928","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_76a943db","updated":"2019-07-30 05:43:09.000000000","message":"Hi Brin,\n\nMy understanding is that your customer wants the vCPU is pinning to a pre-defined pCPU, but in current Nova there is no way to bind the vCPU to some given host pCPU, right?\n\nWe are planned to let instance to know the result of pCPU-vCPU mapping after the instance is ready through \u0027meta-data\u0027 APIs, refer to  \u0027RestAPI Impact\u0027 section. So inside the instance it is possible to know which pCPU is associated with the pCPU,  Can this satisfy your customer\u0027s requirement?\n\nBut you can not choose the target host NUMA node for better memory or IO affinity, that might be a problem. And I noticed the community is proposing specs to solve this problem by adding NUMA PRs in placement.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"6c38278fe604d266723ffb2ae834332096315021","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_5ffa1775","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_91088928","updated":"2019-07-30 12:44:33.000000000","message":"\u003e My understanding is that your customer wants the vCPU is \n \u003e pinning to a pre-defined pCPU, but in current Nova there is no \n \u003e way to bind the vCPU to some given host pCPU, right?\n\nYeah, \u0027the vCPU is pinning to a pre-defined pCPU\u0027 this will make nova simpler.\n\n \u003e So inside the instance it is possible to know which pCPU is \n \u003e associated with the pCPU,  Can this satisfy your customer\u0027s \n \u003e requirement?\n\nYes, if you can explicitly show the mapping between vCPU and pCPU, then it has made great progress.\n\nThe previously drafted bp [1] was submitted to achieve the mapping between vCPU and pCPU. It seems that *this* spec has been implemented.\n\n[1] https://blueprints.launchpad.net/nova/+spec/specify-vcpu-bands-to-pcpu","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"fb7f984ea0fc6245059493b5aeab24b94de1e8c0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_5070c408","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_bf154b4b","updated":"2019-07-30 15:04:13.000000000","message":"I don\u0027t understand.\n\nI thought we were providing a way for the admin to say which host CPUs were going to be \"dedicated\" (PCPUs) and which \"shared\" (VCPUs). So if my instance requests PCPU:2,VCPU:3, they\u0027ll get two CPUs pinned from the dedicated pool and three virtual processor units floating across the shared pool.\n\nTrue, you can\u0027t say which *specific* dedicated host procs you\u0027re going to get -- but you\u0027re guaranteed that whichever they are, they\u0027ll be from the dedicated set.\n\nRight???\n\nBecause if so, this satisfies the use case just fine. The admin sets up specific CPUs to be e.g. \"high priority\" and then tells Nova that those are supposed to be the \"dedicated\" ones. The rest are then \"shared\". So you can ask for two \"high priority\" and three \"normal\" procs by saying PCPU:2,VCPU:3.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f6807d011d4495dae841d131055072fed187b246","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    of CPU numbers, or a caret followed by a CPU number to be excluded from a"},{"line_number":83,"context_line":"    previous range."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"An example::"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    flavor:"},{"line_number":88,"context_line":"      vcpus\u003d8"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_3df08091","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":12},"in_reply_to":"7faddb67_cb15e54a","updated":"2019-07-30 16:26:06.000000000","message":"that is not something we are going to do in this spec.\nhttps://review.opendev.org/#/c/621476/\nwould provide an admin only api to view that mapping for debug use only.\n\nit is a read only view and will not allow modifying the mapping.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ba93058c881e707675a54e166fc739993574ca7","unresolved":false,"context_lines":[{"line_number":104,"context_line":"A third policy for ``PCPU`` and ``VCPU`` mixed instance"},{"line_number":105,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A instance that have mixed CPUs allocating from ``PCPU`` resource and ``VCPU``"},{"line_number":108,"context_line":"resource is represented by a third instance CPU allocation policy::"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    hw:cpu_policy\u003dmixed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"or image property::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    hw_cpu_policy\u003dmixed"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The instance CPUs that to be allocated from ``PCPU`` resource are specified"},{"line_number":117,"context_line":"in corresponding extra spec::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    hw:cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"or image property::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_7d411839","line":125,"range":{"start_line":107,"start_character":0,"end_line":125,"end_character":66},"updated":"2019-07-30 16:03:00.000000000","message":"Personally, I *much* prefer this option. Stating that an instance\u0027s cores are dedicated when a mask is stating that only some of them are actually dedicated sounds confusing at best and possibly problematic (for those who mistakenly think this will work for older versions of nova that support plain old \u0027dedicated\u0027 policy) at worse. Is there a good technical reason we can\u0027t do this?","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a33c40dbe37cf03132a8d0ece0a4a09ecb6594fe","unresolved":false,"context_lines":[{"line_number":104,"context_line":"A third policy for ``PCPU`` and ``VCPU`` mixed instance"},{"line_number":105,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A instance that have mixed CPUs allocating from ``PCPU`` resource and ``VCPU``"},{"line_number":108,"context_line":"resource is represented by a third instance CPU allocation policy::"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    hw:cpu_policy\u003dmixed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"or image property::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    hw_cpu_policy\u003dmixed"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The instance CPUs that to be allocated from ``PCPU`` resource are specified"},{"line_number":117,"context_line":"in corresponding extra spec::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    hw:cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"or image property::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_01118b5d","line":125,"range":{"start_line":107,"start_character":0,"end_line":125,"end_character":66},"in_reply_to":"7faddb67_61be3fb5","updated":"2019-07-31 14:29:50.000000000","message":"i personally am neutral on this point\n\ni get why stephen wants it and i think it would simplfy the code in some respecst as the mixed behavior would only take effect if the mixed policy is set so that means we dont need to modify any of the logic for the existing shared or dedicated policy so im fine with that.\n\nto ues this feature you have to update your flavor or images anyway so so i dont consider this to have any upgade impact.\n\nso i have a slight preference for it just because its easyier to document but its not enough form me to say we must add a new type., but i dont have any reasons to not add a new type so no objections from me.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"c3ac6bf687be0067c1a5c0237750c8b9eb608288","unresolved":false,"context_lines":[{"line_number":104,"context_line":"A third policy for ``PCPU`` and ``VCPU`` mixed instance"},{"line_number":105,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A instance that have mixed CPUs allocating from ``PCPU`` resource and ``VCPU``"},{"line_number":108,"context_line":"resource is represented by a third instance CPU allocation policy::"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    hw:cpu_policy\u003dmixed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"or image property::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    hw_cpu_policy\u003dmixed"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The instance CPUs that to be allocated from ``PCPU`` resource are specified"},{"line_number":117,"context_line":"in corresponding extra spec::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    hw:cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"or image property::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_0eb53a7e","line":125,"range":{"start_line":107,"start_character":0,"end_line":125,"end_character":66},"in_reply_to":"7faddb67_7d411839","updated":"2019-07-31 14:06:40.000000000","message":"@Stephen I don\u0027t","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"c3ac6bf687be0067c1a5c0237750c8b9eb608288","unresolved":false,"context_lines":[{"line_number":104,"context_line":"A third policy for ``PCPU`` and ``VCPU`` mixed instance"},{"line_number":105,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"A instance that have mixed CPUs allocating from ``PCPU`` resource and ``VCPU``"},{"line_number":108,"context_line":"resource is represented by a third instance CPU allocation policy::"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    hw:cpu_policy\u003dmixed"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"or image property::"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    hw_cpu_policy\u003dmixed"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"The instance CPUs that to be allocated from ``PCPU`` resource are specified"},{"line_number":117,"context_line":"in corresponding extra spec::"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    hw:cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"or image property::"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_61be3fb5","line":125,"range":{"start_line":107,"start_character":0,"end_line":125,"end_character":66},"in_reply_to":"7faddb67_7d411839","updated":"2019-07-31 14:06:40.000000000","message":"@Stephen, technically we can do it. \n\nI need to update this spec to next version before this Thursday\u0027s Nova team meeting. If nobody objects *this alternative* before that time, I will make the alternative as the primary proposal.","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"369d7b7d4d51d1fc15824f3e78cb3101b1e7e72d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"----------"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* Add new instance CPU allocation policy ``dedicated:\u003ccpu set string\u003e``"},{"line_number":203,"context_line":"* Change Libvirt driver to let ``VCPU``s float on ``shared`` host CPUs per NUMA"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Dependencies"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_fb651e1e","line":203,"range":{"start_line":203,"start_character":31,"end_line":203,"end_character":40},"updated":"2019-07-30 03:42:18.000000000","message":"The display here [1] is very unfriendly. Maybe we can s/``VCPUs``/``VCP``s\n\n[1]http://logs.openstack.org/56/668656/6/check/openstack-tox-docs/312da7b/html/specs/train/approved/use-pcpu-vcpu-in-one-instance.html#work-items","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0ba93058c881e707675a54e166fc739993574ca7","unresolved":false,"context_lines":[{"line_number":200,"context_line":"----------"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* Add new instance CPU allocation policy ``dedicated:\u003ccpu set string\u003e``"},{"line_number":203,"context_line":"* Change Libvirt driver to let ``VCPU``s float on ``shared`` host CPUs per NUMA"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Dependencies"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_3d47204f","line":203,"range":{"start_line":203,"start_character":31,"end_line":203,"end_character":40},"in_reply_to":"7faddb67_100c8ca3","updated":"2019-07-30 16:03:00.000000000","message":"What he said ^","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b9da83b2feb399af0700b49cb60859d695f762cb","unresolved":false,"context_lines":[{"line_number":200,"context_line":"----------"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"* Add new instance CPU allocation policy ``dedicated:\u003ccpu set string\u003e``"},{"line_number":203,"context_line":"* Change Libvirt driver to let ``VCPU``s float on ``shared`` host CPUs per NUMA"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"Dependencies"},{"line_number":206,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_100c8ca3","line":203,"range":{"start_line":203,"start_character":31,"end_line":203,"end_character":40},"in_reply_to":"7faddb67_fb651e1e","updated":"2019-07-30 14:58:27.000000000","message":"To make this render sanely, there has to be whitespace after the closing ``, but you can escape the whitespace so it doesn\u0027t show up in the rendered version:\n\n ``VCPU``\\ s","commit_id":"ee47ff8a10ab2f6bc0d8d442d126badfc42b9252"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":12,"context_line":"``VCPU`` resource, making it possible to run instances of ``dedicated`` CPU"},{"line_number":13,"context_line":"allocation policy and instances of ``shared`` CPU allocation policy on the same"},{"line_number":14,"context_line":"host. This spec aims to create such kind of instance that some of the CPUs are"},{"line_number":15,"context_line":"dedicated (``PCPU``) CPUs and the remaining CPUs are shared (``VCPU``) CPUs."},{"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":7,"id":"7faddb67_44c1aa53","line":15,"range":{"start_line":15,"start_character":75,"end_line":15,"end_character":76},"updated":"2019-08-02 14:00:27.000000000","message":"and expose this information via the metadata API.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"``VCPU`` resource, making it possible to run instances of ``dedicated`` CPU"},{"line_number":13,"context_line":"allocation policy and instances of ``shared`` CPU allocation policy on the same"},{"line_number":14,"context_line":"host. This spec aims to create such kind of instance that some of the CPUs are"},{"line_number":15,"context_line":"dedicated (``PCPU``) CPUs and the remaining CPUs are shared (``VCPU``) CPUs."},{"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":7,"id":"7faddb67_95702074","line":15,"range":{"start_line":15,"start_character":75,"end_line":15,"end_character":76},"in_reply_to":"7faddb67_44c1aa53","updated":"2019-08-05 06:11:55.000000000","message":"Done","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_a4c73e96","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"updated":"2019-08-02 14:00:27.000000000","message":"We might want to be a bit stronger here. You *must* specify \u0027hw:cpu_dedicated_mask\u0027 or \u0027hw_cpu_dedicated_mask\u0027 if you specify \u0027hw:cpu_policy\u003dmixed\u0027 or \u0027hw_cpu_policy\u003dmixed\u0027, respectively.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_2407cecc","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"updated":"2019-08-02 14:00:27.000000000","message":"What happens if both the extra spec and image metadata are defined?","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"04c046e23c4a4c39f8ba09fc80e6a399303dc259","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_7561e404","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"in_reply_to":"7faddb67_2407cecc","updated":"2019-08-05 05:05:49.000000000","message":"\u003e What happens if both the extra spec and image metadata are defined?\n\nIf the mask is different between flavor and image, then we reject the request. Just like other hw: extra spec and image properties.\n\nBut I think if the hw:cpu_policy is mixed, then we can have hw_cpu_dedicated_mask.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_158f502a","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"in_reply_to":"7faddb67_2407cecc","updated":"2019-08-05 06:11:55.000000000","message":"The existing logic for handling the policy conflicts from flavor and image property is \n\n-------------------------------------------------------\nImage\\Flavor      Dedicated      Shared     Not-Defined\nDedicated             D            Inv         D  \nShared                D            S           S\nNot-Defined           D            S           S\n\nWith the third \u0027mixed\u0027 policy, We\u0027d like to propose new policy matrix as\n\n-------------------------------------------------------------\nImage\\Flavor     Dedicated  Mixed Shared  Not-Defined\nDedicated            D       Inv   Inv      D\nMixed                D       M     Inv      M\nShared               D       M     S        S\nNot-Defined          D       M     S        S\n\n*D\u003dDedicated\n*M\u003dMixed\n*Inv\u003dinvalid\n*S\u003dShared\n\nAnother thing if both \u0027hw:cpu_dedicated_mask\u0027 and \u0027hw_cpu_dedicated_mask\u0027 are found, they are required to be identical.\nAnd\n\u0027hw:cpu_dedicated_mask\u0027 and \u0027hw_cpu_dedicated_mask\u0027 are only meaningful when CPU policy is \u0027mixed\u0027.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_40bab26e","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"in_reply_to":"7faddb67_55fb88bc","updated":"2019-08-07 12:45:21.000000000","message":"i think the logic encoded in patchset 11 is incorrect.\n\nif the image and flavor values are bot set and do not have the same value we shoudl raise an exception.\n\nif either the image or flavor is set to mixed then\n\u0027hw:cpu_dedicated_mask\u0027 or \u0027hw_cpu_dedicated_mask\u0027\nmust be set.\n\nsetting \u0027hw:cpu_dedicated_mask\u0027 and \u0027hw_cpu_dedicated_mask\u0027 when the cpu policy is not mixed shoudl be an error.\n\ni have commented on the table in v11 with the change that i think are needed.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"04c046e23c4a4c39f8ba09fc80e6a399303dc259","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_955ca04b","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"in_reply_to":"7faddb67_a4c73e96","updated":"2019-08-05 05:05:49.000000000","message":"\u003e We might want to be a bit stronger here. You *must* specify\n \u003e \u0027hw:cpu_dedicated_mask\u0027 or \u0027hw_cpu_dedicated_mask\u0027 if you specify\n \u003e \u0027hw:cpu_policy\u003dmixed\u0027 or \u0027hw_cpu_policy\u003dmixed\u0027, respectively.\n\n+1","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"      hw_cpu_policy\u003dmixed"},{"line_number":73,"context_line":"      hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"The new extra spec ``hw:cpu_dedicated_mask`` is only valid when the ``mixed``"},{"line_number":76,"context_line":"policy is taken from flavor ``hw:cpu_policy``. Similarly,"},{"line_number":77,"context_line":"``hw_cpu_dedicated_mask`` is only valid when ``hw_cpu_policy\u003dmixed`` and"},{"line_number":78,"context_line":"``hw:cpu_policy`` is not specified."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":81,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_55fb88bc","line":78,"range":{"start_line":75,"start_character":0,"end_line":78,"end_character":35},"in_reply_to":"7faddb67_a4c73e96","updated":"2019-08-05 06:11:55.000000000","message":"Agree","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":97,"context_line":"      extra_specs:"},{"line_number":98,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":99,"context_line":"        hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":100,"context_line":"        hw:numa_nodes\u003d1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0-1,5`` indicates that vCPU 0, 1 and 5"},{"line_number":103,"context_line":"are ``dedicated`` CPUs that will be 1:1 pinned to arbitrary host CPUs which"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_443c4a92","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":23},"updated":"2019-08-02 14:00:27.000000000","message":"I\u0027d drop this. It\u0027s not relevant","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":97,"context_line":"      extra_specs:"},{"line_number":98,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":99,"context_line":"        hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":100,"context_line":"        hw:numa_nodes\u003d1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0-1,5`` indicates that vCPU 0, 1 and 5"},{"line_number":103,"context_line":"are ``dedicated`` CPUs that will be 1:1 pinned to arbitrary host CPUs which"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_f5907445","line":100,"range":{"start_line":100,"start_character":0,"end_line":100,"end_character":23},"in_reply_to":"7faddb67_443c4a92","updated":"2019-08-05 06:11:55.000000000","message":"It could be dropped based on the following thinkings, and I\u0027ll state these in the spec. \n-. Instance with mixed CPU policy should have at least one dedicated vCPU, which is determined by \u0027empty or invalid \u003ccpu set string\u003e is not allowed\u0027.\n-. A mixed instance means a numa-awareness instance.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        hw:numa_nodes\u003d1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0-1,5`` indicates that vCPU 0, 1 and 5"},{"line_number":103,"context_line":"are ``dedicated`` CPUs that will be 1:1 pinned to arbitrary host CPUs which"},{"line_number":104,"context_line":"is specified in ``CONF.compute.cpu_dedicated_set``, and vCPU 2-4 and 6-7 are"},{"line_number":105,"context_line":"``shared`` CPUs that will float on a list of host CPUs that belong to CPUs"},{"line_number":106,"context_line":"specified in ``CONF.compute.cpu_shared_set``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_6452a6e0","line":103,"range":{"start_line":103,"start_character":4,"end_line":103,"end_character":22},"updated":"2019-08-02 14:00:27.000000000","message":"``dedicated`` CPUs (PCPUs)","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        hw:numa_nodes\u003d1"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0-1,5`` indicates that vCPU 0, 1 and 5"},{"line_number":103,"context_line":"are ``dedicated`` CPUs that will be 1:1 pinned to arbitrary host CPUs which"},{"line_number":104,"context_line":"is specified in ``CONF.compute.cpu_dedicated_set``, and vCPU 2-4 and 6-7 are"},{"line_number":105,"context_line":"``shared`` CPUs that will float on a list of host CPUs that belong to CPUs"},{"line_number":106,"context_line":"specified in ``CONF.compute.cpu_shared_set``."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_15943036","line":103,"range":{"start_line":103,"start_character":4,"end_line":103,"end_character":22},"in_reply_to":"7faddb67_6452a6e0","updated":"2019-08-05 06:11:55.000000000","message":"Done","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":102,"context_line":"In this example, ``hw:cpu_dedicated_mask\u003d0-1,5`` indicates that vCPU 0, 1 and 5"},{"line_number":103,"context_line":"are ``dedicated`` CPUs that will be 1:1 pinned to arbitrary host CPUs which"},{"line_number":104,"context_line":"is specified in ``CONF.compute.cpu_dedicated_set``, and vCPU 2-4 and 6-7 are"},{"line_number":105,"context_line":"``shared`` CPUs that will float on a list of host CPUs that belong to CPUs"},{"line_number":106,"context_line":"specified in ``CONF.compute.cpu_shared_set``."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Libvirt CPU mapping"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_44652ab4","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":15},"updated":"2019-08-02 14:00:27.000000000","message":"``shared`` CPUs (VCPUs)","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":106,"context_line":"specified in ``CONF.compute.cpu_shared_set``."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Libvirt CPU mapping"},{"line_number":109,"context_line":"-------------------"},{"line_number":110,"context_line":"Libvirt driver will be changed to create the mapping between the ``shared``"},{"line_number":111,"context_line":"CPUs of the CPU mixed instance and the chosen host CPUs."},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_045bb2f5","line":109,"updated":"2019-08-02 14:00:27.000000000","message":"nit: newline under here","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":127,"context_line":"    hw:cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_646b8684","line":130,"updated":"2019-08-02 14:00:27.000000000","message":"This was rejected at it overloads the \u0027dedicated\u0027 policy to mean two things, depending on the value of another configuration option.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_67ee28ee","line":131,"updated":"2019-08-02 14:00:27.000000000","message":"Another option is to support booting mixed instances by specifying them explicitly using \u0027resources:PCPU:{amount}\u0027 and \u0027resources:VCPU:{amount}\u0027. This was rejected because it doesn\u0027t allow you to specify which guest cores are dedicated and which are shared","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"8c30601fd1df40659f338d069719fb9228d4c9c4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_e69c48c1","line":131,"in_reply_to":"7faddb67_15367004","updated":"2019-08-06 02:40:16.000000000","message":"Maybe not.\n\nWe need not implement any proposal from the alternative section since it is objected, right?","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9747e326935255a8285f413313911d679b8415b3","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_171ae26d","line":131,"in_reply_to":"7faddb67_22e9e2e1","updated":"2019-08-06 04:06:12.000000000","message":"\u003e \u003e Another option is to support booting mixed instances by\n \u003e specifying\n \u003e \u003e them explicitly using \u0027resources:PCPU:{amount}\u0027 and\n \u003e \u003e \u0027resources:VCPU:{amount}\u0027. This was rejected because it doesn\u0027t\n \u003e \u003e allow you to specify which guest cores are dedicated and which\n \u003e are\n \u003e \u003e shared\n \u003e \n \u003e Is there a solid reason for why it is important to be able to\n \u003e define that mapping? I mean, I get that all these virtual instances\n \u003e will eventually be defined with all the legacy hardware attributes\n \u003e so we might as well relent. But really, would it not be okay to\n \u003e just define a policy and say that N dedicated cpus will be evenly\n \u003e distributed between the numa nodes, or be allocated on the node\n \u003e with the largest amount of memory, or something like that?\n \u003e \n \u003e The amount of super-detailed definition of what cores are where\n \u003e that has to be defined for an instance like this just seems to be\n \u003e approaching a point where we\u0027re losing the flexibility of having\n \u003e virtual infrastructure in the first place.\n\nTry to remember that I prefer to let the user choose which vcpus are dedicated explicitly instead of coding some logic inside nova. \n\nI don\u0027t know whether the user will want the 2 dedicated cpus on numa node1 and no dedicated cpu on numa node2. So just leave the guest definition to the user. This gives the user more flexibility, and the user needn\u0027t learn that logic inside nova(like, the user need to learn, the dedicated vcpus may go to the numa node which has large amount memory). And that didn\u0027t add any more burden to our code, so why we want to limit our usecases.\n\nI\u0027m ok with not allowing user definition detail if people want. I just thought the explicitly chose by user avoids the hardcoding some logic inside nova and no limits future usecases.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"8c30601fd1df40659f338d069719fb9228d4c9c4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_9cb3590a","line":131,"in_reply_to":"7faddb67_22e9e2e1","updated":"2019-08-06 02:40:16.000000000","message":"Evenly distribute vCPU and PCPU among NUMA nodes might be simpler. \n\nBut considering the selection of PCPU and VCPU, which is specified through `CONFIG.compute.cpu_dedicated_set` and `CONFIG.compute.cpu_dedicated_set`, which contains the host CPU placement information, the host provides the ability of unbalanced PCPU/VCPU distribution, so we think instance could also obtain the capability of creating instance of unbalanced `dedicated` CPUs.\n\nWe also noticed some developer reported the necessity of knowing the pCPU-vCPU mapping for telecom customers.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"83f4f8eb82b503f3ade5a4123ec5501e348a3725","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_22e9e2e1","line":131,"in_reply_to":"7faddb67_67ee28ee","updated":"2019-08-05 18:00:24.000000000","message":"\u003e Another option is to support booting mixed instances by specifying\n \u003e them explicitly using \u0027resources:PCPU:{amount}\u0027 and\n \u003e \u0027resources:VCPU:{amount}\u0027. This was rejected because it doesn\u0027t\n \u003e allow you to specify which guest cores are dedicated and which are\n \u003e shared\n\nIs there a solid reason for why it is important to be able to define that mapping? I mean, I get that all these virtual instances will eventually be defined with all the legacy hardware attributes so we might as well relent. But really, would it not be okay to just define a policy and say that N dedicated cpus will be evenly distributed between the numa nodes, or be allocated on the node with the largest amount of memory, or something like that?\n\nThe amount of super-detailed definition of what cores are where that has to be defined for an instance like this just seems to be approaching a point where we\u0027re losing the flexibility of having virtual infrastructure in the first place.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_b5af5c7b","line":131,"in_reply_to":"7faddb67_67ee28ee","updated":"2019-08-05 06:11:55.000000000","message":"Will add this as an option.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"04c046e23c4a4c39f8ba09fc80e6a399303dc259","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    hw_cpu_dedicated_mask\u003d\u003ccpu set string\u003e"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Data model impact"},{"line_number":133,"context_line":"-----------------"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_15367004","line":131,"in_reply_to":"7faddb67_67ee28ee","updated":"2019-08-05 05:05:49.000000000","message":"so we will have a explicitly checking if `resources:PCPU` and `resources:VCPU` in the extra spec?","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"The metadata API will be extended to dedicated CPU info with new version."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"The new field will be added to the `meta_data.json`::"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    dedicated_cpu\u003d\u003ccpu set string\u003e"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_87e9e4e3","line":142,"range":{"start_line":142,"start_character":35,"end_line":142,"end_character":51},"updated":"2019-08-02 14:00:27.000000000","message":"``meta_data.json``","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"The metadata API will be extended to dedicated CPU info with new version."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"The new field will be added to the `meta_data.json`::"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    dedicated_cpu\u003d\u003ccpu set string\u003e"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_15bd10b6","line":142,"range":{"start_line":142,"start_character":35,"end_line":142,"end_character":51},"in_reply_to":"7faddb67_87e9e4e3","updated":"2019-08-05 06:11:55.000000000","message":"Done","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    dedicated_cpu\u003d\u003ccpu set string\u003e"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The ``\u003ccpu set string\u003e`` indicated the instance CPUs which are running on"},{"line_number":147,"context_line":"dedicated host CPUs."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_27bef0d4","line":147,"updated":"2019-08-02 14:00:27.000000000","message":"This will require a new version, right?","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5276df0a510bd9627c679297020166f2878bcf1c","unresolved":false,"context_lines":[{"line_number":144,"context_line":"    dedicated_cpu\u003d\u003ccpu set string\u003e"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The ``\u003ccpu set string\u003e`` indicated the instance CPUs which are running on"},{"line_number":147,"context_line":"dedicated host CPUs."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Security impact"},{"line_number":150,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_205248df","line":147,"in_reply_to":"7faddb67_27bef0d4","updated":"2019-08-05 06:11:55.000000000","message":"Yes. A new \u0027OpenStack\u0027 version will be appended. Will be fixed in next update.","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"34483e05547c7f242938ebc3d2855ba56fd2c832","unresolved":false,"context_lines":[{"line_number":217,"context_line":"allocation policy."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"References"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":221,"context_line":"* `CPU resource tracking`_"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":".. _CPU resource tracking: http://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-resources.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_e7b3f808","line":220,"updated":"2019-08-02 14:00:27.000000000","message":"nit: newline under here","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"8c30601fd1df40659f338d069719fb9228d4c9c4","unresolved":false,"context_lines":[{"line_number":217,"context_line":"allocation policy."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"References"},{"line_number":220,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":221,"context_line":"* `CPU resource tracking`_"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":".. _CPU resource tracking: http://specs.openstack.org/openstack/nova-specs/specs/train/approved/cpu-resources.html"}],"source_content_type":"text/x-rst","patch_set":7,"id":"7faddb67_fc512d0f","line":220,"in_reply_to":"7faddb67_e7b3f808","updated":"2019-08-06 02:40:16.000000000","message":"Done","commit_id":"3cc95940e8623c46f8039e9e5e4cc1a0e4ed1cd0"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"+ INSTANCE CPU POLICY       +-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":"|                           | DEDICATED |   MIXED   |   SHARED  | UNDEFINED |"},{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_26fd4b6e","line":85,"range":{"start_line":85,"start_character":42,"end_line":85,"end_character":49},"updated":"2019-08-07 16:36:24.000000000","message":"invalid should be mixed\n\"it\u0027s fine to allow hw_cpu_policy\u003dmixed given hw_cpu_policy\u003ddedicated is already allowed\"","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":82,"context_line":"+ INSTANCE CPU POLICY       +-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":"|                           | DEDICATED |   MIXED   |   SHARED  | UNDEFINED |"},{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_4085d2ce","line":85,"range":{"start_line":85,"start_character":66,"end_line":85,"end_character":73},"updated":"2019-08-07 12:45:21.000000000","message":"this should be dedicated","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"+ INSTANCE CPU POLICY       +-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":"|                           | DEDICATED |   MIXED   |   SHARED  | UNDEFINED |"},{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_506fe1fb","line":85,"range":{"start_line":85,"start_character":66,"end_line":85,"end_character":73},"in_reply_to":"7faddb67_4085d2ce","updated":"2019-08-07 16:36:24.000000000","message":"Agree.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_c070e20b","line":87,"range":{"start_line":87,"start_character":30,"end_line":87,"end_character":39},"updated":"2019-08-07 12:45:21.000000000","message":"dedicated should be invalid","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_807bcaf2","line":87,"range":{"start_line":87,"start_character":66,"end_line":87,"end_character":74},"updated":"2019-08-07 12:45:21.000000000","message":"shared shoudl be mixed","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"112c1129e3628f93248602e5e843d57d43f61359","unresolved":false,"context_lines":[{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_9c01f207","line":87,"range":{"start_line":87,"start_character":30,"end_line":87,"end_character":39},"in_reply_to":"7faddb67_7049bd8c","updated":"2019-08-07 17:25:52.000000000","message":"yes the current code is give preference to the flavour  so this is correct","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_107169df","line":87,"range":{"start_line":87,"start_character":66,"end_line":87,"end_character":74},"in_reply_to":"7faddb67_807bcaf2","updated":"2019-08-07 16:36:24.000000000","message":"Agree.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":85,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | shared    |"},{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_7049bd8c","line":87,"range":{"start_line":87,"start_character":30,"end_line":87,"end_character":39},"in_reply_to":"7faddb67_c070e20b","updated":"2019-08-07 16:36:24.000000000","message":"If we copying the existing rule that if \u0027hw:cpu_policy\u003ddedicated\u0027 and \u0027hw_cpu_policy\u003dshared\u0027 and the cpu policy is \u0027dedicated\u0027, then here should be \u0027dedicated\u0027.\n\nAs discussed, we need to throw a warning for any conflicts.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":91,"context_line":"|               | UNDEFINED | dedicated | mixed     | shared    | shared    |"},{"line_number":92,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_80642a4b","line":89,"range":{"start_line":89,"start_character":30,"end_line":89,"end_character":39},"updated":"2019-08-07 12:45:21.000000000","message":"dedicated should be invalid","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":91,"context_line":"|               | UNDEFINED | dedicated | mixed     | shared    | shared    |"},{"line_number":92,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_405e3277","line":89,"range":{"start_line":89,"start_character":42,"end_line":89,"end_character":47},"updated":"2019-08-07 12:45:21.000000000","message":"mixed should be invalid","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":91,"context_line":"|               | UNDEFINED | dedicated | mixed     | shared    | shared    |"},{"line_number":92,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_46ec078f","line":89,"range":{"start_line":89,"start_character":42,"end_line":89,"end_character":47},"in_reply_to":"7faddb67_405e3277","updated":"2019-08-07 16:36:24.000000000","message":"\u0027dedicated\u0027 is the current rule.\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/hardware.py#L1327-L1338","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":91,"context_line":"|               | UNDEFINED | dedicated | mixed     | shared    | shared    |"},{"line_number":92,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_a6fa9b40","line":89,"range":{"start_line":89,"start_character":30,"end_line":89,"end_character":39},"in_reply_to":"7faddb67_80642a4b","updated":"2019-08-07 16:36:24.000000000","message":"Following the current \u0027flavor first\u0027 behavior, \u0027mixed\u0027 is the choice.\n\nAgain, we need to throw a warning.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"112c1129e3628f93248602e5e843d57d43f61359","unresolved":false,"context_lines":[{"line_number":86,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":87,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | shared    |"},{"line_number":88,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":89,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":90,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":91,"context_line":"|               | UNDEFINED | dedicated | mixed     | shared    | shared    |"},{"line_number":92,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_5c24daaf","line":89,"range":{"start_line":89,"start_character":30,"end_line":89,"end_character":39},"in_reply_to":"7faddb67_a6fa9b40","updated":"2019-08-07 17:25:52.000000000","message":"yes after looking at the code only the rightmost colum was wrong\n\nif the flavor is undefined we use the image values if defined\n\ni agree with your responces.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":97,"context_line":"is explicitly set in ``hw:cpu_policy``, then a ``dedicated`` policy specified"},{"line_number":98,"context_line":"in ``hw_cpu_policy`` is invalid, which will throw an exception."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The settings in ``hw:cpu_dedicated_mask`` and ``hw_cpu_dedicated_mask`` are"},{"line_number":101,"context_line":"ignored if instance CPU policy is not ``mixed``. But it is forced that"},{"line_number":102,"context_line":"``hw:cpu_dedicated_mask`` should be explicitly defined if ``hw:cpu_policy`` is"},{"line_number":103,"context_line":"``mixed``. Similarly, image property ``hw_cpu_dedicated_mask`` is required to"},{"line_number":104,"context_line":"appear in the image property list when ``hw_cpu_policy`` is in that list and"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_80650a20","line":101,"range":{"start_line":100,"start_character":0,"end_line":101,"end_character":47},"updated":"2019-08-07 12:45:21.000000000","message":"i think this should raise an error\nthis is highly uninititive and i think we will have may bug related to this if we just ignore the value.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The settings in ``hw:cpu_dedicated_mask`` and ``hw_cpu_dedicated_mask`` are"},{"line_number":101,"context_line":"ignored if instance CPU policy is not ``mixed``. But it is forced that"},{"line_number":102,"context_line":"``hw:cpu_dedicated_mask`` should be explicitly defined if ``hw:cpu_policy`` is"},{"line_number":103,"context_line":"``mixed``. Similarly, image property ``hw_cpu_dedicated_mask`` is required to"},{"line_number":104,"context_line":"appear in the image property list when ``hw_cpu_policy`` is in that list and"},{"line_number":105,"context_line":"has a value of ``mixed``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":108,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_804e6a94","line":105,"range":{"start_line":102,"start_character":1,"end_line":105,"end_character":25},"updated":"2019-08-07 12:45:21.000000000","message":"+1","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The settings in ``hw:cpu_dedicated_mask`` and ``hw_cpu_dedicated_mask`` are"},{"line_number":101,"context_line":"ignored if instance CPU policy is not ``mixed``. But it is forced that"},{"line_number":102,"context_line":"``hw:cpu_dedicated_mask`` should be explicitly defined if ``hw:cpu_policy`` is"},{"line_number":103,"context_line":"``mixed``. Similarly, image property ``hw_cpu_dedicated_mask`` is required to"},{"line_number":104,"context_line":"appear in the image property list when ``hw_cpu_policy`` is in that list and"},{"line_number":105,"context_line":"has a value of ``mixed``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":108,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_466f27fc","line":105,"range":{"start_line":102,"start_character":1,"end_line":105,"end_character":25},"in_reply_to":"7faddb67_2db52e7f","updated":"2019-08-07 16:36:24.000000000","message":"About the \u0027dedicated\u0027 cpu mask, we still have an unsolved review from V7. I\u0027ll ask the opinion. Then I\u0027ll address the comments about cpu masks.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5e90e2274bde6b3a75cac81dc17de1d933149695","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"The settings in ``hw:cpu_dedicated_mask`` and ``hw_cpu_dedicated_mask`` are"},{"line_number":101,"context_line":"ignored if instance CPU policy is not ``mixed``. But it is forced that"},{"line_number":102,"context_line":"``hw:cpu_dedicated_mask`` should be explicitly defined if ``hw:cpu_policy`` is"},{"line_number":103,"context_line":"``mixed``. Similarly, image property ``hw_cpu_dedicated_mask`` is required to"},{"line_number":104,"context_line":"appear in the image property list when ``hw_cpu_policy`` is in that list and"},{"line_number":105,"context_line":"has a value of ``mixed``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":108,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_2db52e7f","line":105,"range":{"start_line":102,"start_character":1,"end_line":105,"end_character":25},"in_reply_to":"7faddb67_804e6a94","updated":"2019-08-07 14:06:48.000000000","message":"we should say if the result after combine hw_cpu_policy and hw:cpu_polcy is mixed, There must be a hw_cpu_dedicated_mask or hw:cpu_dedicated_mask","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5e90e2274bde6b3a75cac81dc17de1d933149695","unresolved":false,"context_lines":[{"line_number":103,"context_line":"``mixed``. Similarly, image property ``hw_cpu_dedicated_mask`` is required to"},{"line_number":104,"context_line":"appear in the image property list when ``hw_cpu_policy`` is in that list and"},{"line_number":105,"context_line":"has a value of ``mixed``."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The ``\u003ccpu set string\u003e`` is a CPU set string. For example, a string \u00270-1,5\u0027"},{"line_number":108,"context_line":"means the instance CPU 0, 1 and 5 take the ``dedicated`` CPU allocation policy"},{"line_number":109,"context_line":"and the instance CPUs that do not appear in ``\u003ccpu set string\u003e`` list are"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_ad4cbec8","line":106,"updated":"2019-08-07 14:06:48.000000000","message":"And cpu_policy is mixed, both hw:cpu_dedicated_mask and hw_cpu_dedicated_mask are specified, the hw_cpu_dedicated_mask is valid one. This matches the current realtime mask logic.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b607dca019752e26ddd53a415b2309fa5d525b49","unresolved":false,"context_lines":[{"line_number":110,"context_line":"``shared`` CPUs that take the ``share`` policy. An empty or invalid"},{"line_number":111,"context_line":"``\u003ccpu set string\u003e`` here will throw an exception."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"A ``mixed`` CPU policy instance is expected to be a NUMA awareness instance,"},{"line_number":114,"context_line":"and if ``hw:numa_nodes`` is not explicitly specified then it implies the"},{"line_number":115,"context_line":"setting of ``hw:numa_nodes\u003d1``."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. Note::"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_a056062a","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":31},"updated":"2019-08-07 12:45:21.000000000","message":"this is implied by using cpu pinning but its good to restate that we are not chaning existing behavior.","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"6ac27ef1b7ad38f2155dd348e1548366c5e5183c","unresolved":false,"context_lines":[{"line_number":110,"context_line":"``shared`` CPUs that take the ``share`` policy. An empty or invalid"},{"line_number":111,"context_line":"``\u003ccpu set string\u003e`` here will throw an exception."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"A ``mixed`` CPU policy instance is expected to be a NUMA awareness instance,"},{"line_number":114,"context_line":"and if ``hw:numa_nodes`` is not explicitly specified then it implies the"},{"line_number":115,"context_line":"setting of ``hw:numa_nodes\u003d1``."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":".. Note::"},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"7faddb67_c6a55749","line":115,"range":{"start_line":113,"start_character":0,"end_line":115,"end_character":31},"in_reply_to":"7faddb67_a056062a","updated":"2019-08-07 16:36:24.000000000","message":"How about restating in a note section and telling \u0027due to cpu pinning ...\u0027","commit_id":"57b179687a43d5b4cb0b4844140bf88aa09a75f2"}],"specs/ussuri/approved/use-pcpu-vcpu-in-one-instance.rst":[{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"98f079644693a0d2b57f82d3487738cfb8f77928","unresolved":false,"context_lines":[{"line_number":71,"context_line":"+ INSTANCE CPU POLICY       +-----------+-----------+-----------+-----------+"},{"line_number":72,"context_line":"|                           | DEDICATED |   MIXED   |   SHARED  | undefined |"},{"line_number":73,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":74,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | dedicated |"},{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_858b20be","line":74,"range":{"start_line":74,"start_character":42,"end_line":74,"end_character":49},"updated":"2019-10-14 11:31:37.000000000","message":"@sean I know we had discussed the matrix in table 11 and achieved agreement at that time. But after I re-examined the table again. Now I still think the final policy is \u0027invalid\u0027 when \u0027hw_cpu_policy\u003ddedicated\u0027 and \u0027hw:cpu_policy\u003dmixed\". \n\nIn set 11, we have agreed that it could be \u0027mixed\u0027. I don\u0027t think so now by considering the fact that the requirement of ``dedicated`` is more strict than the requirement of ``shared`` by occupying the host CPU exclusively. The setting from image property \u0027hw_cpu_policy\u0027 requires a strict policy, while the flavor property \u0027hw:cpu_policy\u0027 expresses a looser requirement. The requirements from two sides conflict with each other. \n\nI feel that \u0027invalid\u0027 may be a satisfying result if \u0027hw_cpu_policy\u003ddedicated\u0027 and \u0027hw:cpu_policy\u003dmixed\". Anyway if you think the result of \u0027mixed\u0027 here also makes sense, I would like to change back to \u0027mixed\u0027.","commit_id":"21ce64f0033ff1a48380122a14b25ef3a01248c9"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"98f079644693a0d2b57f82d3487738cfb8f77928","unresolved":false,"context_lines":[{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | none      |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_254eec96","line":80,"range":{"start_line":80,"start_character":66,"end_line":80,"end_character":70},"updated":"2019-10-14 11:31:37.000000000","message":"@sean, we also have an agreement to set this case to \u0027shared\u0027 when both \u0027hw:cpu_policy\u0027 and \u0027\u0027hw_cpu_policy\u0027 are not specified explicitly.\n\nBut I think it should be \u0027none\u0027, a cpu policy value of \u0027none\u0027 is meanful after \u0027CPU resource\u0027 spec is accepted. \n\ncode: https://opendev.org/openstack/nova/src/branch/master/nova/virt/hardware.py#L1810-L1816\n\nAn effectively cpu_policy\u003ddedicated if instance only requests PCPU resource at the case of no policy specified in both \u0027hw_cpu_policy\u0027 and \u0027hw:cpu_policy\u0027.","commit_id":"21ce64f0033ff1a48380122a14b25ef3a01248c9"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As a NFV user, I want CPUs of different performance priority to meet the"},{"line_number":32,"context_line":"characterization of workloads from different sub-module. One example is the OVS"},{"line_number":33,"context_line":"workload, in which the CPUs for the data plane are usually required to respond"},{"line_number":34,"context_line":"to network traffic as quickly as possible by exclusively using a host CPU,"},{"line_number":35,"context_line":"while the control plane CPUs may not have too much pressure on performance"},{"line_number":36,"context_line":"and could be assigned to CPUs that are shared by other instances. This proposal"},{"line_number":37,"context_line":"in this spec could help to deploy more similar OVS nodes on the same host"},{"line_number":38,"context_line":"without force all instance CPUs to occupy the host CPUs exclusively."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As a Kubernetes administrator, I wish to run a multi-tier or auto-scaling"},{"line_number":41,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_49123a63","line":38,"range":{"start_line":31,"start_character":0,"end_line":38,"end_character":68},"updated":"2019-12-09 17:22:39.000000000","message":"i understand why you used ovs as it has a clean split betwen the data plane workload and the contolplane but jsut to make it clear of other you are refering to running ovs in a vm as a vnf or a proxy for a vnf workload that has a similar contol plane data plane split.\n\nyou are not referring to running multiple copies of ovs on the host.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As a NFV user, I want CPUs of different performance priority to meet the"},{"line_number":32,"context_line":"characterization of workloads from different sub-module. One example is the OVS"},{"line_number":33,"context_line":"workload, in which the CPUs for the data plane are usually required to respond"},{"line_number":34,"context_line":"to network traffic as quickly as possible by exclusively using a host CPU,"},{"line_number":35,"context_line":"while the control plane CPUs may not have too much pressure on performance"},{"line_number":36,"context_line":"and could be assigned to CPUs that are shared by other instances. This proposal"},{"line_number":37,"context_line":"in this spec could help to deploy more similar OVS nodes on the same host"},{"line_number":38,"context_line":"without force all instance CPUs to occupy the host CPUs exclusively."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"As a Kubernetes administrator, I wish to run a multi-tier or auto-scaling"},{"line_number":41,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_1aa3f0b2","line":38,"range":{"start_line":31,"start_character":0,"end_line":38,"end_character":68},"in_reply_to":"3fa7e38b_49123a63","updated":"2019-12-12 07:56:52.000000000","message":"You absolutely caught my idea. It is about mixing control plane with data plane.\n\nAnd what I want to state that a lot of workloads, which contains multiple threads, due to performance requirement require partial threads to be high performance and don\u0027t care about the performance of other threads too much. OVS, or OVS-DPDK, is just an example of this case that everybody knows well: polling mode driver(PMD) thread is required to be pinned on a dedicated host, and other ovs component could be scheduled on general host CPUs.\n\nI\u0027ll refine this use case in wording.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":41,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"},{"line_number":42,"context_line":"the expectation that using dedicated high performance CPUs for application"},{"line_number":43,"context_line":"itself and deploying the containers on shared cores."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_6425dbad","line":44,"updated":"2019-12-09 17:22:39.000000000","message":"a third usecase which might be more compleing is realtime guests.\n\nin a realtime vm today we can alaredy partion which core will run with realtime priortiy using a mask. in most realtime vnf\noften 1 to 2 core are dedicated to manamanent/operationg system use while the application uses the rest.\nin such a case the management cores are typically excluded from the realtime set but with this feature the management cores could be assignedn to shared vcpus and the realtime core can be pinned. \n\nthat would allow greater density of deployments as the management cores will nolonger consume a full host hardware thread/logical core.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"},{"line_number":42,"context_line":"the expectation that using dedicated high performance CPUs for application"},{"line_number":43,"context_line":"itself and deploying the containers on shared cores."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_c026caba","line":44,"in_reply_to":"3fa7e38b_6425dbad","updated":"2019-12-12 07:56:52.000000000","message":"I probably not catch your idea.\n\nWhat you mentioned \u0027management/operating system core\u0027 refers to the cores for vm emulator/io threads, do I understand you correctly?\n\nIf so, a vm is realtime means the vm cpu policy is \u0027dedicated\u0027, and how do vm management/os threads run on host cores is determined by emulator thread policy. If emulator thread policy is shared, and we have revered some host cores as VCPU resources through setting \u0027conf.compute.cpu_shared_set\u0027, then the management cores are assigned to shared vcpus. This feature *is now supported*  after \u0027cpu resources\u0027 spec is implemented.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":41,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"},{"line_number":42,"context_line":"the expectation that using dedicated high performance CPUs for application"},{"line_number":43,"context_line":"itself and deploying the containers on shared cores."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_9e97ad47","line":44,"in_reply_to":"3fa7e38b_c026caba","updated":"2020-01-28 10:14:28.000000000","message":"I think I understand now. The \u0027management/operating system core\u0027 is not the emulator thread, it refers to NFV OS.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":54,"context_line":"create a CPU ``mixed`` instance in such way that some instance CPUs are"},{"line_number":55,"context_line":"allocated from computing node\u0027s ``PCPU`` resource, and the rest of instance"},{"line_number":56,"context_line":"CPUs are allocated from the ``VCPU`` resources. The vCPU allocated from"},{"line_number":57,"context_line":"``PCPU`` resource will be pinned on particular host CPU, and the vCPU from"},{"line_number":58,"context_line":"``VCPU`` resource will not be pinned on any dedicated host CPU if"},{"line_number":59,"context_line":"``cpu-allocation-ratio`` is greater than 1. In this proposal, we call these"},{"line_number":60,"context_line":"two kinds of vCPUs as ``dedicated`` vCPU and and ``shared`` vCPU respectively."}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_246923bf","line":57,"range":{"start_line":57,"start_character":47,"end_line":57,"end_character":55},"updated":"2019-12-09 17:22:39.000000000","message":"host CPU whitelisted by the [compute]/cpu_dedicated_set, ...","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"create a CPU ``mixed`` instance in such way that some instance CPUs are"},{"line_number":55,"context_line":"allocated from computing node\u0027s ``PCPU`` resource, and the rest of instance"},{"line_number":56,"context_line":"CPUs are allocated from the ``VCPU`` resources. The vCPU allocated from"},{"line_number":57,"context_line":"``PCPU`` resource will be pinned on particular host CPU, and the vCPU from"},{"line_number":58,"context_line":"``VCPU`` resource will not be pinned on any dedicated host CPU if"},{"line_number":59,"context_line":"``cpu-allocation-ratio`` is greater than 1. In this proposal, we call these"},{"line_number":60,"context_line":"two kinds of vCPUs as ``dedicated`` vCPU and and ``shared`` vCPU respectively."}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_e04e666c","line":57,"range":{"start_line":57,"start_character":47,"end_line":57,"end_character":55},"in_reply_to":"3fa7e38b_246923bf","updated":"2019-12-12 07:56:52.000000000","message":"Done","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"allocated from computing node\u0027s ``PCPU`` resource, and the rest of instance"},{"line_number":56,"context_line":"CPUs are allocated from the ``VCPU`` resources. The vCPU allocated from"},{"line_number":57,"context_line":"``PCPU`` resource will be pinned on particular host CPU, and the vCPU from"},{"line_number":58,"context_line":"``VCPU`` resource will not be pinned on any dedicated host CPU if"},{"line_number":59,"context_line":"``cpu-allocation-ratio`` is greater than 1. In this proposal, we call these"},{"line_number":60,"context_line":"two kinds of vCPUs as ``dedicated`` vCPU and and ``shared`` vCPU respectively."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_046427e4","line":58,"range":{"start_line":58,"start_character":18,"end_line":58,"end_character":62},"updated":"2019-12-09 17:22:39.000000000","message":"will be soft pinned to float over the cores defined by the [compute]/cpu_shared_set.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"allocated from computing node\u0027s ``PCPU`` resource, and the rest of instance"},{"line_number":56,"context_line":"CPUs are allocated from the ``VCPU`` resources. The vCPU allocated from"},{"line_number":57,"context_line":"``PCPU`` resource will be pinned on particular host CPU, and the vCPU from"},{"line_number":58,"context_line":"``VCPU`` resource will not be pinned on any dedicated host CPU if"},{"line_number":59,"context_line":"``cpu-allocation-ratio`` is greater than 1. In this proposal, we call these"},{"line_number":60,"context_line":"two kinds of vCPUs as ``dedicated`` vCPU and and ``shared`` vCPU respectively."},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_603a76c4","line":58,"range":{"start_line":58,"start_character":18,"end_line":58,"end_character":62},"in_reply_to":"3fa7e38b_046427e4","updated":"2019-12-12 07:56:52.000000000","message":"Done","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"allocated from computing node\u0027s ``PCPU`` resource, and the rest of instance"},{"line_number":56,"context_line":"CPUs are allocated from the ``VCPU`` resources. The vCPU allocated from"},{"line_number":57,"context_line":"``PCPU`` resource will be pinned on particular host CPU, and the vCPU from"},{"line_number":58,"context_line":"``VCPU`` resource will not be pinned on any dedicated host CPU if"},{"line_number":59,"context_line":"``cpu-allocation-ratio`` is greater than 1. In this proposal, we call these"},{"line_number":60,"context_line":"two kinds of vCPUs as ``dedicated`` vCPU and and ``shared`` vCPU respectively."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Instance CPU policy matrix"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_04a987db","line":59,"range":{"start_line":58,"start_character":63,"end_line":59,"end_character":43},"updated":"2019-12-09 17:22:39.000000000","message":"delete the rest of the sentence the allocation ratio is not relevent here.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"allocated from computing node\u0027s ``PCPU`` resource, and the rest of instance"},{"line_number":56,"context_line":"CPUs are allocated from the ``VCPU`` resources. The vCPU allocated from"},{"line_number":57,"context_line":"``PCPU`` resource will be pinned on particular host CPU, and the vCPU from"},{"line_number":58,"context_line":"``VCPU`` resource will not be pinned on any dedicated host CPU if"},{"line_number":59,"context_line":"``cpu-allocation-ratio`` is greater than 1. In this proposal, we call these"},{"line_number":60,"context_line":"two kinds of vCPUs as ``dedicated`` vCPU and and ``shared`` vCPU respectively."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Instance CPU policy matrix"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_0045c243","line":59,"range":{"start_line":58,"start_character":63,"end_line":59,"end_character":43},"in_reply_to":"3fa7e38b_04a987db","updated":"2019-12-12 07:56:52.000000000","message":"Done","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5df84d7cf023125f2d7ab910f6f833eff7a7044f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":74,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | dedicated |"},{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_c7d3675e","line":76,"range":{"start_line":76,"start_character":66,"end_line":76,"end_character":72},"updated":"2020-01-07 08:06:11.000000000","message":"I think this depends on whether the hw:pinvcpu defined.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"70a6056a094b699538064a83694fbadb2ef0d9c7","unresolved":false,"context_lines":[{"line_number":73,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":74,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | dedicated |"},{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_a33df129","line":76,"range":{"start_line":76,"start_character":66,"end_line":76,"end_character":72},"in_reply_to":"3fa7e38b_0378857b","updated":"2020-01-08 00:06:41.000000000","message":"Got your idea.\n\nThen we should mention in the paragraph following the table that \u0027hw:cpu_policy\u003dmixed\u0027 or \u0027hw_cpu_policy\u003dmixed\u0027 should be used with a definition of \u0027hw:pinvcpus\u0027 or \u0027hw_pinvcpus\u0027.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"252fc6d67a90aa525d9f3b73e21fb3355827648e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":74,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | dedicated |"},{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_0378857b","line":76,"range":{"start_line":76,"start_character":66,"end_line":76,"end_character":72},"in_reply_to":"3fa7e38b_7ccfa153","updated":"2020-01-07 23:11:13.000000000","message":"if we only have hw:cpu_policy\u003dmixed, but without resources:PCPU and hw:pinvcpu, then we don\u0027t know how many and which vcpu is dedicated.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"2f5fba8bfdcaf880601b518713052d04f43a7473","unresolved":false,"context_lines":[{"line_number":73,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":74,"context_line":"| hw_cpu_policy | DEDICATED | dedicated | invalid   | invalid   | dedicated |"},{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | invalid   | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_7ccfa153","line":76,"range":{"start_line":76,"start_character":66,"end_line":76,"end_character":72},"in_reply_to":"3fa7e38b_c7d3675e","updated":"2020-01-07 15:15:08.000000000","message":"Hi Alex,\n\nIn the current proposal, we have two ways to create the \u0027mixed\u0027 instance, one is through `hw:cpu_policy\u003d\u0027mixed\u0027 flavor and hw:pinvcpu flavor, another way is through \u0027resources:PCPU\u003dxx\u0027 alone with \u0027resources:VCPU\u003dxx\u0027. There is no explicit definition of \u0027hw:pinvcpu\u0027 in later way.\n\nSo, the \u0027mixed\u0027 policy is not depending on \u0027hw:pinvcpu\u0027.\n\nsean-k-mooney thought we shouldn\u0027t support the second way for creating the \u0027mixed\u0027 instance. I am inclined to agree with him. But need more review for this.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | none      |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_44f1bfff","line":80,"range":{"start_line":80,"start_character":66,"end_line":80,"end_character":71},"updated":"2019-12-09 17:22:39.000000000","message":"nit: \"none\" is fine but i would prefer \"undefined\"","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"2f5fba8bfdcaf880601b518713052d04f43a7473","unresolved":false,"context_lines":[{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | none      |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_1cc54d0a","line":80,"range":{"start_line":80,"start_character":66,"end_line":80,"end_character":71},"in_reply_to":"3fa7e38b_27d91b83","updated":"2020-01-07 15:15:08.000000000","message":"hi Alex,\n\nFrom the logic in https://opendev.org/openstack/nova/src/branch/master/nova/virt/hardware.py#L1832-L1866, if cpu policy is not explicitly defined in flavor or image, the actual instance CPU seems to be determined by `resources:PCPU` and `resources:VCPU`. It is possible to be \u0027dedicated\u0027 if `resources:PCPU` is provided and `resources:VCPU` is not provided in the flavor extra spec list.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5df84d7cf023125f2d7ab910f6f833eff7a7044f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | none      |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_27d91b83","line":80,"range":{"start_line":80,"start_character":66,"end_line":80,"end_character":71},"in_reply_to":"3fa7e38b_40adfae7","updated":"2020-01-07 08:06:11.000000000","message":"whatever, the actual behavior is \u0027shared\u0027","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | none      |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_40adfae7","line":80,"range":{"start_line":80,"start_character":66,"end_line":80,"end_character":71},"in_reply_to":"3fa7e38b_44f1bfff","updated":"2019-12-12 07:56:52.000000000","message":"I can change from \u0027none\u0027 to \u0027undefined\u0027 in wording here. \n\nBut the result of \u0027get_cpu_policy_constraint\u0027 should be \u0027None\u0027 if this function hasn\u0027t found \u0027hw:cpu_policy\u0027 and \u0027hw_cpu_policy\u0027 in flavor and image metadata. Is this ok?","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Instance object changes"},{"line_number":92,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"For an instance with ``mixed`` allocation policy, it is no longer the case that"},{"line_number":95,"context_line":"all instance vCPUs are in the same CPU allocation policy. We propose to keep"},{"line_number":96,"context_line":"the instance ``dedicated`` vCPU list in the keys of"},{"line_number":97,"context_line":"``InstanceNUMACell.cpu_pinning`` field at the ``InstanceNUMACell`` object"},{"line_number":98,"context_line":"initializing stage."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Anyway, this is not a violation of the use of ``InstanceNUMACell.cpu_pinning``"},{"line_number":101,"context_line":"field."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Affect over real-time vCPUs"},{"line_number":104,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_c4b5af1a","line":101,"range":{"start_line":94,"start_character":0,"end_line":101,"end_character":6},"updated":"2019-12-09 17:22:39.000000000","message":"so what you are trying to express here is there wont be a change to the object itself just how an exisitng field is used.\n\ninstead of all cpus having a pinning in the list only the pinned cpus will be listed in the mixed case.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":91,"context_line":"Instance object changes"},{"line_number":92,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"For an instance with ``mixed`` allocation policy, it is no longer the case that"},{"line_number":95,"context_line":"all instance vCPUs are in the same CPU allocation policy. We propose to keep"},{"line_number":96,"context_line":"the instance ``dedicated`` vCPU list in the keys of"},{"line_number":97,"context_line":"``InstanceNUMACell.cpu_pinning`` field at the ``InstanceNUMACell`` object"},{"line_number":98,"context_line":"initializing stage."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"Anyway, this is not a violation of the use of ``InstanceNUMACell.cpu_pinning``"},{"line_number":101,"context_line":"field."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Affect over real-time vCPUs"},{"line_number":104,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_8078d27d","line":101,"range":{"start_line":94,"start_character":0,"end_line":101,"end_character":6},"in_reply_to":"3fa7e38b_c4b5af1a","updated":"2019-12-12 07:56:52.000000000","message":"Yes.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Affect over real-time vCPUs"},{"line_number":104,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"It\u0027s also possible to set some ``mixed`` instance vCPUs as real-time vCPU,"},{"line_number":107,"context_line":"but this is only valid for the ``dedicated`` ones."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Affect over emulator thread policy"},{"line_number":110,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_e4478b1d","line":107,"range":{"start_line":106,"start_character":0,"end_line":107,"end_character":50},"updated":"2019-12-09 17:22:39.000000000","message":"+1\n\nyep i think this is honestly the primary motivator for this feature. the other use case that are listed are valid but i don\u0027t think they as important as this use case.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"Affect over real-time vCPUs"},{"line_number":104,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"It\u0027s also possible to set some ``mixed`` instance vCPUs as real-time vCPU,"},{"line_number":107,"context_line":"but this is only valid for the ``dedicated`` ones."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"Affect over emulator thread policy"},{"line_number":110,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_6091169a","line":107,"range":{"start_line":106,"start_character":0,"end_line":107,"end_character":50},"in_reply_to":"3fa7e38b_e4478b1d","updated":"2019-12-12 07:56:52.000000000","message":"But I still not understand the use case you mentioned in above paragraph, see my reply there.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":128,"context_line":"      memory_mb\u003d\u003cmemory amount\u003e"},{"line_number":129,"context_line":"      extra_specs:"},{"line_number":130,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_cdbb9372","line":131,"range":{"start_line":131,"start_character":11,"end_line":131,"end_character":19},"updated":"2019-12-09 17:22:39.000000000","message":"pinvcpu is kind of confusing\n\nif this is a count i would spell it out\n\nhw:pinned_cpu_count.\n\nthat said i still kind of think a mask is better\n\nhw:pinned_cpu_mask\u003d0x2 to pin core 1 but not core 0\nthat siad see my suggestion below\ni dont think having hw:pinvcpus\u003d\u003cvCPU amount\u003e is a good\nway to express it","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c2318c64628050e05209d8e47a87a9770e275873","unresolved":false,"context_lines":[{"line_number":128,"context_line":"      memory_mb\u003d\u003cmemory amount\u003e"},{"line_number":129,"context_line":"      extra_specs:"},{"line_number":130,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_34a60e56","line":131,"range":{"start_line":131,"start_character":11,"end_line":131,"end_character":19},"in_reply_to":"3fa7e38b_2e16c1f3","updated":"2019-12-11 12:26:05.000000000","message":"i dont think it is worth the extra code complexity but more over i think pinvcpus is problematic.\n\nfrom a placement point of view we use the VCPU resouce class for shared cpus form Train on and PCPU resouce class for pinned cpus.\n\npinvcpu is therefore confusing in that context as you are combining vcpu(shared/flaoting) with pin.\n\nnow i know your intent was to have vcpu refer to the guest virtual cpus and its usage in the flavor.vcpu but since i could not get people to change the placement resouce class to SCPU for shared cpus i think the battel to keeping vcpu to mean virtual CPUs and tied to flaovr.vcpus has been lost.\n\ni dont think this feature(mixed cpus) will be  used by anyone that does not care about which CPUs are pinned. i could be wrong but i think it that is very unlikely.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"      memory_mb\u003d\u003cmemory amount\u003e"},{"line_number":129,"context_line":"      extra_specs:"},{"line_number":130,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_800e923a","line":131,"range":{"start_line":131,"start_character":11,"end_line":131,"end_character":19},"in_reply_to":"3fa7e38b_34a60e56","updated":"2019-12-12 07:56:52.000000000","message":"@sean\nyou know about my thought over why I name it as \u0027hw:pinvcpus\u0027, just leveaging \u0027flavor.vcpus\u0027. \nAnd I also accept your thinking about why \u0027pinvcpus\u0027 is not a good idea.\n\n@sean and @Luyao,\nWe have proposed the way to express pinned CPUs in way of vCPU mask, please refer to the \u0027alternative\u0027 section for more information.\nI remember at that time we thought just evenly distribute dedicated vCPUs among NUMA nodes is good enough. Now with the suggestion of Sean\u0027s new \u0027hw:numa_pinned_cpus\u0027 property, we might need to review the option again. \n\nWelcome more reviews about this, specifying the count of \u0027dedicated\u0027 CPUs or the bitmask for which vCPUs are \u0027dedicated\u0027 ones.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5df84d7cf023125f2d7ab910f6f833eff7a7044f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"      memory_mb\u003d\u003cmemory amount\u003e"},{"line_number":129,"context_line":"      extra_specs:"},{"line_number":130,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_873ecf87","line":131,"range":{"start_line":131,"start_character":11,"end_line":131,"end_character":19},"in_reply_to":"3fa7e38b_800e923a","updated":"2020-01-07 08:06:11.000000000","message":"I\u0027m ok with providing both the count of \u0027dedicated\u0027 CPU and the bitmask. Just like the numa extra spec, we can only specific the number of numa node, you also can specific how many cpu in each numa node. And I don\u0027t think that will add too much code for implementation, just some validation and checking in the API layer.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"fe83ddb0aec4e17b0683a95e7115a56894efbf08","unresolved":false,"context_lines":[{"line_number":128,"context_line":"      memory_mb\u003d\u003cmemory amount\u003e"},{"line_number":129,"context_line":"      extra_specs:"},{"line_number":130,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_2e16c1f3","line":131,"range":{"start_line":131,"start_character":11,"end_line":131,"end_character":19},"in_reply_to":"3fa7e38b_cdbb9372","updated":"2019-12-11 09:49:51.000000000","message":"@sean mooney, I think it provides an easy way to config, maybe user don\u0027t care about the extremly accurate pinned cpus distribution.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5df84d7cf023125f2d7ab910f6f833eff7a7044f","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"},{"line_number":135,"context_line":"number of ``dedicated`` vCPU, which is not allowed to be specified to 0 or be"},{"line_number":136,"context_line":"identical to the ``vcpus`` to effectively create a ``shared`` or ``dedicated``"},{"line_number":137,"context_line":"instance. If the instance has multiple NUMA nodes, these ``dedicated`` vCPUs"},{"line_number":138,"context_line":"should be evenly distributed among NUMA nodes. One example of creating a"},{"line_number":139,"context_line":"2 NUMA nodes balanced ``mixed`` instance is::"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_27703b73","line":137,"range":{"start_line":134,"start_character":38,"end_line":137,"end_character":9},"updated":"2020-01-07 08:06:11.000000000","message":"I feel we have similar discussion before. My prefer is just having \u0027hw:pinvcpus\u0027. When it is equal to flavor.vcpus, it means the dedicated., When it is equal to 0, it means the shared.\n\nthe relationship between hw:cpu_policy and hw:pinvcpus is just same as hw:numa_nodes and hw:numa_vcpu.[node]. \n\nBut i\u0027m ok with this, since we already nail down to have a \u0027mixed\u0027 policy. I just thought it needn\u0027t to be introduce more complex rule in our extra spec.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"2f5fba8bfdcaf880601b518713052d04f43a7473","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        hw:pinvcpus\u003d\u003cvCPU amount\u003e"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"``flavor.vcpus`` specifies all vCPU number, both ``dedicated`` vCPU and"},{"line_number":134,"context_line":"``shared`` vCPU, of the instance, and the ``hw:pinvcpus`` specified the"},{"line_number":135,"context_line":"number of ``dedicated`` vCPU, which is not allowed to be specified to 0 or be"},{"line_number":136,"context_line":"identical to the ``vcpus`` to effectively create a ``shared`` or ``dedicated``"},{"line_number":137,"context_line":"instance. If the instance has multiple NUMA nodes, these ``dedicated`` vCPUs"},{"line_number":138,"context_line":"should be evenly distributed among NUMA nodes. One example of creating a"},{"line_number":139,"context_line":"2 NUMA nodes balanced ``mixed`` instance is::"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_3f291b88","line":137,"range":{"start_line":134,"start_character":38,"end_line":137,"end_character":9},"in_reply_to":"3fa7e38b_27703b73","updated":"2020-01-07 15:15:08.000000000","message":"I recalled the memory about that discussion. Both proposals have pros and cons. \n\nFor the proposal of extending the \u0027dedicated\u0027 policy with an extra \u0027hw:pinvcpus\u0027 extra spec, the advantage is fewer instance CPU policies, and the disadvantage is confusing user of creating a \u0027dedicated\u0027 instance with only partial instance CPUs pinned on host CPUs.\n\nFor the proposal of adding a new \u0027mixed\u0027 policy and specifying the dedicated CPU number in \u0027hw:pinvcpus\u0027, the disadvantage is a more complex table for solving the final policy, but the advantage is clearly telling user \u0027mixed\u0027 instance is for instance with dedicated cpu and shared cpu, and all cpus \u0027dedicated\u0027 instance are dedicated cpus.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":143,"context_line":"      memory_mb\u003d512"},{"line_number":144,"context_line":"      extra_specs:"},{"line_number":145,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":146,"context_line":"        hw:pinvcpus\u003d2"},{"line_number":147,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"In this example, it creates a two NUMA nodes instance with 8 CPUs, 2 of them"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_2dfee705","line":146,"range":{"start_line":146,"start_character":9,"end_line":146,"end_character":21},"updated":"2019-12-09 17:22:39.000000000","message":"so if we were too have a top level valable for this as i said above i think a mask is better but i also think it hosuld have numa in the name since all mixed vms will have an implcit numa toplogy.\n\nso i was suggesting hw:pinned_cpu_count but i woudl really\nprefer somthing like hw:numa_pinned_cpus\u003d2.\n\nso i would express  this as\n\nflavor:\n      vcpus:8\n      memory_mb\u003d512\n      extra_specs:\n        hw:cpu_policy\u003dmixed\n        hw:numa_pinned_cpus\u003d2\n        hw:numa_nodes\u003d2\n\nhowever as i said above im not sure a count based approch is correct and instead think a mask/list based approch would be better so i would prefer \n\nflavor:\n      vcpus:8\n      memory_mb\u003d512\n      extra_specs:\n        hw:cpu_policy\u003dmixed\n        hw:numa_pinned_cpus\u003d0,4\n        hw:numa_nodes\u003d2","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":143,"context_line":"      memory_mb\u003d512"},{"line_number":144,"context_line":"      extra_specs:"},{"line_number":145,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":146,"context_line":"        hw:pinvcpus\u003d2"},{"line_number":147,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"In this example, it creates a two NUMA nodes instance with 8 CPUs, 2 of them"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_e04d0699","line":146,"range":{"start_line":146,"start_character":9,"end_line":146,"end_character":21},"in_reply_to":"3fa7e38b_2dfee705","updated":"2019-12-12 07:56:52.000000000","message":"you are right that in my proposal mixed instance must contain a numa topology. so \u0027hw_numa_pinned_cpus\u0027 is fine with me.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    ```shared`` CPUs, CPU 3 is a ``dedicated`` CPU. Similarly, in the second"},{"line_number":172,"context_line":"    NUMA node, vCPU 4-6 are ``shared`` CPUs and vCPU 7 are ``dedicated`` CPU."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Create instance with unbalanced ``dedicated`` vCPU distribution"},{"line_number":175,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":176,"context_line":"To support unbalanced distribution of ``dedicated`` vCPUs among instance NUMA"},{"line_number":177,"context_line":"nodes, the flavor extra spec ``hw:numa_pincpus.N`` is introduced in this"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_303f1a23","line":174,"range":{"start_line":174,"start_character":0,"end_line":174,"end_character":63},"updated":"2019-12-09 17:22:39.000000000","message":"i have notes below but im not a fan of how this section works at all.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    ```shared`` CPUs, CPU 3 is a ``dedicated`` CPU. Similarly, in the second"},{"line_number":172,"context_line":"    NUMA node, vCPU 4-6 are ``shared`` CPUs and vCPU 7 are ``dedicated`` CPU."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"Create instance with unbalanced ``dedicated`` vCPU distribution"},{"line_number":175,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":176,"context_line":"To support unbalanced distribution of ``dedicated`` vCPUs among instance NUMA"},{"line_number":177,"context_line":"nodes, the flavor extra spec ``hw:numa_pincpus.N`` is introduced in this"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_c061ea12","line":174,"range":{"start_line":174,"start_character":0,"end_line":174,"end_character":63},"in_reply_to":"3fa7e38b_303f1a23","updated":"2019-12-12 07:56:52.000000000","message":"I tend to agree with your proposal.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":185,"context_line":"      memory_mb\u003d512"},{"line_number":186,"context_line":"      extra_specs:"},{"line_number":187,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":188,"context_line":"        hw:pinvcpus\u003d3"},{"line_number":189,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":190,"context_line":"        hw:numa_cpus.0\u003d0-2"},{"line_number":191,"context_line":"        hw:numa_cpus.1\u003d3-7"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_0da52b48","line":188,"range":{"start_line":188,"start_character":5,"end_line":188,"end_character":21},"updated":"2019-12-09 17:22:39.000000000","message":"i would remove this entirely.\nyou should not have to spcify it twice.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"fe83ddb0aec4e17b0683a95e7115a56894efbf08","unresolved":false,"context_lines":[{"line_number":185,"context_line":"      memory_mb\u003d512"},{"line_number":186,"context_line":"      extra_specs:"},{"line_number":187,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":188,"context_line":"        hw:pinvcpus\u003d3"},{"line_number":189,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":190,"context_line":"        hw:numa_cpus.0\u003d0-2"},{"line_number":191,"context_line":"        hw:numa_cpus.1\u003d3-7"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_eed18930","line":188,"range":{"start_line":188,"start_character":5,"end_line":188,"end_character":21},"in_reply_to":"3fa7e38b_0da52b48","updated":"2019-12-11 09:49:51.000000000","message":"agree","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":185,"context_line":"      memory_mb\u003d512"},{"line_number":186,"context_line":"      extra_specs:"},{"line_number":187,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":188,"context_line":"        hw:pinvcpus\u003d3"},{"line_number":189,"context_line":"        hw:numa_nodes\u003d2"},{"line_number":190,"context_line":"        hw:numa_cpus.0\u003d0-2"},{"line_number":191,"context_line":"        hw:numa_cpus.1\u003d3-7"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_e00666cd","line":188,"range":{"start_line":188,"start_character":5,"end_line":188,"end_character":21},"in_reply_to":"3fa7e38b_eed18930","updated":"2019-12-12 07:56:52.000000000","message":"this is not necessary if we already specified the pinned CPU for each NUMA node.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        hw:numa_cpus.1\u003d3-7"},{"line_number":192,"context_line":"        hw:numa_mems.0\u003d257"},{"line_number":193,"context_line":"        hw:numa_mems.1\u003d256"},{"line_number":194,"context_line":"        hw:numa_pincpus.0\u003d1"},{"line_number":195,"context_line":"        hw:numa_pincpus.1\u003d3,4"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"In the above example, it creates a two NUMA nodes instance with 8 CPUs in"},{"line_number":198,"context_line":"total and 3 of them are ``dedicated`` vCPUs, and it specifies the CPU 1, which"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_d08c862f","line":195,"range":{"start_line":194,"start_character":8,"end_line":195,"end_character":29},"updated":"2019-12-09 17:22:39.000000000","message":"if we used the other name this would become\n\nhw:numa_pinned_cpus.0\u003d1\nhw:numa_pinned_cpus.1\u003d3,4\n\nbut here this is a list/mask not a count.\n\nin this example \nhw:numa_cpus.0\u003d0-2\nhw:numa_cpus.1\u003d3-7\ncontrol the numa affintiy fo the cpus\n\nso hw:numa_pincpus.N syntax is not really needed.\nyou just need to to know if the core should be pinned or not and you can manage the numa affinity via hw:numa_cpus value\n\nso i would express the same constratis as follows\n\n\nflavor:\n      vcpus:9\n      memory_mb\u003d512\n      extra_specs:\n        hw:cpu_policy\u003dmixed\n        hw:numa_nodes\u003d2\n        hw:numa_pinned_cpus\u003d1,3-4\n        hw:numa_cpus.0\u003d0-2\n        hw:numa_cpus.1\u003d3-7\n        hw:numa_mems.0\u003d257\n        hw:numa_mems.1\u003d256","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5df84d7cf023125f2d7ab910f6f833eff7a7044f","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        hw:numa_cpus.1\u003d3-7"},{"line_number":192,"context_line":"        hw:numa_mems.0\u003d257"},{"line_number":193,"context_line":"        hw:numa_mems.1\u003d256"},{"line_number":194,"context_line":"        hw:numa_pincpus.0\u003d1"},{"line_number":195,"context_line":"        hw:numa_pincpus.1\u003d3,4"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"In the above example, it creates a two NUMA nodes instance with 8 CPUs in"},{"line_number":198,"context_line":"total and 3 of them are ``dedicated`` vCPUs, and it specifies the CPU 1, which"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_271efb0c","line":195,"range":{"start_line":194,"start_character":8,"end_line":195,"end_character":29},"in_reply_to":"3fa7e38b_20a1de3a","updated":"2020-01-07 08:06:11.000000000","message":"Agree with Sean, we needn\u0027t hw:numa_pinned_cpus.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        hw:numa_cpus.1\u003d3-7"},{"line_number":192,"context_line":"        hw:numa_mems.0\u003d257"},{"line_number":193,"context_line":"        hw:numa_mems.1\u003d256"},{"line_number":194,"context_line":"        hw:numa_pincpus.0\u003d1"},{"line_number":195,"context_line":"        hw:numa_pincpus.1\u003d3,4"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"In the above example, it creates a two NUMA nodes instance with 8 CPUs in"},{"line_number":198,"context_line":"total and 3 of them are ``dedicated`` vCPUs, and it specifies the CPU 1, which"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_20a1de3a","line":195,"range":{"start_line":194,"start_character":8,"end_line":195,"end_character":29},"in_reply_to":"3fa7e38b_d08c862f","updated":"2019-12-12 07:56:52.000000000","message":"It is a nicer expression for multi-numa case.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":199,"context_line":"is belong to NUMA node 0, is the ``dedicated`` vCPU, and CPU 3 and CPU 4 are"},{"line_number":200,"context_line":"the ``dedicated`` CPUs in NUMA node 1."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"If ``hw:numa_pincpus.N`` is provided in the flavor, then ``hw:pinvcpus`` is"},{"line_number":203,"context_line":"supposed to be defined also, and the ``dedicated`` vCPU number specified in"},{"line_number":204,"context_line":"``hw:pinvcpus`` should be equal to the total vCPU number defined in"},{"line_number":205,"context_line":"``hw:numa_pincpus.N`` properties."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_902e0ef7","line":203,"range":{"start_line":202,"start_character":53,"end_line":203,"end_character":27},"updated":"2019-12-09 17:22:39.000000000","message":"so i think that is a really bad user experience.\nit woudl be easy for the two to be out of sync which complicate things alot","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":199,"context_line":"is belong to NUMA node 0, is the ``dedicated`` vCPU, and CPU 3 and CPU 4 are"},{"line_number":200,"context_line":"the ``dedicated`` CPUs in NUMA node 1."},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"If ``hw:numa_pincpus.N`` is provided in the flavor, then ``hw:pinvcpus`` is"},{"line_number":203,"context_line":"supposed to be defined also, and the ``dedicated`` vCPU number specified in"},{"line_number":204,"context_line":"``hw:pinvcpus`` should be equal to the total vCPU number defined in"},{"line_number":205,"context_line":"``hw:numa_pincpus.N`` properties."},{"line_number":206,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_00c4e25e","line":203,"range":{"start_line":202,"start_character":53,"end_line":203,"end_character":27},"in_reply_to":"3fa7e38b_902e0ef7","updated":"2019-12-12 07:56:52.000000000","message":"Even making \u0027hw:pinvcpus\u0027 as an optional one, user might set it alone with \u0027hw:numa_pincps.X\u0027 at the same time, and code has to process this case and solves conflicts. \n\nWhile the \u0027hw:numa_pinned_cpus\u0027 will not bring this kind of trouble.\n\n\u0027hw:numa_pinned_cpus\u0027 is a better choice for simplifying code logic for multi-numa case.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":212,"context_line":"    ``hw:numa_pincpus.N`` or ``hw_numa_pincpus.N`` only valids when"},{"line_number":213,"context_line":"    ``hw:numa_nodes`` or ``hw_numa_nodes`` is defined."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"Create instance by ``resources:PCPU`` and ``resources:VCPU``"},{"line_number":216,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"`CPU resource tracking`_ has introduced a way to create an instance with"},{"line_number":219,"context_line":"``dedicated`` or ``float`` CPU allocation policy through ``resources:PCPU``"},{"line_number":220,"context_line":"and ``resources:VCPU`` interfaces, but haven\u0027t allowed to request both"},{"line_number":221,"context_line":"``PCPU`` resource and ``VCPU`` resource for one instance."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"This specification proposes to let an instance request ``PCPU`` resource along"},{"line_number":224,"context_line":"with ``VCPU``, and effectively applying for the ``mixed`` CPU allocation"},{"line_number":225,"context_line":"policy if the ``cpu_policy`` is not explicitly specified in the flavor list."},{"line_number":226,"context_line":"So an instance with such flavors potentially creates a ``mixed``"},{"line_number":227,"context_line":"instance::"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    flavor:"},{"line_number":230,"context_line":"      vcpus\u003d\u003ctotal vCPU number\u003e"},{"line_number":231,"context_line":"      memory_mb\u003d\u003cmemory capacity\u003e"},{"line_number":232,"context_line":"      extra_specs:"},{"line_number":233,"context_line":"        resources:VCPU\u003d\u003c``shared`` CPU number\u003e"},{"line_number":234,"context_line":"        resources:PCPU\u003d\u003c``dedicated`` CPU number\u003e"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"For ``mixed`` instance created in such way, both \u003c``shared`` CPU number\u003e and"},{"line_number":237,"context_line":"\u003c``dedicated`` CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":238,"context_line":"``dedicated`` or ``shared`` instance, that all CPUs in the instance are in"},{"line_number":239,"context_line":"same allocation policy."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"It is also required to consider the demanding of one extra ``PCPU`` resource"},{"line_number":242,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":243,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":244,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":245,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. note::"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    For instance with no ``hw:numa_pincpus.N`` or ``hw_numa_pincpus.N`` If it"},{"line_number":250,"context_line":"    happens defined multi-node NUMA topology for the instance, after"},{"line_number":251,"context_line":"    considering the CPU consuming for emulator thread, the remaining ``PCPU``"},{"line_number":252,"context_line":"    and ``VCPU`` are required to be evenly distributed on all NUMA nodes, if"},{"line_number":253,"context_line":"    it fails to do this, the requested resource will be rejected."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"Libvirt CPU mapping"},{"line_number":256,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_30187acb","line":253,"range":{"start_line":215,"start_character":0,"end_line":253,"end_character":65},"updated":"2019-12-09 17:22:39.000000000","message":"i dont actully think we should support this.\n\nit will cause issues if we ever model numa in placement.\ni would move this to the alternitive section.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":212,"context_line":"    ``hw:numa_pincpus.N`` or ``hw_numa_pincpus.N`` only valids when"},{"line_number":213,"context_line":"    ``hw:numa_nodes`` or ``hw_numa_nodes`` is defined."},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"Create instance by ``resources:PCPU`` and ``resources:VCPU``"},{"line_number":216,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"`CPU resource tracking`_ has introduced a way to create an instance with"},{"line_number":219,"context_line":"``dedicated`` or ``float`` CPU allocation policy through ``resources:PCPU``"},{"line_number":220,"context_line":"and ``resources:VCPU`` interfaces, but haven\u0027t allowed to request both"},{"line_number":221,"context_line":"``PCPU`` resource and ``VCPU`` resource for one instance."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"This specification proposes to let an instance request ``PCPU`` resource along"},{"line_number":224,"context_line":"with ``VCPU``, and effectively applying for the ``mixed`` CPU allocation"},{"line_number":225,"context_line":"policy if the ``cpu_policy`` is not explicitly specified in the flavor list."},{"line_number":226,"context_line":"So an instance with such flavors potentially creates a ``mixed``"},{"line_number":227,"context_line":"instance::"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    flavor:"},{"line_number":230,"context_line":"      vcpus\u003d\u003ctotal vCPU number\u003e"},{"line_number":231,"context_line":"      memory_mb\u003d\u003cmemory capacity\u003e"},{"line_number":232,"context_line":"      extra_specs:"},{"line_number":233,"context_line":"        resources:VCPU\u003d\u003c``shared`` CPU number\u003e"},{"line_number":234,"context_line":"        resources:PCPU\u003d\u003c``dedicated`` CPU number\u003e"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"For ``mixed`` instance created in such way, both \u003c``shared`` CPU number\u003e and"},{"line_number":237,"context_line":"\u003c``dedicated`` CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":238,"context_line":"``dedicated`` or ``shared`` instance, that all CPUs in the instance are in"},{"line_number":239,"context_line":"same allocation policy."},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"It is also required to consider the demanding of one extra ``PCPU`` resource"},{"line_number":242,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":243,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":244,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":245,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":".. note::"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    For instance with no ``hw:numa_pincpus.N`` or ``hw_numa_pincpus.N`` If it"},{"line_number":250,"context_line":"    happens defined multi-node NUMA topology for the instance, after"},{"line_number":251,"context_line":"    considering the CPU consuming for emulator thread, the remaining ``PCPU``"},{"line_number":252,"context_line":"    and ``VCPU`` are required to be evenly distributed on all NUMA nodes, if"},{"line_number":253,"context_line":"    it fails to do this, the requested resource will be rejected."},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"Libvirt CPU mapping"},{"line_number":256,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_a37b9877","line":253,"range":{"start_line":215,"start_character":0,"end_line":253,"end_character":65},"in_reply_to":"3fa7e38b_30187acb","updated":"2019-12-12 07:56:52.000000000","message":"If possible, can you explain why it will break the work for modeling NUMA in placement? This section became a way to create \u0027mixed\u0027 instance and listed here after we though it is only necessary to provide information of dedicated CPU count.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":255,"context_line":"Libvirt CPU mapping"},{"line_number":256,"context_line":"-------------------"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"Libvirt driver will be changed to create the mapping between the ``shared``"},{"line_number":259,"context_line":"CPUs of the CPU mixed instance and the chosen host CPUs."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_f07bc2f0","line":258,"range":{"start_line":258,"start_character":67,"end_line":258,"end_character":73},"updated":"2019-12-09 17:22:39.000000000","message":"i think you mean dedicated","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":255,"context_line":"Libvirt CPU mapping"},{"line_number":256,"context_line":"-------------------"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"Libvirt driver will be changed to create the mapping between the ``shared``"},{"line_number":259,"context_line":"CPUs of the CPU mixed instance and the chosen host CPUs."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_20f8febe","line":258,"range":{"start_line":258,"start_character":67,"end_line":258,"end_character":73},"in_reply_to":"3fa7e38b_f07bc2f0","updated":"2019-12-12 07:56:52.000000000","message":"Yes, it is.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"This was rejected at it overloads the ``dedicated`` policy to mean two things,"},{"line_number":281,"context_line":"depending on the value of another configuration option."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"Creating CPU mixed instance with PCPU/VCPU bitmask information"},{"line_number":284,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_50d896ee","line":281,"range":{"start_line":280,"start_character":0,"end_line":281,"end_character":55},"updated":"2019-12-09 17:22:39.000000000","message":"no we reject this only i you use hw:cpu_policy\u003ddedicated.\n\ni think this is correct if we use hw:cpu_policy\u003dmixed.\nwe might want to change the name to hw:numa_pinned_cpus\nto avoid the assocation with the dedicated policy but i think this is still the correct approch","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"The ``\u003ccpu set string\u003e`` shares the same definition defined above."},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"This was rejected at it overloads the ``dedicated`` policy to mean two things,"},{"line_number":281,"context_line":"depending on the value of another configuration option."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"Creating CPU mixed instance with PCPU/VCPU bitmask information"},{"line_number":284,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_c08d6a2a","line":281,"range":{"start_line":280,"start_character":0,"end_line":281,"end_character":55},"in_reply_to":"3fa7e38b_50d896ee","updated":"2019-12-12 07:56:52.000000000","message":"Yes.\nIt was rejected because it changed the behavior of instance in the \u0027dedicated\u0027 policy that users are knowing well.\n\nWe want to name the instance of this case with another policy.\n\nWill refine it.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1284738a63e6123e04efc397d98a0ae0686b31c7","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            hw:cpu_policy\u003dmixed"},{"line_number":300,"context_line":"            hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"This was rejected because it tends to be losing the flexibility of having"},{"line_number":303,"context_line":"infrastructure by offering too much control over instance CPU."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Data model impact"},{"line_number":306,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_30f4fa54","line":303,"range":{"start_line":302,"start_character":0,"end_line":303,"end_character":62},"updated":"2019-12-09 17:22:39.000000000","message":"i think this is an incorrect interoperation.\n\nthe proposal in bothe these alternatives was for \nhw:cpu_dedicated_mask to refer to the logical gust cpus.\nthe virt driver would still be free to manage the mapping to the host cpus.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"5d82c380b10d3270e4ed570beccf6ceb4fe24b7a","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            hw:cpu_policy\u003dmixed"},{"line_number":300,"context_line":"            hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"This was rejected because it tends to be losing the flexibility of having"},{"line_number":303,"context_line":"infrastructure by offering too much control over instance CPU."},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"Data model impact"},{"line_number":306,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":14,"id":"3fa7e38b_a0fdce6d","line":303,"range":{"start_line":302,"start_character":0,"end_line":303,"end_character":62},"in_reply_to":"3fa7e38b_30f4fa54","updated":"2019-12-12 07:56:52.000000000","message":"About the reason for why this alternative is dropped is discussed serval times in IRC and here\n(https://review.opendev.org/#/c/668656/7/specs/train/approved/use-pcpu-vcpu-in-one-instance.rst@131).\n\nSeems we need to reach some consistency with involved reviewers.\n\nI\u0027ll try to raise discussion in IRC.","commit_id":"6050c2770c4b59dcf78612580b20e51ffbd36b81"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":55,"context_line":"``PCPU`` resource will be pinned on particular host CPUs which are defined in"},{"line_number":56,"context_line":"``CONF.compute.dedicated_cpu_set``, and the CPU from ``VCPU`` resource will be"},{"line_number":57,"context_line":"floating on the host CPUs which are defined in ``CONF.compute.shared_cpu_set``."},{"line_number":58,"context_line":"In this proposal, we call these two kinds of CPUs as ``dedicated`` vCPU and"},{"line_number":59,"context_line":"``shared`` vCPU respectively."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Instance CPU policy matrix"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_6806f087","line":58,"range":{"start_line":58,"start_character":53,"end_line":58,"end_character":65},"updated":"2020-01-27 12:14:01.000000000","message":"style nit: this isn\u0027t a symbol or literal, so *italics* would look better","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"``PCPU`` resource will be pinned on particular host CPUs which are defined in"},{"line_number":56,"context_line":"``CONF.compute.dedicated_cpu_set``, and the CPU from ``VCPU`` resource will be"},{"line_number":57,"context_line":"floating on the host CPUs which are defined in ``CONF.compute.shared_cpu_set``."},{"line_number":58,"context_line":"In this proposal, we call these two kinds of CPUs as ``dedicated`` vCPU and"},{"line_number":59,"context_line":"``shared`` vCPU respectively."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Instance CPU policy matrix"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_444191a6","line":58,"range":{"start_line":58,"start_character":53,"end_line":58,"end_character":65},"in_reply_to":"3fa7e38b_6806f087","updated":"2020-01-28 10:14:28.000000000","message":"Done","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"2f257d87ff7f06c81b572ac5a9fd2548f2ab6130","unresolved":false,"context_lines":[{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | conflict  | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | shared    |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_78d1305a","line":78,"range":{"start_line":78,"start_character":66,"end_line":78,"end_character":72},"updated":"2020-02-07 10:00:52.000000000","message":"For the last \u0027shared\u0027.\n\nIf there is no explicit instance CPU policy specified in flavor or image\nthe property, the flavor matrix result would be \u0027undefined\u0027, and the final\ninstance policy is further determined and resolved by ``resources:PCPU``\nand ``resources:VCPU`` specified in flavor extra specs. Refer to section\n``Creating CPU mixed instance with PCPU/VCPU bitmask information`` and\nthe spec `CPU resource tracking`_.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | conflict  | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | shared    |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_c8f60491","line":78,"range":{"start_line":78,"start_character":42,"end_line":78,"end_character":47},"updated":"2020-01-27 12:14:01.000000000","message":"any reason this can\u0027t be a conflict? We allow some combinations of shared and dedicated at the moment, but that\u0027s a mistake that we have to live with for legacy reasons, IMO","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":76,"context_line":"|               | MIXED     | dedicated | mixed     | conflict  | mixed     |"},{"line_number":77,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":78,"context_line":"|               | SHARED    | dedicated | mixed     | shared    | shared    |"},{"line_number":79,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":80,"context_line":"|               | undefined | dedicated | mixed     | shared    | shared    |"},{"line_number":81,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_0449598c","line":78,"range":{"start_line":78,"start_character":42,"end_line":78,"end_character":47},"in_reply_to":"3fa7e38b_c8f60491","updated":"2020-01-28 10:14:28.000000000","message":"I am not aware of the legacy reason for why it is allowed a shared policy in image property and a dedicated policy in flavor. \n\nMy logic for choosing the final policy from flavor and image properties is the flavor is applying a more strict *single CPU* policy than image property, and for each CPU, I think the dedicated policy is more strict than shared. In this \u0027mixed\u0027 case that you mentioned, in image property it requires all CPUs to be allocated from the shared pool, which is a looser policy, follow this logic I think it is valid to change some CPU policy to dedicated after you checked the policy settings in flavor, thus, in this instance some CPUs use dedicated policy, the remaining CPUs use shared policy, it creates an instance in a \u0027mixed\u0027 instance CPU allocation policy. This is consistent with the case of setting \u0027shared\u0027 in image property and \u0027dedicated\u0027 in flavor, in which, the image property requires all CPU to be in \u0027shared\u0027 policy while the flavor hopes all CPUS to be in a more strict \u0027dedicated\u0027 policy.\n\nI can change this to \u0027conflict\u0027 if you think we should make it to be.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":97,"context_line":"Create ``mixed`` instance by ``resources:PCPU`` or ``resources:VCPU``"},{"line_number":98,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"`CPU resource tracking`_ has introduced a way to create an instance with"},{"line_number":101,"context_line":"``dedicated`` or ``shared`` CPU allocation policy through ``resources:PCPU``"},{"line_number":102,"context_line":"and ``resources:VCPU`` interfaces, but haven\u0027t allowed requesting both"},{"line_number":103,"context_line":"``PCPU`` resource and ``VCPU`` resource for one instance."}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_e836604f","line":100,"range":{"start_line":100,"start_character":25,"end_line":100,"end_character":28},"updated":"2020-01-27 12:14:01.000000000","message":"drop this","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"Create ``mixed`` instance by ``resources:PCPU`` or ``resources:VCPU``"},{"line_number":98,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"`CPU resource tracking`_ has introduced a way to create an instance with"},{"line_number":101,"context_line":"``dedicated`` or ``shared`` CPU allocation policy through ``resources:PCPU``"},{"line_number":102,"context_line":"and ``resources:VCPU`` interfaces, but haven\u0027t allowed requesting both"},{"line_number":103,"context_line":"``PCPU`` resource and ``VCPU`` resource for one instance."}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_041159af","line":100,"range":{"start_line":100,"start_character":25,"end_line":100,"end_character":28},"in_reply_to":"3fa7e38b_e836604f","updated":"2020-01-28 10:14:28.000000000","message":"Done","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"`CPU resource tracking`_ has introduced a way to create an instance with"},{"line_number":101,"context_line":"``dedicated`` or ``shared`` CPU allocation policy through ``resources:PCPU``"},{"line_number":102,"context_line":"and ``resources:VCPU`` interfaces, but haven\u0027t allowed requesting both"},{"line_number":103,"context_line":"``PCPU`` resource and ``VCPU`` resource for one instance."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"This specification proposes to let an instance request ``PCPU`` resource along"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_a83ce82c","line":102,"range":{"start_line":102,"start_character":39,"end_line":102,"end_character":54},"updated":"2020-01-27 12:14:01.000000000","message":"did not allow","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"`CPU resource tracking`_ has introduced a way to create an instance with"},{"line_number":101,"context_line":"``dedicated`` or ``shared`` CPU allocation policy through ``resources:PCPU``"},{"line_number":102,"context_line":"and ``resources:VCPU`` interfaces, but haven\u0027t allowed requesting both"},{"line_number":103,"context_line":"``PCPU`` resource and ``VCPU`` resource for one instance."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"This specification proposes to let an instance request ``PCPU`` resource along"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_244c959b","line":102,"range":{"start_line":102,"start_character":39,"end_line":102,"end_character":54},"in_reply_to":"3fa7e38b_a83ce82c","updated":"2020-01-28 10:14:28.000000000","message":"Done","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":108,"context_line":"So an instance with such flavors potentially creates a ``mixed``"},{"line_number":109,"context_line":"instance::"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    flavor:"},{"line_number":112,"context_line":"      vcpus\u003d\u003ctotal vCPU number\u003e"},{"line_number":113,"context_line":"      memory_mb\u003d\u003cmemory capacity\u003e"},{"line_number":114,"context_line":"      extra_specs:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_280a3877","line":111,"updated":"2020-01-27 12:14:01.000000000","message":"Instead of this, perhaps you could give an example of creating such a flavor using the CLI, e.g.\n\n  openstack flavor set --property resources:VPU\u003dN ...","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"a7730f4b5e3c30662f61d23aee27fb01a580027e","unresolved":false,"context_lines":[{"line_number":108,"context_line":"So an instance with such flavors potentially creates a ``mixed``"},{"line_number":109,"context_line":"instance::"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    flavor:"},{"line_number":112,"context_line":"      vcpus\u003d\u003ctotal vCPU number\u003e"},{"line_number":113,"context_line":"      memory_mb\u003d\u003cmemory capacity\u003e"},{"line_number":114,"context_line":"      extra_specs:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_e2457173","line":111,"in_reply_to":"3fa7e38b_1f9be2c7","updated":"2020-02-07 08:08:03.000000000","message":"Later. Since placement-ess style interface would not be mixed with legacy flavor statements, it is feasible to do so.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"So an instance with such flavors potentially creates a ``mixed``"},{"line_number":109,"context_line":"instance::"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    flavor:"},{"line_number":112,"context_line":"      vcpus\u003d\u003ctotal vCPU number\u003e"},{"line_number":113,"context_line":"      memory_mb\u003d\u003cmemory capacity\u003e"},{"line_number":114,"context_line":"      extra_specs:"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_1f9be2c7","line":111,"in_reply_to":"3fa7e38b_280a3877","updated":"2020-01-28 10:14:28.000000000","message":"If we don\u0027t need to set any image property in creating a mixed instance, and all settings are given in flavor, we can do as you suggested.\n\nWe are close to the approach that doesn\u0027t require user to set cpu_policy as \u0027mixed\u0027 in flavor or image property explicitly, and don\u0027t use \u0027mixed\u0027 policy in flavor or image property is the recommending way, I think we can do it as you suggested","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        resources:VCPU\u003d\u003c``shared`` CPU number\u003e"},{"line_number":116,"context_line":"        resources:PCPU\u003d\u003c``dedicated`` CPU number\u003e"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"For ``mixed`` instance created in such way, both \u003c``shared`` CPU number\u003e and"},{"line_number":119,"context_line":"\u003c``dedicated`` CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":120,"context_line":"``dedicated`` or ``shared`` instance, that all CPUs in the instance is in"},{"line_number":121,"context_line":"same allocation policy."}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_082e5cf8","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":13},"updated":"2020-01-27 12:14:01.000000000","message":"*mixed* (here and elsewhere for reasons given previously)","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        resources:VCPU\u003d\u003c``shared`` CPU number\u003e"},{"line_number":116,"context_line":"        resources:PCPU\u003d\u003c``dedicated`` CPU number\u003e"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"For ``mixed`` instance created in such way, both \u003c``shared`` CPU number\u003e and"},{"line_number":119,"context_line":"\u003c``dedicated`` CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":120,"context_line":"``dedicated`` or ``shared`` instance, that all CPUs in the instance is in"},{"line_number":121,"context_line":"same allocation policy."}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_df230a56","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":13},"in_reply_to":"3fa7e38b_082e5cf8","updated":"2020-01-28 10:14:28.000000000","message":"Done","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":119,"context_line":"\u003c``dedicated`` CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":120,"context_line":"``dedicated`` or ``shared`` instance, that all CPUs in the instance is in"},{"line_number":121,"context_line":"same allocation policy."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"If the user specifies the ``cpu_policy`` as ``mixed`` in the flavor or image"},{"line_number":124,"context_line":"properties and the user only specify one of ``PCPU`` or ``VCPU`` number, it"},{"line_number":125,"context_line":"also creates a ``mixed`` instance. Here is an example of this case::"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    flavor:"},{"line_number":128,"context_line":"      vcpus\u003d8"},{"line_number":129,"context_line":"      memory_mb\u003d512"},{"line_number":130,"context_line":"      extra_specs:"},{"line_number":131,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":132,"context_line":"        resources:PCPU\u003d2"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The instance creates with above flavor has 8 vCPUs in total, and"},{"line_number":135,"context_line":"``resource:PCPU\u003d2`` points out that only 2 instance CPUs are required to"},{"line_number":136,"context_line":"be pinned on host CPUs, the rest CPUs are shared CPUs. It effectively"},{"line_number":137,"context_line":"has a configuration of ``resource:VCPU\u003d6``."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"You also can create a ``mixed`` instance by specifying the ``VCPU`` number"},{"line_number":140,"context_line":"through ``resource:VCPU`` property, and let the system calculate the number"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_e81f40b5","line":137,"range":{"start_line":122,"start_character":0,"end_line":137,"end_character":43},"updated":"2020-01-27 12:14:01.000000000","message":"No, please don\u0027t do this. Users should either think in terms of the legacy extra specs or they should think in terms of placement. They should not be able to mix them because it creates a whole load of conflicts we need to reason about and filter on. This is what we\u0027re currently doing and I see no reason to change that.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"\u003c``dedicated`` CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":120,"context_line":"``dedicated`` or ``shared`` instance, that all CPUs in the instance is in"},{"line_number":121,"context_line":"same allocation policy."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"If the user specifies the ``cpu_policy`` as ``mixed`` in the flavor or image"},{"line_number":124,"context_line":"properties and the user only specify one of ``PCPU`` or ``VCPU`` number, it"},{"line_number":125,"context_line":"also creates a ``mixed`` instance. Here is an example of this case::"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    flavor:"},{"line_number":128,"context_line":"      vcpus\u003d8"},{"line_number":129,"context_line":"      memory_mb\u003d512"},{"line_number":130,"context_line":"      extra_specs:"},{"line_number":131,"context_line":"        hw:cpu_policy\u003dmixed"},{"line_number":132,"context_line":"        resources:PCPU\u003d2"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"The instance creates with above flavor has 8 vCPUs in total, and"},{"line_number":135,"context_line":"``resource:PCPU\u003d2`` points out that only 2 instance CPUs are required to"},{"line_number":136,"context_line":"be pinned on host CPUs, the rest CPUs are shared CPUs. It effectively"},{"line_number":137,"context_line":"has a configuration of ``resource:VCPU\u003d6``."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"You also can create a ``mixed`` instance by specifying the ``VCPU`` number"},{"line_number":140,"context_line":"through ``resource:VCPU`` property, and let the system calculate the number"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_dfb1ca01","line":137,"range":{"start_line":122,"start_character":0,"end_line":137,"end_character":43},"in_reply_to":"3fa7e38b_e81f40b5","updated":"2020-01-28 10:14:28.000000000","message":"This means we must specify the \u0027resource:VCPU\u0027 and \u0027resource:PCPU\u0027 at the same time for a \u0027mixed\u0027 instance and don\u0027t do any attempt to infer the CPUs from a given mixed CPU policy, flavor,vcpus and emulator thread policy.\n\nEric also buys in this comment in his review in rev14.\n\nI\u0027ll remove this part.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":136,"context_line":"be pinned on host CPUs, the rest CPUs are shared CPUs. It effectively"},{"line_number":137,"context_line":"has a configuration of ``resource:VCPU\u003d6``."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"You also can create a ``mixed`` instance by specifying the ``VCPU`` number"},{"line_number":140,"context_line":"through ``resource:VCPU`` property, and let the system calculate the number"},{"line_number":141,"context_line":"for ``PCPU`` resource."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"If the ``hw:cpu_policy\u003dmixed`` is not specified, and the number of ``VCPU``"},{"line_number":144,"context_line":"and ``PCPU`` is not equal to flavor.vcpus, the request will be rejected."}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_a815c896","line":141,"range":{"start_line":139,"start_character":0,"end_line":141,"end_character":22},"updated":"2020-01-27 12:14:01.000000000","message":"Nope. If you want to explicitly request this stuff, you must explicitly request it all. Things just get weird otherwise.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"be pinned on host CPUs, the rest CPUs are shared CPUs. It effectively"},{"line_number":137,"context_line":"has a configuration of ``resource:VCPU\u003d6``."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"You also can create a ``mixed`` instance by specifying the ``VCPU`` number"},{"line_number":140,"context_line":"through ``resource:VCPU`` property, and let the system calculate the number"},{"line_number":141,"context_line":"for ``PCPU`` resource."},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"If the ``hw:cpu_policy\u003dmixed`` is not specified, and the number of ``VCPU``"},{"line_number":144,"context_line":"and ``PCPU`` is not equal to flavor.vcpus, the request will be rejected."}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_9fc7d265","line":141,"range":{"start_line":139,"start_character":0,"end_line":141,"end_character":22},"in_reply_to":"3fa7e38b_a815c896","updated":"2020-01-28 10:14:28.000000000","message":"will remove this paragraph since we think it requires to set both PCPU resources and VCPU resources for a mixed instance at the same time.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":147,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":148,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":149,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":150,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. note::"},{"line_number":153,"context_line":"    The demanding instance CPU number is the number of vCPU, specified by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_c8692426","line":150,"updated":"2020-01-27 12:14:01.000000000","message":"Again, this differs from how we\u0027re doing things at the moment and shouldn\u0027t be allowed. If the user wants to request a CPU policy using the legacy extra specs, they\u0027re not allowed to use \u0027resources:(V|P)CPU\u0027. If they want to use \u0027resources:(V|P)CPU\u0027, they must use \u0027trait:HW_CPU_HYPERTHREADING\u0027.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"a7730f4b5e3c30662f61d23aee27fb01a580027e","unresolved":false,"context_lines":[{"line_number":147,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":148,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":149,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":150,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. note::"},{"line_number":153,"context_line":"    The demanding instance CPU number is the number of vCPU, specified by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_6282e1a8","line":150,"in_reply_to":"3fa7e38b_ba2dfcfc","updated":"2020-02-07 08:08:03.000000000","message":"Later, I got your point.\n\nNot allow or recommend mixing legacy flavor extra specs with the extra specs that are specific for placement.\n\nHW_CPU_HYPERTHREADING is a trait for placement using, so do not mix this with \u0027hw:cpu_policy\u0027. and recommend to use \u0027hw:cpu_policy\u0027 with \u0027hw:cpu_thread_policy\u0027.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":147,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":148,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":149,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":150,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. note::"},{"line_number":153,"context_line":"    The demanding instance CPU number is the number of vCPU, specified by"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_ba2dfcfc","line":150,"in_reply_to":"3fa7e38b_c8692426","updated":"2020-01-28 10:14:28.000000000","message":"Not get your point here. (I also find the two paragraphs above need to be refined.)\n\nWhat I want to express is, \u0027vcpus\u0027 is an item existed, and must be present, in the flavor represents the CPUs that guest can see, it will be allocated from (P|V)CPU resources. If instance emulator policy is ISOLATE, it also requires another PCPU resource, we need to ensure that the sum of PCPU and VCPU resources should be equal to the value of \u0027flavor.vcpus\u0027 plus the extra PCPU resource for the emulator. \n\nIn the reviews, we are close to the approach that specifying both VCPU and PCPU resources in \u0027resources:(P|V)CPU\u0027 flavor, but it seems we still required to create a new CPU allocation policy \u0027mixed\u0027 to identify the new instance that has both PCPU resource and VCPU resource which is different from \u0027dedicated\u0027 or \u0027shared\u0027 instance. The cpu_policy is persisted in the database in the InstanceNUMACell object. The cpu policy is exposed to user already and cannot be used internally, but we don\u0027t encourage user to specify the mixed policy in the way such as \u0027hw:cpu_policy\u003dmixed\u0027 or \u0027hw_cpu_policy\u003dmixed\u0027, this policy could be derived from the fact that user want both PCPU and VCPU resources from flavor. \n\nRegarding your comment \"if they want to use \u0027resources:(V|P)CPU\u0027, they must use \u0027trait:HW_CPU_HYPERTHREADING\u0027\". But we still can create \u0027dedicated\u0027 instance by a flavor with \u0027resources:PCPU\u0027\u003dN and \u0027hw:cpu_thread_policy\u003drequired\u0027, right? \nIn this case there is no HW_CPU_HYPERTHREADING trait.\nWhat I understand is we recommend to use the all either placement/tait style or legacy flavor style to create an instance. But currently we haven\u0027t ensured this in the design.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":160,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"It\u0027s also possible to set some ``mixed`` instance vCPUs as real-time vCPU,"},{"line_number":163,"context_line":"``realtime`` CPUs must be chosen from instance ``dedicated`` CPU set."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Affect over emulator thread policy"},{"line_number":166,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_a86aa814","line":163,"updated":"2020-01-27 12:14:01.000000000","message":"Can you expand on what this means? I assume you mean the cores in \u0027hw:cpu_realtime_mask\u0027 must be taken from the dedicated set?","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"It\u0027s also possible to set some ``mixed`` instance vCPUs as real-time vCPU,"},{"line_number":163,"context_line":"``realtime`` CPUs must be chosen from instance ``dedicated`` CPU set."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"Affect over emulator thread policy"},{"line_number":166,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_5a15e893","line":163,"in_reply_to":"3fa7e38b_a86aa814","updated":"2020-01-28 10:14:28.000000000","message":"realtime cpu cores in \u0027hw:cpu_realtime_mask\u0027 should be chosen from the \u0027dedicated\u0027 CPU set in the instance. and the instance \u0027dedicated\u0027 CPU set is a subset of CPU specified in host\u0027s \u0027[compute] cpu_dedicated_set\u0027 configuration.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            hw:cpu_policy\u003dmixed"},{"line_number":215,"context_line":"            hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"This was rejected because it tends to be losing the flexibility of having"},{"line_number":218,"context_line":"infrastructure by offering too much control over instance CPU."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Data model impact"},{"line_number":221,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_68c7d012","line":218,"range":{"start_line":217,"start_character":0,"end_line":218,"end_character":62},"updated":"2020-01-27 12:14:01.000000000","message":"Nonsense :) We already do this for real-time CPUs and to map instance CPUs to a NUMA node (required for asymmetric NUMA topologies, option otherwise). Without this, how do we determine what guest CPUs are allocated from the share pool and which are allocated from the dedicated one?","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"a7730f4b5e3c30662f61d23aee27fb01a580027e","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            hw:cpu_policy\u003dmixed"},{"line_number":215,"context_line":"            hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"This was rejected because it tends to be losing the flexibility of having"},{"line_number":218,"context_line":"infrastructure by offering too much control over instance CPU."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Data model impact"},{"line_number":221,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_c23715fd","line":218,"range":{"start_line":217,"start_character":0,"end_line":218,"end_character":62},"in_reply_to":"3fa7e38b_18cc4788","updated":"2020-02-07 08:08:03.000000000","message":"Discussed and reached the agreement to evolve this spec with this alternative approach on Feb. 6th team meeting.\n  #link http://eavesdrop.openstack.org/meetings/nova/2020/nova.2020-02-06-14.00.log.html","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9a221a13d0b49dfbfe2da6ec65b78d42bd8128d2","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            hw:cpu_policy\u003dmixed"},{"line_number":215,"context_line":"            hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"This was rejected because it tends to be losing the flexibility of having"},{"line_number":218,"context_line":"infrastructure by offering too much control over instance CPU."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Data model impact"},{"line_number":221,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_83ebfc0e","line":218,"range":{"start_line":217,"start_character":0,"end_line":218,"end_character":62},"in_reply_to":"3fa7e38b_68c7d012","updated":"2020-01-28 11:33:34.000000000","message":"Another reason for his kind interface is abandoned is we prefer placement-ess style interface than legacy flavor style interface. see discussion in http://eavesdrop.openstack.org/meetings/nova/2020/nova.2020-01-09-14.00.log.html#l-69 and http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2020-01-09.log.html#t2020-01-09T15:02:28\n\nFor the layout of PCPU and VCPU resource in each instance NUMA cell, we\u0027ll first distribute the VCPU resource then the PCPU resource across the NUMA cells in a round-robin way. For example, for an instance with 4 NUMA nodes, 7 VCPUs and 4 PCPUs, the CPU distribution would be:\nNUMA cell0: CPU0-2 --\u003e (VCPU, VCPU, PCPU)\nNUMA cell1: CPU3-5 --\u003e (VCPU, VCPU, PCPU)\nNUMA cell2: CPU6-8 --\u003e (VCPU, VCPU, PCPU)\nNUMA cell3: CPU9,10 --\u003e (VCPU, PCPU)","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"7971534325acb75317685320095e66cee0b00127","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            hw:cpu_policy\u003dmixed"},{"line_number":215,"context_line":"            hw:cpu_dedicated_mask\u003d0-1,5"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"This was rejected because it tends to be losing the flexibility of having"},{"line_number":218,"context_line":"infrastructure by offering too much control over instance CPU."},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"Data model impact"},{"line_number":221,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_18cc4788","line":218,"range":{"start_line":217,"start_character":0,"end_line":218,"end_character":62},"in_reply_to":"3fa7e38b_83ebfc0e","updated":"2020-01-29 08:37:37.000000000","message":"Later ...\n\nThis is not a proper example, because for an instance with symmetric NUMA topology, flavor.vcpus should be divided by numa.nodes with no remainder. So the example should be adjusted as: an instance with 4 NUMA nodes, contains 7VCPUs and 5 VCPUs, the CPU distribution would be:\nNUMA Cell0 CPU0-2 --\u003e (VCPU, VCPU, PCPU)\nNUMA Cell1 CPU1-5 --\u003e (VCPU, VCPU, PCPU)\nNUMA Cell2 CPU2-8 --\u003e (VCPU, VCPU, PCPU)\nNUMA Cell3 CPU3-11 --\u003e (VCPU, PCPU, PCPU)\n\nFor asymmetric NUMA topology instance which is created through syntax such as \u0027hw:numa_cpus.N\u003dncpu\u0027, here is an example for this:\nnuma_nodes\u003d4\nnuma0 ncpus\u003d2\nnuma1 ncpus\u003d3\nnuma2 ncpu\u003d4\nnuma3 ncpus\u003d3\nresources:PCPU\u003d3, resources:VCPU\u003d9\n\nThe PCPU and VCPU distriction would be:\nNUMA Cell0 CPU0,1 --\u003e (VCPU,VCPU)\nNUMA Cell1 CPU2-4 --\u003e (VCPU,VCPU,VCPU)\nNUMA Cell2 CPU5-8 --\u003e (VCPU,VCPU,PCPU,PCPU)\nNUMA Cell3 CPU9-11 -\u003e （VCPU,VCPU,PCPU)\n\nThe layout of PCPU and VCPU, especially the asymmetric NUMA instance case, is not intuitive to the end-user.\nI don\u0027t know if it is acceptable to mark the \u0027mixed\u0027 policy as unavailable to instance with asymmetric NUMA topology.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"``InstanceNUMACell.cpu_pinning`` field is used to keep the instance"},{"line_number":224,"context_line":"``dedicated`` CPU information in the keys. This is the original purpose"},{"line_number":225,"context_line":"of this field."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"No change over data objects."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_28cd582e","line":225,"updated":"2020-01-27 12:14:01.000000000","message":"To be clear, you\u0027re saying this field will not contain CPUs that are deemed \"shared\", yes?","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"``InstanceNUMACell.cpu_pinning`` field is used to keep the instance"},{"line_number":224,"context_line":"``dedicated`` CPU information in the keys. This is the original purpose"},{"line_number":225,"context_line":"of this field."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"No change over data objects."},{"line_number":228,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_71aed82f","line":225,"in_reply_to":"3fa7e38b_28cd582e","updated":"2020-01-28 10:14:28.000000000","message":"Yes.\n\nwill refine.","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"01559c6402af252fbde08bb54432962a420d72ff","unresolved":false,"context_lines":[{"line_number":233,"context_line":"OpenStack metadata version will be added to indicate this is a new metadata"},{"line_number":234,"context_line":"API."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The new field will be added to the ``meta_data.json``::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    dedicated_cpus\u003d\u003ccpu set string\u003e"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_c8d7e4bf","line":236,"range":{"start_line":236,"start_character":37,"end_line":236,"end_character":46},"updated":"2020-01-27 12:14:01.000000000","message":"metadata (I think)\n\nLater: nope, \u0027meta_data\u0027 is what we use. Grr","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"0838dd1877032d77e6fbfe762f1dc52464c9536b","unresolved":false,"context_lines":[{"line_number":233,"context_line":"OpenStack metadata version will be added to indicate this is a new metadata"},{"line_number":234,"context_line":"API."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"The new field will be added to the ``meta_data.json``::"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    dedicated_cpus\u003d\u003ccpu set string\u003e"},{"line_number":239,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"3fa7e38b_fac37404","line":236,"range":{"start_line":236,"start_character":37,"end_line":236,"end_character":46},"in_reply_to":"3fa7e38b_c8d7e4bf","updated":"2020-01-28 10:14:28.000000000","message":"Done","commit_id":"6112cc3ff51b2450f2d5a5162e973db8ece04f14"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"717e6a11a86301dff915b00ba1baacc26df9ba50","unresolved":false,"context_lines":[{"line_number":118,"context_line":"As an interface to create the ``mixed`` policy instance through legacy flavor"},{"line_number":119,"context_line":"extra specs or image properties, the flavor extra spec ``hw:numa_pinned_cpus``"},{"line_number":120,"context_line":"and its equivalent image property ``hw_numa_pinned_cpus`` are introduced. If"},{"line_number":121,"context_line":"flavor extra spec ``hw:numa_pinned_cpus`` or image property"},{"line_number":122,"context_line":"``hw_numa_pinned_cpus`` is found in the settings of an instance , then the"},{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy::"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_4c2b45e9","line":121,"range":{"start_line":121,"start_character":23,"end_line":121,"end_character":39},"updated":"2020-02-10 02:09:27.000000000","message":"maybe just call it as \u0027pinned_cpus\u0027, I don\u0027t think we should have \u0027numa\u0027 prefix, since the pinned cpu isn\u0027t related to NUMA.","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"d558f2621a16a0d4d3fbdb4286ca32b6cb5ecdd4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"As an interface to create the ``mixed`` policy instance through legacy flavor"},{"line_number":119,"context_line":"extra specs or image properties, the flavor extra spec ``hw:numa_pinned_cpus``"},{"line_number":120,"context_line":"and its equivalent image property ``hw_numa_pinned_cpus`` are introduced. If"},{"line_number":121,"context_line":"flavor extra spec ``hw:numa_pinned_cpus`` or image property"},{"line_number":122,"context_line":"``hw_numa_pinned_cpus`` is found in the settings of an instance , then the"},{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy::"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_2cb9297b","line":121,"range":{"start_line":121,"start_character":23,"end_line":121,"end_character":39},"in_reply_to":"3fa7e38b_4c2b45e9","updated":"2020-02-10 03:07:21.000000000","message":"It is good for me.","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"717e6a11a86301dff915b00ba1baacc26df9ba50","unresolved":false,"context_lines":[{"line_number":173,"context_line":"instance::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    openstack flavor set \\"},{"line_number":176,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":177,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":178,"context_line":"        \u003cflavor_id\u003e"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":181,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_2c0fe98b","line":178,"range":{"start_line":176,"start_character":8,"end_line":178,"end_character":19},"updated":"2020-02-10 02:09:27.000000000","message":"we also required the \"hw:numa_pinned_cpu\" in the extra specs.","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"d558f2621a16a0d4d3fbdb4286ca32b6cb5ecdd4","unresolved":false,"context_lines":[{"line_number":173,"context_line":"instance::"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    openstack flavor set \\"},{"line_number":176,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":177,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":178,"context_line":"        \u003cflavor_id\u003e"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":181,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_acfe7936","line":178,"range":{"start_line":176,"start_character":8,"end_line":178,"end_character":19},"in_reply_to":"3fa7e38b_2c0fe98b","updated":"2020-02-10 03:07:21.000000000","message":"with the \u0027hw(:|_)pinned_cpu\u0027 it will be much easier to express \u0027which vCPU is pinned on which host CPU\u0027. I don\u0027t find an easy-to-understand policy, including spreading vCPUs on NUMA cells in a round-robin way, to arrange the vCPUs when there are multiple NUMA cells in instance.\n\nBut I don\u0027t know whether it will violate the rule for avoiding mixing placement-ess style flavor with legacy flavors.\n\nI tend to take your advice.","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"717e6a11a86301dff915b00ba1baacc26df9ba50","unresolved":false,"context_lines":[{"line_number":182,"context_line":"``dedicated`` or ``shared`` policy instance, that all CPUs in the instance"},{"line_number":183,"context_line":"is in same allocation policy."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"It is also required to consider the demanding of one extra ``PCPU`` resource"},{"line_number":186,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":187,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":188,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":189,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":".. note::"},{"line_number":192,"context_line":"    The demanding instance CPU number is the number of vCPU, specified by"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_ac22f900","line":189,"range":{"start_line":185,"start_character":0,"end_line":189,"end_character":46},"updated":"2020-02-10 02:09:27.000000000","message":"This sounds like part of \"Affect over emulator thread policy\", since it is rule also for using \"hw:\" extra specs.","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"d558f2621a16a0d4d3fbdb4286ca32b6cb5ecdd4","unresolved":false,"context_lines":[{"line_number":182,"context_line":"``dedicated`` or ``shared`` policy instance, that all CPUs in the instance"},{"line_number":183,"context_line":"is in same allocation policy."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"It is also required to consider the demanding of one extra ``PCPU`` resource"},{"line_number":186,"context_line":"by emulator thread, if the emulator thread policy is ``ISOLATE``. The total"},{"line_number":187,"context_line":"``PCPU`` and ``VCPU`` resources requested from the resource provider of"},{"line_number":188,"context_line":"this computing node should match the value of ``flavor.vcpus`` and the"},{"line_number":189,"context_line":"``PCPU`` resource demanded by emulator thread."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":".. note::"},{"line_number":192,"context_line":"    The demanding instance CPU number is the number of vCPU, specified by"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_8f3e0fb4","line":189,"range":{"start_line":185,"start_character":0,"end_line":189,"end_character":46},"in_reply_to":"3fa7e38b_ac22f900","updated":"2020-02-10 03:07:21.000000000","message":"Yes. This part is duplicated with the section \u0027affect over emulator thread policy\u0027, will be removed.","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"717e6a11a86301dff915b00ba1baacc26df9ba50","unresolved":false,"context_lines":[{"line_number":266,"context_line":"The ``\u003ccpu set string\u003e`` indicated the vCPU IDs which are running on dedicated"},{"line_number":267,"context_line":"host CPUs."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"The new cpu policy ``mixed`` is added to extra spec ``hw:cpu_policy``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Security impact"},{"line_number":272,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_2c74c903","line":269,"updated":"2020-02-10 02:09:27.000000000","message":"and \"hw:pinned_cpus\"","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"d558f2621a16a0d4d3fbdb4286ca32b6cb5ecdd4","unresolved":false,"context_lines":[{"line_number":266,"context_line":"The ``\u003ccpu set string\u003e`` indicated the vCPU IDs which are running on dedicated"},{"line_number":267,"context_line":"host CPUs."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"The new cpu policy ``mixed`` is added to extra spec ``hw:cpu_policy``."},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Security impact"},{"line_number":272,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"3fa7e38b_cca97525","line":269,"in_reply_to":"3fa7e38b_2c74c903","updated":"2020-02-10 03:07:21.000000000","message":"Done","commit_id":"6886854260be2edf5991d7b254ef495bb6ca89f1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As an operator, I would like to have an instance with some realtime CPUs for"},{"line_number":32,"context_line":"high performance, and at the same time, in order to increase instance density,"},{"line_number":33,"context_line":"I wish to make the remaining CPUs, which do not demand high performance,"},{"line_number":34,"context_line":"shared with other instances because I only care about the performance of"},{"line_number":35,"context_line":"realtime CPUs. One example is deploying the OVS module in an instance,"},{"line_number":36,"context_line":"processing the data plane tasks with realtime CPUs and scheduling the"},{"line_number":37,"context_line":"control-plane tasks on CPUs that shared with other instances."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"As a Kubernetes administrator, I wish to run a multi-tier or auto-scaling"},{"line_number":40,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_167e84e1","line":37,"range":{"start_line":31,"start_character":0,"end_line":37,"end_character":61},"updated":"2020-02-12 15:29:53.000000000","message":"yep this is a good usecase for this feature +1\n\nyou can substitue ovs in the above with your vnf of choice and it more or less holds true. realtime pinned cpus are needed for the dataplane processes and shared cores are suitable for the contolplane/management processes.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":28,"context_line":"Use Cases"},{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As an operator, I would like to have an instance with some realtime CPUs for"},{"line_number":32,"context_line":"high performance, and at the same time, in order to increase instance density,"},{"line_number":33,"context_line":"I wish to make the remaining CPUs, which do not demand high performance,"},{"line_number":34,"context_line":"shared with other instances because I only care about the performance of"},{"line_number":35,"context_line":"realtime CPUs. One example is deploying the OVS module in an instance,"},{"line_number":36,"context_line":"processing the data plane tasks with realtime CPUs and scheduling the"},{"line_number":37,"context_line":"control-plane tasks on CPUs that shared with other instances."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"As a Kubernetes administrator, I wish to run a multi-tier or auto-scaling"},{"line_number":40,"context_line":"application in Kubernetes, which is running in single OpenStack VM, with"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_1d4c553e","line":37,"range":{"start_line":31,"start_character":0,"end_line":37,"end_character":61},"in_reply_to":"3fa7e38b_167e84e1","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":79,"context_line":"|               | SHARED    | dedicated | conflict  | shared    | shared    |"},{"line_number":80,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":81,"context_line":"|               | undefined | dedicated | mixed     | shared    | undefined |"},{"line_number":82,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_f6c88820","line":81,"range":{"start_line":81,"start_character":66,"end_line":81,"end_character":75},"updated":"2020-02-12 15:29:53.000000000","message":"nit: in practice if its not defiend in the image or flavor it will be shared.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"12e44e188457dbd2035f935051d89fd7d67eb40c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":79,"context_line":"|               | SHARED    | dedicated | conflict  | shared    | shared    |"},{"line_number":80,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":81,"context_line":"|               | undefined | dedicated | mixed     | shared    | undefined |"},{"line_number":82,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_b8d3cc62","line":81,"range":{"start_line":81,"start_character":66,"end_line":81,"end_character":75},"in_reply_to":"3fa7e38b_5565c1ae","updated":"2020-02-13 12:42:57.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ec4e589647baec293365baf2844dac4f9a0c7c3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":79,"context_line":"|               | SHARED    | dedicated | conflict  | shared    | shared    |"},{"line_number":80,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":81,"context_line":"|               | undefined | dedicated | mixed     | shared    | undefined |"},{"line_number":82,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_5565c1ae","line":81,"range":{"start_line":81,"start_character":66,"end_line":81,"end_character":75},"in_reply_to":"3fa7e38b_71cc9861","updated":"2020-02-13 11:58:45.000000000","message":"it is shared unless you use ``resources:PCPU``\nand ``resources:VCPU``to define a policy implicitly.\nbut its fine as you have stated it i was assuming that those would not be used as i dont think operators should use them except for ironic.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":78,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":79,"context_line":"|               | SHARED    | dedicated | conflict  | shared    | shared    |"},{"line_number":80,"context_line":"+               +-----------+-----------+-----------+-----------+-----------+"},{"line_number":81,"context_line":"|               | undefined | dedicated | mixed     | shared    | undefined |"},{"line_number":82,"context_line":"+---------------+-----------+-----------+-----------+-----------+-----------+"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"For example, if a ``dedicated`` CPU policy is specified in instance flavor"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_71cc9861","line":81,"range":{"start_line":81,"start_character":66,"end_line":81,"end_character":75},"in_reply_to":"3fa7e38b_f6c88820","updated":"2020-02-13 10:01:43.000000000","message":"I don\u0027t think the final instance CPU allocation policy is \u0027shared\u0027 effectively in this case, which is explained in L91-L97.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":104,"context_line":"Affect over emulator thread policy"},{"line_number":105,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"If emulator thread policy is ``ISOLATE``, the *mixed* instance will look for"},{"line_number":108,"context_line":"a *dedicated* host CPU for instance emulator thread, which is very similar"},{"line_number":109,"context_line":"to the case introduced by ``dedicated`` policy instance."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"If the emulator thread policy is ``SHARE``, then the instance emulator thread"},{"line_number":112,"context_line":"will float over the host CPUs defined in configuration"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_b10e9a30","line":109,"range":{"start_line":107,"start_character":0,"end_line":109,"end_character":56},"updated":"2020-02-12 15:29:53.000000000","message":"i think its actully identical to what we do with dedicated instances. so ya this makes sense to me","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":104,"context_line":"Affect over emulator thread policy"},{"line_number":105,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"If emulator thread policy is ``ISOLATE``, the *mixed* instance will look for"},{"line_number":108,"context_line":"a *dedicated* host CPU for instance emulator thread, which is very similar"},{"line_number":109,"context_line":"to the case introduced by ``dedicated`` policy instance."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"If the emulator thread policy is ``SHARE``, then the instance emulator thread"},{"line_number":112,"context_line":"will float over the host CPUs defined in configuration"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_f101686e","line":109,"range":{"start_line":107,"start_character":0,"end_line":109,"end_character":56},"in_reply_to":"3fa7e38b_b10e9a30","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":108,"context_line":"a *dedicated* host CPU for instance emulator thread, which is very similar"},{"line_number":109,"context_line":"to the case introduced by ``dedicated`` policy instance."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"If the emulator thread policy is ``SHARE``, then the instance emulator thread"},{"line_number":112,"context_line":"will float over the host CPUs defined in configuration"},{"line_number":113,"context_line":"``CONF.compute.cpu_shared_set``."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Create ``mixed`` instance by ``hw:pinned_cpus`` or ``hw_pinned_cpus``"},{"line_number":116,"context_line":"-------------------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_3124eab1","line":113,"range":{"start_line":111,"start_character":0,"end_line":113,"end_character":32},"updated":"2020-02-12 15:29:53.000000000","message":"and ya this is identical too so +1","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":108,"context_line":"a *dedicated* host CPU for instance emulator thread, which is very similar"},{"line_number":109,"context_line":"to the case introduced by ``dedicated`` policy instance."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"If the emulator thread policy is ``SHARE``, then the instance emulator thread"},{"line_number":112,"context_line":"will float over the host CPUs defined in configuration"},{"line_number":113,"context_line":"``CONF.compute.cpu_shared_set``."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Create ``mixed`` instance by ``hw:pinned_cpus`` or ``hw_pinned_cpus``"},{"line_number":116,"context_line":"-------------------------------------------------------------------------------"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_11052479","line":113,"range":{"start_line":111,"start_character":0,"end_line":113,"end_character":32},"in_reply_to":"3fa7e38b_3124eab1","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"56cdf539900934e540620203b9fb9056592bab29","unresolved":false,"context_lines":[{"line_number":118,"context_line":"As an interface to create the ``mixed`` policy instance through legacy flavor"},{"line_number":119,"context_line":"extra specs or image properties, the flavor extra spec ``hw:pinned_cpus``"},{"line_number":120,"context_line":"and its equivalent image property ``hw_pinned_cpus`` are introduced. If"},{"line_number":121,"context_line":"flavor extra spec ``hw:pinned_cpus`` or image property"},{"line_number":122,"context_line":"``hw_pinned_cpus`` is found in the settings of an instance , then the"},{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy:"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_e67f77b9","line":122,"range":{"start_line":121,"start_character":37,"end_line":122,"end_character":19},"updated":"2020-02-12 17:38:59.000000000","message":"This doesn\u0027t make sense. You can only specify the number of CPUs (pinned or unpinned) via the flavor, so there\u0027s no point to set this value via the flavor when you don\u0027t know how many CPUs you\u0027re going to get. Can you drop this?","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ec4e589647baec293365baf2844dac4f9a0c7c3","unresolved":false,"context_lines":[{"line_number":118,"context_line":"As an interface to create the ``mixed`` policy instance through legacy flavor"},{"line_number":119,"context_line":"extra specs or image properties, the flavor extra spec ``hw:pinned_cpus``"},{"line_number":120,"context_line":"and its equivalent image property ``hw_pinned_cpus`` are introduced. If"},{"line_number":121,"context_line":"flavor extra spec ``hw:pinned_cpus`` or image property"},{"line_number":122,"context_line":"``hw_pinned_cpus`` is found in the settings of an instance , then the"},{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy:"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_f522ad52","line":122,"range":{"start_line":121,"start_character":37,"end_line":122,"end_character":19},"in_reply_to":"3fa7e38b_d17d4ce5","updated":"2020-02-13 11:58:45.000000000","message":"i am kind of neutral on this. i am ok with leaving it but if stephen really want to not have it then im ok with that too.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":118,"context_line":"As an interface to create the ``mixed`` policy instance through legacy flavor"},{"line_number":119,"context_line":"extra specs or image properties, the flavor extra spec ``hw:pinned_cpus``"},{"line_number":120,"context_line":"and its equivalent image property ``hw_pinned_cpus`` are introduced. If"},{"line_number":121,"context_line":"flavor extra spec ``hw:pinned_cpus`` or image property"},{"line_number":122,"context_line":"``hw_pinned_cpus`` is found in the settings of an instance , then the"},{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy:"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_d17d4ce5","line":122,"range":{"start_line":121,"start_character":37,"end_line":122,"end_character":19},"in_reply_to":"3fa7e38b_e67f77b9","updated":"2020-02-13 10:01:43.000000000","message":"I checked the current settings for realtime cpus and uneven numa node cpus, they all can be set through image properties. Specifically, \u0027hw_cpu_realtime_mask\u0027 for real-time cpus, and \u0027hw_numa_cpus.N\u0027 for the numa case. \n\nI think these two cases are just like the proposing \u0027hw_pinned_cpus\u0027, they all set some instance cpus as realtime or in some particular numa cell when the instance cpu number is unknown.\n\nBut after I read the discussion between you and Sean-k-mooney in IRC, link#http://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2020-02-12.log.html, I decided to remove to this image property since you have all these considered.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2bd1274508ac7dd9695963a8a54cd6bcce47ae2c","unresolved":false,"context_lines":[{"line_number":118,"context_line":"As an interface to create the ``mixed`` policy instance through legacy flavor"},{"line_number":119,"context_line":"extra specs or image properties, the flavor extra spec ``hw:pinned_cpus``"},{"line_number":120,"context_line":"and its equivalent image property ``hw_pinned_cpus`` are introduced. If"},{"line_number":121,"context_line":"flavor extra spec ``hw:pinned_cpus`` or image property"},{"line_number":122,"context_line":"``hw_pinned_cpus`` is found in the settings of an instance , then the"},{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy:"},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_11bd2466","line":122,"range":{"start_line":121,"start_character":37,"end_line":122,"end_character":19},"in_reply_to":"3fa7e38b_e67f77b9","updated":"2020-02-13 02:54:04.000000000","message":"good point...I\u0027m thinking about this. I think it is allow the user snapshot the instance, and create image with their own perference. Also we have image meta for realtime_mask.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"56cdf539900934e540620203b9fb9056592bab29","unresolved":false,"context_lines":[{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"..code::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    $ openstack flavor set \u003cflavor_id\u003e \\"},{"line_number":129,"context_line":"        --property hw:cpu_policy\u003dmixed \\"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_e6fa1742","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":1},"updated":"2020-02-12 17:38:59.000000000","message":"You need spaces after the \u0027..\u0027, e.g.\n\n  .. code::\n\notherwise this renders as you\u0027ve typed it here","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":123,"context_line":"information of the *dedicated* CPU could be found through parsing the settings."},{"line_number":124,"context_line":"Here is the example to create an instance with ``mixed`` policy:"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"..code::"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    $ openstack flavor set \u003cflavor_id\u003e \\"},{"line_number":129,"context_line":"        --property hw:cpu_policy\u003dmixed \\"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_71681821","line":126,"range":{"start_line":126,"start_character":0,"end_line":126,"end_character":1},"in_reply_to":"3fa7e38b_e6fa1742","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"56cdf539900934e540620203b9fb9056592bab29","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        --property hw:cpu_policy\u003dmixed \\"},{"line_number":130,"context_line":"        --property hw:pinned_cpus\u003d0-3,7"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"Also, here is the example to create such kind of instance through image"},{"line_number":133,"context_line":" property:"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"..code::"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    $ openstack image set \u003cimage_id\u003e \\"},{"line_number":138,"context_line":"        --property hw_cpu_policy\u003dmixed \\"},{"line_number":139,"context_line":"        --property hw_pinned_cpus\u003d0-3,7"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"``hw:pinned_cpus`` and ``hw_pinned_cpus`` could also be used to"},{"line_number":142,"context_line":"create the *mixed* instance with multiple NUMA nodes, the flavor could be"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_46ba0b71","line":139,"range":{"start_line":132,"start_character":0,"end_line":139,"end_character":39},"updated":"2020-02-12 17:38:59.000000000","message":"Drop this, per above, or show a combination of image (for the policy) and flavor (for the actual pinned CPUs value)","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        --property hw:numa_nodes\u003d2 \\"},{"line_number":151,"context_line":"        --property hw:numa_cpus.0\u003d0-2 \\"},{"line_number":152,"context_line":"        --property hw:numa_cpus.1\u003d3-7 \\"},{"line_number":153,"context_line":"        --property hw:numa_mems.0\u003d1024 \\"},{"line_number":154,"context_line":"        --property hw:numa_mems.1\u003d2048"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"And creating equivalent instance through the image properties:"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_31494a65","line":153,"range":{"start_line":153,"start_character":19,"end_line":153,"end_character":31},"updated":"2020-02-12 15:29:53.000000000","message":"nit: this is singular e.g. hw:numa_mem not hw:numa_mems","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        --property hw:numa_nodes\u003d2 \\"},{"line_number":151,"context_line":"        --property hw:numa_cpus.0\u003d0-2 \\"},{"line_number":152,"context_line":"        --property hw:numa_cpus.1\u003d3-7 \\"},{"line_number":153,"context_line":"        --property hw:numa_mems.0\u003d1024 \\"},{"line_number":154,"context_line":"        --property hw:numa_mems.1\u003d2048"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"And creating equivalent instance through the image properties:"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_b1f7708e","line":153,"range":{"start_line":153,"start_character":19,"end_line":153,"end_character":31},"in_reply_to":"3fa7e38b_31494a65","updated":"2020-02-13 10:01:43.000000000","message":"done. thanks.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"56cdf539900934e540620203b9fb9056592bab29","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    $ openstack flavor set \\"},{"line_number":186,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":187,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":188,"context_line":"        --property \"hw:pinned_cpus\"\u003d\"\u003ccpuset for dedicated vCPUs\u003e\" \\"},{"line_number":189,"context_line":"        \u003cflavor_id\u003e"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"or setting *dedicated* vCPU cpuset through image property, then requesting"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_26410f63","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":68},"updated":"2020-02-12 17:38:59.000000000","message":"I don\u0027t like this. Again, this is an example of mixing old-style syntax with placement\u0027y syntax. We shouldn\u0027t be doing that. Instead, can we automatically split the pinned cores between NUMA nodes and allocate the first cores in each node as unpinned and the remaining cores as unpinned?\n\nLater: looks like alex_xu already called this out. I think automatically doing this like I\u0027ve suggested is okay so long as we document the behavior","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2bd1274508ac7dd9695963a8a54cd6bcce47ae2c","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    $ openstack flavor set \\"},{"line_number":186,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":187,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":188,"context_line":"        --property \"hw:pinned_cpus\"\u003d\"\u003ccpuset for dedicated vCPUs\u003e\" \\"},{"line_number":189,"context_line":"        \u003cflavor_id\u003e"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"or setting *dedicated* vCPU cpuset through image property, then requesting"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_d1678c22","line":188,"range":{"start_line":188,"start_character":0,"end_line":188,"end_character":68},"in_reply_to":"3fa7e38b_26410f63","updated":"2020-02-13 02:54:04.000000000","message":"We can do a simple algo, like around-robin, and start from the beginning of the cpus. We don\u0027t need to be prefer algorithm at here, since we expect the user to use \u0027hw:pinned_cpus\u0027","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4e27a95f71f9db124f1846b947a41ad7049d6a2e","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"..code::"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     $ openstack image set \u003cimage_id\u003e \\"},{"line_number":197,"context_line":"        --property \"hw_pinned_cpus\"\u003d\"\u003ccpuset for dedicated vCPUs\u003e\" \\"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"     $ openstack flavor set \\"},{"line_number":200,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":201,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":202,"context_line":"        \u003cflavor_id\u003e"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":205,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_d6378cda","line":202,"range":{"start_line":196,"start_character":4,"end_line":202,"end_character":19},"updated":"2020-02-12 14:31:08.000000000","message":"If we want to use \"resources\", then we have to use \"extra spec\". Then we are into the case mix placement-ese and extra-specs. But looks like we have no choice.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"..code::"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     $ openstack image set \u003cimage_id\u003e \\"},{"line_number":197,"context_line":"        --property \"hw_pinned_cpus\"\u003d\"\u003ccpuset for dedicated vCPUs\u003e\" \\"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"     $ openstack flavor set \\"},{"line_number":200,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":201,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":202,"context_line":"        \u003cflavor_id\u003e"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":205,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_712018b2","line":202,"range":{"start_line":196,"start_character":4,"end_line":202,"end_character":19},"in_reply_to":"3fa7e38b_51d16655","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"..code::"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     $ openstack image set \u003cimage_id\u003e \\"},{"line_number":197,"context_line":"        --property \"hw_pinned_cpus\"\u003d\"\u003ccpuset for dedicated vCPUs\u003e\" \\"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"     $ openstack flavor set \\"},{"line_number":200,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":201,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":202,"context_line":"        \u003cflavor_id\u003e"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":205,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_911b5482","line":202,"range":{"start_line":196,"start_character":4,"end_line":202,"end_character":19},"in_reply_to":"3fa7e38b_d6378cda","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"..code::"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     $ openstack image set \u003cimage_id\u003e \\"},{"line_number":197,"context_line":"        --property \"hw_pinned_cpus\"\u003d\"\u003ccpuset for dedicated vCPUs\u003e\" \\"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"     $ openstack flavor set \\"},{"line_number":200,"context_line":"        --property \"resources:PCPU\"\u003d\"\u003cdedicated CPU number\u003e\" \\"},{"line_number":201,"context_line":"        --property \"resources:VCPU\"\u003d\"\u003cshared CPU number\u003e\" \\"},{"line_number":202,"context_line":"        \u003cflavor_id\u003e"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":205,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_51d16655","line":202,"range":{"start_line":196,"start_character":4,"end_line":202,"end_character":19},"in_reply_to":"3fa7e38b_d6378cda","updated":"2020-02-12 15:29:53.000000000","message":"ya im more ok with that via the image but i dont see a way around it without blocking the placement syntax. i think we should jsut encurate not doing it this way.\nand just doing --property hw_cpu_policy\u003dmixed \\        --property hw_pinned_cpus\u003d2,7 \\\n\nat least for ussuri","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"56cdf539900934e540620203b9fb9056592bab29","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        \u003cflavor_id\u003e"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":205,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":206,"context_line":"``dedicated`` or ``shared`` policy instance, that all CPUs in the instance"},{"line_number":207,"context_line":"is in same allocation policy."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_a64c1f97","line":205,"range":{"start_line":205,"start_character":23,"end_line":205,"end_character":42},"updated":"2020-02-12 17:38:59.000000000","message":"must be greater than zero","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        \u003cflavor_id\u003e"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"For *mixed* instance created in such way, both \u003cshared CPU number\u003e and"},{"line_number":205,"context_line":"\u003cdedicated CPU number\u003e are illegal to be 0, which effectively created a"},{"line_number":206,"context_line":"``dedicated`` or ``shared`` policy instance, that all CPUs in the instance"},{"line_number":207,"context_line":"is in same allocation policy."},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_b43d1ee7","line":205,"range":{"start_line":205,"start_character":23,"end_line":205,"end_character":42},"in_reply_to":"3fa7e38b_a64c1f97","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Data model impact"},{"line_number":257,"context_line":"-----------------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"No change over data objects."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"..note::"},{"line_number":262,"context_line":"    The ``InstanceNUMACell.cpu_pinning`` field keeps the CPU pinning"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_315ceaee","line":259,"range":{"start_line":259,"start_character":10,"end_line":259,"end_character":14},"updated":"2020-02-12 15:29:53.000000000","message":"nit: to","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":256,"context_line":"Data model impact"},{"line_number":257,"context_line":"-----------------"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"No change over data objects."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"..note::"},{"line_number":262,"context_line":"    The ``InstanceNUMACell.cpu_pinning`` field keeps the CPU pinning"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_51215cb1","line":259,"range":{"start_line":259,"start_character":10,"end_line":259,"end_character":14},"in_reply_to":"3fa7e38b_315ceaee","updated":"2020-02-13 10:01:43.000000000","message":"Done","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"5a90713bed461d899f0e7991b0fde10d1ca23940","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Work Items"},{"line_number":346,"context_line":"----------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* Add new instance CPU allocation policy ``mixed`` property and resolve"},{"line_number":349,"context_line":"  conflicts"},{"line_number":350,"context_line":"* Add flavor extra spec ``hw:pinned_cpus`` and create *mixed* instance"},{"line_number":351,"context_line":"* Add image property ``hw_pinned_cpus`` and create *mixed* instance"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_3675c000","line":348,"updated":"2020-02-12 15:00:32.000000000","message":"you need to bump service object version also. But that can be a follow-up patch to fix","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ec4e589647baec293365baf2844dac4f9a0c7c3","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Work Items"},{"line_number":346,"context_line":"----------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* Add new instance CPU allocation policy ``mixed`` property and resolve"},{"line_number":349,"context_line":"  conflicts"},{"line_number":350,"context_line":"* Add flavor extra spec ``hw:pinned_cpus`` and create *mixed* instance"},{"line_number":351,"context_line":"* Add image property ``hw_pinned_cpus`` and create *mixed* instance"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_b5c67568","line":348,"in_reply_to":"3fa7e38b_317860c0","updated":"2020-02-13 11:58:45.000000000","message":"it will be important to have that trait if you have mixed hypervisors. this will only be supported by libvirt so if you have libvirt and hyperv it will be used to ensure you land on the libvirt node so i think it makes sesne to have after upgrade too.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"60fbf9164761e6eec5ed7788021bd04d4b7e8a1c","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Work Items"},{"line_number":346,"context_line":"----------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* Add new instance CPU allocation policy ``mixed`` property and resolve"},{"line_number":349,"context_line":"  conflicts"},{"line_number":350,"context_line":"* Add flavor extra spec ``hw:pinned_cpus`` and create *mixed* instance"},{"line_number":351,"context_line":"* Add image property ``hw_pinned_cpus`` and create *mixed* instance"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_43fbdd13","line":348,"in_reply_to":"3fa7e38b_3675c000","updated":"2020-02-12 15:58:35.000000000","message":"im not strictly sure that is requried.\nyou need to extend the image metadata object field which would bump the object version and the notification objects will have to be extended as a result as will the numa toplogy object. but i think you just need to bump the object version for those not the service.\n\nif you were thinking of usign the service version as a proxy for suppot of mixed cpus a better way to do that is a comptue capablity trait like we do for multi attached volumes.\n\n------\noh later i see the service bump is called out on line 328 so we can ensure its only enabled when the entire cloud is upgraded.\n\nya if we use the comptue capablity trait i think we can skip that requirement and support this without the entire cloud been upgraded. when ever the shduler traslates the requiremetns it will just add required\u003dCOMPUTE_MIX_CPUS or whatever the trait woudl be.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"2bd1274508ac7dd9695963a8a54cd6bcce47ae2c","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Work Items"},{"line_number":346,"context_line":"----------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* Add new instance CPU allocation policy ``mixed`` property and resolve"},{"line_number":349,"context_line":"  conflicts"},{"line_number":350,"context_line":"* Add flavor extra spec ``hw:pinned_cpus`` and create *mixed* instance"},{"line_number":351,"context_line":"* Add image property ``hw_pinned_cpus`` and create *mixed* instance"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_317860c0","line":348,"in_reply_to":"3fa7e38b_43fbdd13","updated":"2020-02-13 02:54:04.000000000","message":"\u003e im not strictly sure that is requried.\n \u003e you need to extend the image metadata object field which would bump\n \u003e the object version and the notification objects will have to be\n \u003e extended as a result as will the numa toplogy object. but i think\n \u003e you just need to bump the object version for those not the service.\n \u003e \n \u003e if you were thinking of usign the service version as a proxy for\n \u003e suppot of mixed cpus a better way to do that is a comptue capablity\n \u003e trait like we do for multi attached volumes.\n \u003e \n \u003e ------\n \u003e oh later i see the service bump is called out on line 328 so we can\n \u003e ensure its only enabled when the entire cloud is upgraded.\n \u003e \n \u003e ya if we use the comptue capablity trait i think we can skip that\n \u003e requirement and support this without the entire cloud been\n \u003e upgraded. when ever the shduler traslates the requiremetns it will\n \u003e just add required\u003dCOMPUTE_MIX_CPUS or whatever the trait woudl be.\n\nBut COMPUTE_MIX_CPUS trait will be useless after upgrade, if it is still have important usecase after upgrade, I would say yes. But it is just for upgrade, then we will prefer to use service version.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3bfd8b7a89f0b6aa5f58eceaeab3aa3e568b8bd4","unresolved":false,"context_lines":[{"line_number":345,"context_line":"Work Items"},{"line_number":346,"context_line":"----------"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":"* Add new instance CPU allocation policy ``mixed`` property and resolve"},{"line_number":349,"context_line":"  conflicts"},{"line_number":350,"context_line":"* Add flavor extra spec ``hw:pinned_cpus`` and create *mixed* instance"},{"line_number":351,"context_line":"* Add image property ``hw_pinned_cpus`` and create *mixed* instance"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_185ea078","line":348,"in_reply_to":"3fa7e38b_b5c67568","updated":"2020-02-13 13:09:28.000000000","message":"But currently, only libvirt virt driver supports to report PCPU, so the trait becomes useless again. To avoid adding extra trait in the placement request which consume extra filtering or db query inside placement, still prefer to use service version.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"67941e04c42b6cfed393403a54880cf160d4a1f3","unresolved":false,"context_lines":[{"line_number":373,"context_line":"* Ensure *shared* vCPUs is placed before the ``dedicated`` vCPUs"},{"line_number":374,"context_line":"* Ensure the emulator CPU is properly scheduled according to its policy."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"For the functional test, it is required to pass the `whitebox tempest plugin`_"},{"line_number":377,"context_line":"test."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Documentation Impact"},{"line_number":380,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_1123ee58","line":377,"range":{"start_line":376,"start_character":1,"end_line":377,"end_character":5},"updated":"2020-02-12 15:29:53.000000000","message":"am that would be nice but for functional test i would like too see the intreee numa functional testes exteded to support mixed instances. white box is integration testing and it would be nice to have that in attion to the functional test but i dont think its required. at least upstream, downstream we would need to support testing this via whitebox before we could support it in the product so of you do feel like adding whtiebox integration tests i wont say no to them :)","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"9e05ab1550d8391f7deb4598544d6ffb14086f45","unresolved":false,"context_lines":[{"line_number":373,"context_line":"* Ensure *shared* vCPUs is placed before the ``dedicated`` vCPUs"},{"line_number":374,"context_line":"* Ensure the emulator CPU is properly scheduled according to its policy."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"For the functional test, it is required to pass the `whitebox tempest plugin`_"},{"line_number":377,"context_line":"test."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Documentation Impact"},{"line_number":380,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_7709e82f","line":377,"range":{"start_line":376,"start_character":1,"end_line":377,"end_character":5},"in_reply_to":"3fa7e38b_1123ee58","updated":"2020-02-13 10:01:43.000000000","message":"agree. will extend the intree numa functional test cases also.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0ec4e589647baec293365baf2844dac4f9a0c7c3","unresolved":false,"context_lines":[{"line_number":373,"context_line":"* Ensure *shared* vCPUs is placed before the ``dedicated`` vCPUs"},{"line_number":374,"context_line":"* Ensure the emulator CPU is properly scheduled according to its policy."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"For the functional test, it is required to pass the `whitebox tempest plugin`_"},{"line_number":377,"context_line":"test."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Documentation Impact"},{"line_number":380,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_b58bd51f","line":377,"range":{"start_line":376,"start_character":1,"end_line":377,"end_character":5},"in_reply_to":"3fa7e38b_7709e82f","updated":"2020-02-13 11:58:45.000000000","message":"cool i would remove the reference to whitebox. please feel free to extend those test if you have time but we should not require you to in the spec. if the in tree functional tests are extended i think you have met the minium requirement for testing.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"},{"author":{"_account_id":30209,"name":"Huaqiang","email":"huaqiang.wang@intel.com","username":"Huaqiang.Wang"},"change_message_id":"12e44e188457dbd2035f935051d89fd7d67eb40c","unresolved":false,"context_lines":[{"line_number":373,"context_line":"* Ensure *shared* vCPUs is placed before the ``dedicated`` vCPUs"},{"line_number":374,"context_line":"* Ensure the emulator CPU is properly scheduled according to its policy."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"For the functional test, it is required to pass the `whitebox tempest plugin`_"},{"line_number":377,"context_line":"test."},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"Documentation Impact"},{"line_number":380,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":19,"id":"3fa7e38b_3804bcc4","line":377,"range":{"start_line":376,"start_character":1,"end_line":377,"end_character":5},"in_reply_to":"3fa7e38b_b58bd51f","updated":"2020-02-13 12:42:57.000000000","message":"Personally I agree with you. But the white-box test is proposed in Shanghai PDT meeting by Stephen, if I recalled correctly, I\u0027ll consult his opinion, if he still think it is a compulsive requirement for this spec.","commit_id":"b55907d80f0d9749183f03ee4ac9c88ead731a88"}]}
