)]}'
{"specs/mitaka/approved/virt-dedicated-cpus-placement-policy.rst":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"097621cc57cd52a6e4260062a8bbded63de53dcf","unresolved":false,"context_lines":[{"line_number":39,"context_line":"The flavor extra specs will support the specification of guest vCPUs"},{"line_number":40,"context_line":"placement policy."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* hw:cpu_policy.N \u003d \u003ccpu|emulator|cpu, emulator\u003e"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"With N refer to a guest vCPU."},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_6298556b","line":42,"updated":"2015-09-02 13:21:10.000000000","message":"By this way we can see future and enhance that list with \u0027realtime\u0027 and \u0027iothreads\u0027.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"54c948d8ad2cc646d07aebddb6a6ad4561fe44fe","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* hw:cpu_policy.N \u003d \u003ccpu|emulator|cpu, emulator\u003e"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"With N refer to a guest vCPU."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"If no CPU policy is configured the current and default implementation"},{"line_number":47,"context_line":"will continue, means pCPUs will be dedicated to vCPUs and emulator"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_05ec9ff1","line":44,"updated":"2015-09-04 12:23:47.000000000","message":"I don\u0027t think this parameter really makes much sense. You say the  hw:cpu_policy.N is referring to a guest virtual CPU,  but this spec is about how to control placement of the emulators threads on *host* CPUs","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"adcabf733bc1f580b93ea64a4bbac678663866b7","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* hw:cpu_policy.N \u003d \u003ccpu|emulator|cpu, emulator\u003e"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"With N refer to a guest vCPU."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"If no CPU policy is configured the current and default implementation"},{"line_number":47,"context_line":"will continue, means pCPUs will be dedicated to vCPUs and emulator"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_9f66b7eb","line":44,"in_reply_to":"da20952f_05ec9ff1","updated":"2015-09-04 14:54:05.000000000","message":"Flavor vCPUs is the only unit we can use to refer a CPU resource on host. That is why I used it.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"4e8743c53dd4fb51d7758c098d81662205674129","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* hw:cpu_policy.N \u003d \u003ccpu|emulator|cpu, emulator\u003e"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"With N refer to a guest vCPU."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"If no CPU policy is configured the current and default implementation"},{"line_number":47,"context_line":"will continue, means pCPUs will be dedicated to vCPUs and emulator"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_fa9b41c7","line":44,"in_reply_to":"da20952f_9f66b7eb","updated":"2015-09-04 15:16:24.000000000","message":"This approach doesn\u0027t provide any way to express that the emulator thread should be on a host CPU that isnt associated with any vCPU.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"373430f15fd116deea53bdec8fde98939a533acf","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"* hw:cpu_policy.N \u003d \u003ccpu|emulator|cpu, emulator\u003e"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"With N refer to a guest vCPU."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"If no CPU policy is configured the current and default implementation"},{"line_number":47,"context_line":"will continue, means pCPUs will be dedicated to vCPUs and emulator"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba15a1d1_d609ff32","line":44,"in_reply_to":"da20952f_fa9b41c7","updated":"2015-09-14 13:13:49.000000000","message":"From my thinking using cpu_policy as dedicated means host CPUs will be exclusively reserved for guest CPUs. When a virtual machine ask sfor 3 vCPUs that will consume 3 host CPUs.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":17863,"name":"henning.schild","email":"henning.schild@siemens.com","username":"henning.schild"},"change_message_id":"468f5920f6463338eb13e108eff386b0a2e03474","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":" * hw:cpu_policy \u003d dedicated"},{"line_number":64,"context_line":" * hw:cpu_policy.0 \u003d cpu"},{"line_number":65,"context_line":" * hw:cpu_policy.1 \u003d emulator"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba15a1d1_1a6a391b","line":65,"updated":"2015-09-21 11:08:23.000000000","message":"I think the term \"dedicated\" needs to be defined correctly to be able to keep using it. At the moment it means the pCPU will be dedicated to an instance. And it also means that the instance can never use another CPU. \n\nA one vCPU guest without pinning can use up to two pCPUs, by polling a device and making the emulator thread consume 100% CPU. The current concept of \"dedicated\" would slow that loop down because only on pCPU can be used. So it does not just dedicate but also confine when I/O comes into play.\n\nFor realtime we need \"pCPU dedicated to one vCPU thread of an instance\" and the confinement is something we can not allow!\n\nI assume the original concept of \"dedicated\" was supposed to be a privilege. But the side-effect of the confinement certainly does is the opposit. Both for rt- and non-rt setups with I/O.\n\nI suggest that dedicated should always mean \"pCPU dedicated to one vCPU thread\" and I/O should always be spread over some other pCPUs.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":17863,"name":"henning.schild","email":"henning.schild@siemens.com","username":"henning.schild"},"change_message_id":"468f5920f6463338eb13e108eff386b0a2e03474","unresolved":false,"context_lines":[{"line_number":64,"context_line":" * hw:cpu_policy.0 \u003d cpu"},{"line_number":65,"context_line":" * hw:cpu_policy.1 \u003d emulator"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba15a1d1_3734f648","line":67,"updated":"2015-09-21 11:08:23.000000000","message":"The example from line 61 shows a flavor with one vCPU using two dedicated pCPUs, no?","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"54c948d8ad2cc646d07aebddb6a6ad4561fe44fe","unresolved":false,"context_lines":[{"line_number":64,"context_line":" * hw:cpu_policy.0 \u003d cpu"},{"line_number":65,"context_line":" * hw:cpu_policy.1 \u003d emulator"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_25d0c31e","line":67,"updated":"2015-09-04 12:23:47.000000000","message":"The flavour has 2 vCPUs but you\u0027re only providing a policy for one of them here.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"c050d641f2f3cf5143c8dec0c380ce59b8287071","unresolved":false,"context_lines":[{"line_number":64,"context_line":" * hw:cpu_policy.0 \u003d cpu"},{"line_number":65,"context_line":" * hw:cpu_policy.1 \u003d emulator"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_abecd329","line":67,"updated":"2015-09-03 13:22:50.000000000","message":"s/didicated/dedicated/","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"c050d641f2f3cf5143c8dec0c380ce59b8287071","unresolved":false,"context_lines":[{"line_number":65,"context_line":" * hw:cpu_policy.1 \u003d emulator"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_ebe2cb2e","line":68,"updated":"2015-09-03 13:22:50.000000000","message":"s/theads/threads/","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"54c948d8ad2cc646d07aebddb6a6ad4561fe44fe","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_45f7f78a","line":69,"updated":"2015-09-04 12:23:47.000000000","message":"IMHO we should just have a parameter that is dedicated to the emulator thread policy\n\n  hw:emulator_policy \u003d dedicated|spread\n\nWhere \u0027dedicated\u0027 means assign a dedicated host CPU, and \u0027spread\u0027 means spread across the host CPUs which are assigned to guest CPUs.\n\nPotentially we could also allow some kind of mask to allow \u0027spread\u0027 to be more fine grained\n\n  hw:emulator_policy \u003d dedicated|spread|node:NNN|cpu:NNN\n\neg\n\n  hw:emulator_policy\u003dnode:1\n\nwould say spread the emulator threads across all host CPUs used by guest NUMA node 1.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"adcabf733bc1f580b93ea64a4bbac678663866b7","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_b45402c6","line":69,"in_reply_to":"da20952f_45f7f78a","updated":"2015-09-04 14:54:05.000000000","message":"Where this dedicated host CPU come? I do not think we can reasonably request flavor with 1vCPU and use 2 host CPUs. (In reference to my comment line 44, IMHO vCPU is the only unit which can refer host CPUs currently.)\n\nAbout NUMA\n\n  hw:cpu_policy \u003d dedicated\n  hw:cpu_policy.0 \u003d cpu\n  hw:cpu_policy.1 \u003d emulator\n  hw:numa_node \u003d 1\n  hw:numa_node.0 \u003d 0,1\n\nI tried to follow current syntax we use.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"4e8743c53dd4fb51d7758c098d81662205674129","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_da599dfe","line":69,"in_reply_to":"da20952f_b45402c6","updated":"2015-09-04 15:16:24.000000000","message":"The flavour isn\u0027t expressing how many host CPUs can be used - it is expressing how many vCPUs the guest is given. Whether each of those vCPUs gets a dedicated CPU, or shares a CPU with other guests, or whether where are other host CPUs used by QEMU is a backend implementation detail.  As long as the cloud admin has control over how the flavour is configured, there is no issue with requesting that the emulator threads are placed on dedicated CPUs, which are not counted against the vCPU count.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"373430f15fd116deea53bdec8fde98939a533acf","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"In this example a pCPU will be didicated to handle guest vCPU and an"},{"line_number":68,"context_line":"other pCPU will be dedicated to handle emulator theads."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"},{"line_number":72,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"ba15a1d1_940aa0d1","line":69,"in_reply_to":"da20952f_da599dfe","updated":"2015-09-14 13:13:49.000000000","message":"I think I understand your point now, I missed to say that cpu_policy.N placement only works with cpu_policy as dedicated. Perhaps cpu_dedicated.N should be a better choice.\n\nAbout the second point I think that will make implementation/usability much complicated since we will need to partition host CPUs which could be used as dedicated for emulators OR update how we compute free vCPUs vs used for emulators.","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"},{"author":{"_account_id":13997,"name":"SHIGEMATSU Mitsuhiro","email":"shigematsu.mitsuhiro@lab.ntt.co.jp","username":"pshige"},"change_message_id":"c050d641f2f3cf5143c8dec0c380ce59b8287071","unresolved":false,"context_lines":[{"line_number":135,"context_line":"Testing"},{"line_number":136,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Unit tests should cover most of that work, also functionnal tests will"},{"line_number":139,"context_line":"be added."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"da20952f_2bc0c37b","line":138,"updated":"2015-09-03 13:22:50.000000000","message":"s/functionnal/functional/","commit_id":"a3f5b09c6318e9bec2e2db3d9d2808ad536e5a73"}]}
