)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"51d2cc167894fbed47fda648b4be11a4dab131b2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Stephen Finucane \u003cstephenfin@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2020-06-23 18:29:52 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"hardware: Allow \u0027hw:cpu_realtime_mask\u0027 to be omitted"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By offloading emulator threads to other host cores (via the"},{"line_number":10,"context_line":"\u0027hw:emulator_threads_policy\u0027 extra spec), it\u0027s possible to allocate all"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bf51134e_bd9b4064","line":7,"range":{"start_line":7,"start_character":10,"end_line":7,"end_character":52},"updated":"2020-07-06 06:58:21.000000000","message":"there still have a check https://review.opendev.org/#/c/737026/3/nova/virt/hardware.py@1709","commit_id":"02a076956b23a3da9443c6906925574db1874db3"}],"doc/source/user/flavors.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5bdcef085896647e644d95915004c7e8f5b44296","unresolved":false,"context_lines":[{"line_number":601,"context_line":"  .. important::"},{"line_number":602,"context_line":""},{"line_number":603,"context_line":"     While most of your instance vCPUs can run with a real-time policy, you must"},{"line_number":604,"context_line":"     either mark at least one vCPU as non-real-time to be accountfor emulator"},{"line_number":605,"context_line":"     overhead (housekeeping) or explicitly configure an :ref:`emulator thread"},{"line_number":606,"context_line":"     policy \u003cextra-specs-emulator-threads-policy\u003e`."},{"line_number":607,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf51134e_a8ac7534","line":604,"range":{"start_line":604,"start_character":58,"end_line":604,"end_character":68},"updated":"2020-06-19 17:21:29.000000000","message":"account for\n\n(can do a follow-up)","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"05efec887debff38b3dd90cd7eda1fbe70b436a5","unresolved":false,"context_lines":[{"line_number":638,"context_line":""},{"line_number":639,"context_line":"     Previously, it was necessary to specify ``hw:cpu_realtime_mask`` when"},{"line_number":640,"context_line":"     ``hw:cpu_realtime`` was set to yes. Starting in Victoria, it is possible"},{"line_number":641,"context_line":"     to omit this when and emulator thread policy is configured using the"},{"line_number":642,"context_line":"     ``hw:emulator_threads_policy`` extra spec."},{"line_number":643,"context_line":""},{"line_number":644,"context_line":".. _extra-specs-emulator-threads-policy:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf51134e_8a25fb5e","line":641,"range":{"start_line":641,"start_character":23,"end_line":641,"end_character":26},"updated":"2020-06-23 11:17:48.000000000","message":"an?","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"05efec887debff38b3dd90cd7eda1fbe70b436a5","unresolved":false,"context_lines":[{"line_number":639,"context_line":"     Previously, it was necessary to specify ``hw:cpu_realtime_mask`` when"},{"line_number":640,"context_line":"     ``hw:cpu_realtime`` was set to yes. Starting in Victoria, it is possible"},{"line_number":641,"context_line":"     to omit this when and emulator thread policy is configured using the"},{"line_number":642,"context_line":"     ``hw:emulator_threads_policy`` extra spec."},{"line_number":643,"context_line":""},{"line_number":644,"context_line":".. _extra-specs-emulator-threads-policy:"},{"line_number":645,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf51134e_aa1f1f06","line":642,"updated":"2020-06-23 11:17:48.000000000","message":"I think the doc should be explicit about that this require hw:emulator_threads_policy to be set to \u0027isolate\u0027","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"}],"nova/virt/hardware.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"05efec887debff38b3dd90cd7eda1fbe70b436a5","unresolved":false,"context_lines":[{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"    # TODO(stephenfin): Do this check in numa_get_constraints instead"},{"line_number":1707,"context_line":"    emu_policy \u003d get_emulator_thread_policy_constraint(flavor)"},{"line_number":1708,"context_line":"    if vcpus_set \u003d\u003d vcpus_rt and not emu_policy:"},{"line_number":1709,"context_line":"        raise exception.RealtimeMaskNotFoundOrInvalid()"},{"line_number":1710,"context_line":""},{"line_number":1711,"context_line":"    if not vcpus_rt.issubset(vcpus_set):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_2ac2ef59","line":1708,"range":{"start_line":1708,"start_character":37,"end_line":1708,"end_character":47},"updated":"2020-06-23 11:17:48.000000000","message":"Isn\u0027t it only work if emu_policy is \u0027isolate\u0027 ?","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e88301bd1614214ce7a343a61ecd2825c6840a9d","unresolved":false,"context_lines":[{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"    # TODO(stephenfin): Do this check in numa_get_constraints instead"},{"line_number":1707,"context_line":"    emu_policy \u003d get_emulator_thread_policy_constraint(flavor)"},{"line_number":1708,"context_line":"    if vcpus_set \u003d\u003d vcpus_rt and not emu_policy:"},{"line_number":1709,"context_line":"        raise exception.RealtimeMaskNotFoundOrInvalid()"},{"line_number":1710,"context_line":""},{"line_number":1711,"context_line":"    if not vcpus_rt.issubset(vcpus_set):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_4ade4311","line":1708,"range":{"start_line":1708,"start_character":37,"end_line":1708,"end_character":47},"in_reply_to":"bf51134e_2ac2ef59","updated":"2020-06-23 11:26:27.000000000","message":"Nope, because _somebody_ decided that \"share\" should mean either (a) float over the same cores as the instance vcpu threads unless \u0027[compute] cpu_shared_set\u0027 is configured, in which case, float over the cores from that config option. Yes, it\u0027s awful. If someone explicitly configured \"share\" but did not configure the config option, we could end up in the same situation. I hadn\u0027t considered that. I can\u0027t actually validate that here though since this is called from the API and the scheduler (NUMATopologyFilter), neither of which are running on the destination compute node. I need to think about this.","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"289a9820841a58fa1ba359514a671a915f5a3dfc","unresolved":false,"context_lines":[{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"    # TODO(stephenfin): Do this check in numa_get_constraints instead"},{"line_number":1707,"context_line":"    emu_policy \u003d get_emulator_thread_policy_constraint(flavor)"},{"line_number":1708,"context_line":"    if vcpus_set \u003d\u003d vcpus_rt and not emu_policy:"},{"line_number":1709,"context_line":"        raise exception.RealtimeMaskNotFoundOrInvalid()"},{"line_number":1710,"context_line":""},{"line_number":1711,"context_line":"    if not vcpus_rt.issubset(vcpus_set):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_d8cce96b","line":1708,"range":{"start_line":1708,"start_character":37,"end_line":1708,"end_character":47},"in_reply_to":"bf51134e_4ade4311","updated":"2020-06-23 12:53:39.000000000","message":"Bahh, I read the old version of the cpu-topologies document (I blame google).\n\nIf there is cpu_shared_set configured then I agree that hw:emulator_threads_policy\u003dshared is enough as there will be a place to put the emulator thread without affecting the realtime instance. And I agree that without cpu_shared_set this is problematic. As a first thought I can imagine that the compute reports a trait if it supports full realtime instances (i.e. the trait is added if there is shared_cpu_set is configured to a non-empty set) but I see how complex it makes this. So don\u0027t insist.","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0327ee1951abd6e5c1447846507d37a5a36ddcab","unresolved":false,"context_lines":[{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"    # TODO(stephenfin): Do this check in numa_get_constraints instead"},{"line_number":1707,"context_line":"    emu_policy \u003d get_emulator_thread_policy_constraint(flavor)"},{"line_number":1708,"context_line":"    if vcpus_set \u003d\u003d vcpus_rt and not emu_policy:"},{"line_number":1709,"context_line":"        raise exception.RealtimeMaskNotFoundOrInvalid()"},{"line_number":1710,"context_line":""},{"line_number":1711,"context_line":"    if not vcpus_rt.issubset(vcpus_set):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_53334814","line":1708,"range":{"start_line":1708,"start_character":37,"end_line":1708,"end_character":47},"in_reply_to":"bf51134e_d8cce96b","updated":"2020-06-29 13:20:12.000000000","message":"I did this https://review.opendev.org/#/c/737026/3/nova/virt/libvirt/driver.py","commit_id":"f05014b1e58f35d56b8cad0da54baf31e498d4c6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"51d2cc167894fbed47fda648b4be11a4dab131b2","unresolved":false,"context_lines":[{"line_number":1705,"context_line":"    # Image masks are used ahead of flavor masks as they will have more"},{"line_number":1706,"context_line":"    # specific requirements"},{"line_number":1707,"context_line":"    mask \u003d image_mask or flavor_mask"},{"line_number":1708,"context_line":"    if not mask:"},{"line_number":1709,"context_line":"        raise exception.RealtimeMaskNotFoundOrInvalid()"},{"line_number":1710,"context_line":""},{"line_number":1711,"context_line":"    vcpus_set \u003d set(range(flavor.vcpus))"},{"line_number":1712,"context_line":"    vcpus_rt \u003d parse_cpu_spec(\"0-%d,%s\" % (flavor.vcpus - 1, mask))"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_3d72904a","line":1709,"range":{"start_line":1708,"start_character":4,"end_line":1709,"end_character":55},"updated":"2020-07-06 06:58:21.000000000","message":"you have to specify the mask at here, so this is different with your commit message","commit_id":"02a076956b23a3da9443c6906925574db1874db3"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"51d2cc167894fbed47fda648b4be11a4dab131b2","unresolved":false,"context_lines":[{"line_number":5444,"context_line":"            # depending on whether the \u0027[compute] cpu_shared_set\u0027 is configured"},{"line_number":5445,"context_line":"            # or not and we need it to be configured. Also note that we have"},{"line_number":5446,"context_line":"            # already handled other conditions, such as no emulator thread"},{"line_number":5447,"context_line":"            # policy being configured whatsoever, at the API level."},{"line_number":5448,"context_line":"            LOG.warning("},{"line_number":5449,"context_line":"                \u0027Instance is requesting real-time CPUs with pooled \u0027"},{"line_number":5450,"context_line":"                \u0027emulator threads, but a shared CPU pool has not been \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_7deb6811","line":5447,"updated":"2020-07-06 06:58:21.000000000","message":"we can track the emulating thread usage of VCPU in placement in the future.","commit_id":"02a076956b23a3da9443c6906925574db1874db3"}]}
