)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9d84b3d8b237493ee1f39dc379fcc3516172cdfc","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validate CPU config options against running instances"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We want to make sure people who have both pinned and unpinned instances"},{"line_number":10,"context_line":"on a host (yes, it\u0027s dumb, but it happens) won\u0027t do a straightforward"},{"line_number":11,"context_line":"\u0027vcpu_pin_set\u0027 -\u003e \u0027[compute] cpu_dedicated_set\u0027 or \u0027[compute]"},{"line_number":12,"context_line":"cpu_shared_set\u0027 transition, breaking their ability to restart or rebuild"},{"line_number":13,"context_line":"instances. We add a new \u0027supports_pcpus\u0027 driver capability to avoid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_8671d4e0","line":10,"range":{"start_line":9,"start_character":42,"end_line":10,"end_character":42},"updated":"2019-09-04 22:14:34.000000000","message":"Not really related to the patch, but can you please explain this assertion to me?\n\nI take it this is not the same as saying it\u0027s dumb to have both dedicated and shared instances on the same host. Otherwise we should be hatin on cpu_dedicated_set and cpu_shared_set being configured on the same host, which (afaik??) we\u0027re not doing.\n\nSo pinned/unpinned must be orthogonal to shared/dedicated. If so, what does pinned+shared mean? That my VM is still restricted to using CPUs x, y, and z, but it\u0027s also possible for *other* VMs to be sharing x, y, and/or z?\n\nIf I\u0027m logicking right so far, then I still don\u0027t get why it should be dumb to have pinned and unpinned on the same host. It makes sense to me to have the cpu_dedicated_set be used for pinned instances and have the procs in cpu_shared_set float freely across any/all unpinned instances as needed. Or even within cpu_shared_set to have one or more VMs pinned to x, y, and z while others float over a, b, and c.\n\nSo what am I missing?","commit_id":"8a189f0df889c19bcb1dd1d1f17ca291c52e8534"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"03a6896b7fae73feb1a6df91eaf452680f2701ed","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validate CPU config options against running instances"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We want to make sure people who have both pinned and unpinned instances"},{"line_number":10,"context_line":"on a host (yes, it\u0027s dumb, but it happens) won\u0027t do a straightforward"},{"line_number":11,"context_line":"\u0027vcpu_pin_set\u0027 -\u003e \u0027[compute] cpu_dedicated_set\u0027 or \u0027[compute]"},{"line_number":12,"context_line":"cpu_shared_set\u0027 transition, breaking their ability to restart or rebuild"},{"line_number":13,"context_line":"instances. We add a new \u0027supports_pcpus\u0027 driver capability to avoid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_9609f884","line":10,"range":{"start_line":9,"start_character":42,"end_line":10,"end_character":42},"in_reply_to":"7faddb67_8671d4e0","updated":"2019-09-05 13:36:40.000000000","message":"I\u0027m talking about the situation as it currently exists, and which this series is intended to resolve. If you boot a pinned instances alongside an unpinned instances, each core of the former will be pinned to a specific host cores, while each core of the latter will be \"pinned\" to the whole range of host cores (or all those from a single host NUMA node, if the unpinned instance happens to have a NUMA topology). This means the pinned instances don\u0027t get the guarantees that no one else is using those CPUs that were expected. With this series, we\u0027re separating out these two instance types such that they all have their own dedicated range of cores that means overlap just isn\u0027t possible","commit_id":"8a189f0df889c19bcb1dd1d1f17ca291c52e8534"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1a3902bef32f4cc482bd609551fa8668458db5ac","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Validate CPU config options against running instances"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We want to make sure people who have both pinned and unpinned instances"},{"line_number":10,"context_line":"on a host (yes, it\u0027s dumb, but it happens) won\u0027t do a straightforward"},{"line_number":11,"context_line":"\u0027vcpu_pin_set\u0027 -\u003e \u0027[compute] cpu_dedicated_set\u0027 or \u0027[compute]"},{"line_number":12,"context_line":"cpu_shared_set\u0027 transition, breaking their ability to restart or rebuild"},{"line_number":13,"context_line":"instances. We add a new \u0027supports_pcpus\u0027 driver capability to avoid"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"5faad753_ad8eef2b","line":10,"range":{"start_line":9,"start_character":42,"end_line":10,"end_character":42},"in_reply_to":"7faddb67_9609f884","updated":"2019-09-06 19:24:16.000000000","message":"Ah, so it was only \"dumb\" if the operator was aware of this:\n\n \u003e pinned to a specific host cores, while each core of the latter will\n \u003e be \"pinned\" to the whole range of host cores (or all those from a\n \u003e single host NUMA node, if the unpinned instance happens to have a\n \u003e NUMA topology). This means the pinned instances don\u0027t get the\n \u003e guarantees that no one else is using those CPUs that were expected.\n\nOtherwise it was just them incorrectly (but not unreasonably) assuming a certain behavior.","commit_id":"8a189f0df889c19bcb1dd1d1f17ca291c52e8534"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6694f9f6ac80a891942e3bdfaa2d0008539e38a5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We want to make sure people who have both pinned and unpinned instances"},{"line_number":10,"context_line":"on a host (yes, it\u0027s dumb, but it happens) won\u0027t do a straightforward"},{"line_number":11,"context_line":"\u0027vcpu_pin_set\u0027 -\u003e \u0027[compute] cpu_dedicated_set\u0027 or \u0027[compute]"},{"line_number":12,"context_line":"cpu_shared_set\u0027 transition, breaking their ability to restart or rebuild"},{"line_number":13,"context_line":"instances. We add a new \u0027supports_pcpus\u0027 driver capability to avoid"},{"line_number":14,"context_line":"needing to do this on drivers that don\u0027t support PCPUs and CPU pinning"},{"line_number":15,"context_line":"in general."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5faad753_24454771","line":13,"range":{"start_line":12,"start_character":27,"end_line":13,"end_character":11},"updated":"2019-09-06 10:04:49.000000000","message":"it\u0027s an upgrade impact then, you should at least document this in a release note IIUC.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ec8682c72cc20c02aa76aa4e3340a352d4c0e5","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We want to make sure people who have both pinned and unpinned instances"},{"line_number":10,"context_line":"on a host (yes, it\u0027s dumb, but it happens) won\u0027t do a straightforward"},{"line_number":11,"context_line":"\u0027vcpu_pin_set\u0027 -\u003e \u0027[compute] cpu_dedicated_set\u0027 or \u0027[compute]"},{"line_number":12,"context_line":"cpu_shared_set\u0027 transition, breaking their ability to restart or rebuild"},{"line_number":13,"context_line":"instances. We add a new \u0027supports_pcpus\u0027 driver capability to avoid"},{"line_number":14,"context_line":"needing to do this on drivers that don\u0027t support PCPUs and CPU pinning"},{"line_number":15,"context_line":"in general."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5faad753_870afd87","line":13,"range":{"start_line":12,"start_character":27,"end_line":13,"end_character":11},"in_reply_to":"5faad753_24454771","updated":"2019-09-06 10:28:00.000000000","message":"I think I wasn\u0027t clear. I\u0027m saying this is what _could_ happen if I didn\u0027t do this thing. However, this patch adds checks to prevent this happening. With this change, if a user only sets \u0027cpu_dedicated_set\u0027 but there are unpinned instances on the host, we will error out. Similarly, if a user only sets \u0027cpu_shared_set\u0027 but there are pinned instances on the host, we will error out. Finally, if a user sets either \u0027vcpu_pin_set\u0027 or \u0027cpu_dedicated_set\u0027 and the pinned cores are out of range, we log a warning. The reason we can error out for the first two cases is because these are new options and therefore we don\u0027t need to worry about existing broken deployments. For the latter, we have to worry about the bug that artom is trying to fix resulting in pinned CPUs being wrong.\n\nHopefully that makes sense. I can dump all this into the commit message if I need to respin","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":9,"context_line":"We want to make sure people who have both pinned and unpinned instances"},{"line_number":10,"context_line":"on a host (yes, it\u0027s dumb, but it happens) won\u0027t do a straightforward"},{"line_number":11,"context_line":"\u0027vcpu_pin_set\u0027 -\u003e \u0027[compute] cpu_dedicated_set\u0027 or \u0027[compute]"},{"line_number":12,"context_line":"cpu_shared_set\u0027 transition, breaking their ability to restart or rebuild"},{"line_number":13,"context_line":"instances. We add a new \u0027supports_pcpus\u0027 driver capability to avoid"},{"line_number":14,"context_line":"needing to do this on drivers that don\u0027t support PCPUs and CPU pinning"},{"line_number":15,"context_line":"in general."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5faad753_f5e58d39","line":13,"range":{"start_line":12,"start_character":27,"end_line":13,"end_character":11},"in_reply_to":"5faad753_870afd87","updated":"2019-09-07 01:44:08.000000000","message":"@stephen i have a minor nit with your comment but im goign to gloss overit to not rathole on it. what you have state is close enough.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e90bc45e4d968dcb4ffd295f651740cfd32de892","unresolved":false,"context_lines":[{"line_number":824,"context_line":"            # if this is an unpinned instance and the host only has"},{"line_number":825,"context_line":"            # \u0027cpu_dedicated_set\u0027 configured, we need to tell the operator to"},{"line_number":826,"context_line":"            # correct their configuration"},{"line_number":827,"context_line":"            if (\u0027numa_topology\u0027 not in instance or"},{"line_number":828,"context_line":"                    not instance.numa_topology.cpu_pinning_requested):"},{"line_number":829,"context_line":"                if (CONF.compute.cpu_dedicated_set and"},{"line_number":830,"context_line":"                        not CONF.compute.cpu_shared_set and"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_4cf46555","line":827,"range":{"start_line":827,"start_character":16,"end_line":827,"end_character":47},"updated":"2019-09-04 18:10:04.000000000","message":"You don\u0027t need this because you eager-load the fields when pulling them (L1310).","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"efd4681d78092aaab8a583455fca8d711ed0732a","unresolved":false,"context_lines":[{"line_number":824,"context_line":"            # if this is an unpinned instance and the host only has"},{"line_number":825,"context_line":"            # \u0027cpu_dedicated_set\u0027 configured, we need to tell the operator to"},{"line_number":826,"context_line":"            # correct their configuration"},{"line_number":827,"context_line":"            if (\u0027numa_topology\u0027 not in instance or"},{"line_number":828,"context_line":"                    not instance.numa_topology.cpu_pinning_requested):"},{"line_number":829,"context_line":"                if (CONF.compute.cpu_dedicated_set and"},{"line_number":830,"context_line":"                        not CONF.compute.cpu_shared_set and"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_dbbd6968","line":827,"range":{"start_line":827,"start_character":16,"end_line":827,"end_character":47},"in_reply_to":"7faddb67_4cf46555","updated":"2019-09-05 11:43:18.000000000","message":"Good to know. Done.","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e90bc45e4d968dcb4ffd295f651740cfd32de892","unresolved":false,"context_lines":[{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"        self.init_virt_events()"},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"        self._validate_pinning_configuration()"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"        try:"},{"line_number":1320,"context_line":"            # checking that instance was not already evacuated to other host"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_ecef5184","line":1317,"range":{"start_line":1317,"start_character":13,"end_line":1317,"end_character":44},"updated":"2019-09-04 18:10:04.000000000","message":"You forgot to pass instances to this method. Are you testing it?","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"efd4681d78092aaab8a583455fca8d711ed0732a","unresolved":false,"context_lines":[{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"        self.init_virt_events()"},{"line_number":1316,"context_line":""},{"line_number":1317,"context_line":"        self._validate_pinning_configuration()"},{"line_number":1318,"context_line":""},{"line_number":1319,"context_line":"        try:"},{"line_number":1320,"context_line":"            # checking that instance was not already evacuated to other host"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_9b9a9110","line":1317,"range":{"start_line":1317,"start_character":13,"end_line":1317,"end_character":44},"in_reply_to":"7faddb67_ecef5184","updated":"2019-09-05 11:43:18.000000000","message":"Nope, and it\u0027ll cause a lot of tests to fail. I rushed this out as I had to leave. Will fix","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":825,"context_line":"            # \u0027cpu_dedicated_set\u0027 configured, we need to tell the operator to"},{"line_number":826,"context_line":"            # correct their configuration"},{"line_number":827,"context_line":"            if not (instance.numa_topology and"},{"line_number":828,"context_line":"                        instance.numa_topology.cpu_pinning_requested):"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"                if (CONF.compute.cpu_dedicated_set and"},{"line_number":831,"context_line":"                        not CONF.compute.cpu_shared_set and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_5547c11e","line":828,"range":{"start_line":828,"start_character":24,"end_line":828,"end_character":68},"updated":"2019-09-07 01:44:08.000000000","message":"will this be populated if you reqest a numa toplogy via hw:mem_page_size or hw:numa_nodes.\n\ni believe it should be set to the cpus of the numa node it is affiend too but i have not checkd the code.\n\nwe should have an explicit test for both case in the unites for this.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":825,"context_line":"            # \u0027cpu_dedicated_set\u0027 configured, we need to tell the operator to"},{"line_number":826,"context_line":"            # correct their configuration"},{"line_number":827,"context_line":"            if not (instance.numa_topology and"},{"line_number":828,"context_line":"                        instance.numa_topology.cpu_pinning_requested):"},{"line_number":829,"context_line":""},{"line_number":830,"context_line":"                if (CONF.compute.cpu_dedicated_set and"},{"line_number":831,"context_line":"                        not CONF.compute.cpu_shared_set and"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_8147291e","line":828,"range":{"start_line":828,"start_character":24,"end_line":828,"end_character":68},"in_reply_to":"5faad753_5547c11e","updated":"2019-09-09 10:34:48.000000000","message":"No, this is only set if the \u0027cpu_policy\u0027 field is set. Since we\u0027re already testing for that and we\u0027ve nothing specific to hugepages or instance NUMA topologies in here, I don\u0027t think there\u0027s an value in expanding the test cases tbh","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":829,"context_line":""},{"line_number":830,"context_line":"                if (CONF.compute.cpu_dedicated_set and"},{"line_number":831,"context_line":"                        not CONF.compute.cpu_shared_set and"},{"line_number":832,"context_line":"                        not CONF.vcpu_pin_set):"},{"line_number":833,"context_line":"                    msg \u003d _(\"This host has unpinned instances but has no CPUs \""},{"line_number":834,"context_line":"                            \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":835,"context_line":"                            \"cpu_shared_set\u0027 instead of or in addition to \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_d56411bc","line":832,"range":{"start_line":832,"start_character":24,"end_line":832,"end_character":44},"updated":"2019-09-07 01:44:08.000000000","message":"we should not need to check this here as we check else where that vcpu_pin_set cant be defiend when cpu_dedicated_set is","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":829,"context_line":""},{"line_number":830,"context_line":"                if (CONF.compute.cpu_dedicated_set and"},{"line_number":831,"context_line":"                        not CONF.compute.cpu_shared_set and"},{"line_number":832,"context_line":"                        not CONF.vcpu_pin_set):"},{"line_number":833,"context_line":"                    msg \u003d _(\"This host has unpinned instances but has no CPUs \""},{"line_number":834,"context_line":"                            \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":835,"context_line":"                            \"cpu_shared_set\u0027 instead of or in addition to \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_61730d82","line":832,"range":{"start_line":832,"start_character":24,"end_line":832,"end_character":44},"in_reply_to":"5faad753_d56411bc","updated":"2019-09-09 10:34:48.000000000","message":"Good call. We\u0027ve already called the driver\u0027s \u0027init_host\u0027 method at this point","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                        not CONF.vcpu_pin_set):"},{"line_number":833,"context_line":"                    msg \u003d _(\"This host has unpinned instances but has no CPUs \""},{"line_number":834,"context_line":"                            \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":835,"context_line":"                            \"cpu_shared_set\u0027 instead of or in addition to \""},{"line_number":836,"context_line":"                            \"\u0027[compute] cpu_dedicated_set\u0027\")"},{"line_number":837,"context_line":"                    raise exception.InvalidConfiguration(msg)"},{"line_number":838,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_55702173","line":835,"range":{"start_line":835,"start_character":45,"end_line":835,"end_character":75},"updated":"2019-09-07 01:44:08.000000000","message":"instead of, or in addtion to,","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                        not CONF.vcpu_pin_set):"},{"line_number":833,"context_line":"                    msg \u003d _(\"This host has unpinned instances but has no CPUs \""},{"line_number":834,"context_line":"                            \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":835,"context_line":"                            \"cpu_shared_set\u0027 instead of or in addition to \""},{"line_number":836,"context_line":"                            \"\u0027[compute] cpu_dedicated_set\u0027\")"},{"line_number":837,"context_line":"                    raise exception.InvalidConfiguration(msg)"},{"line_number":838,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_a1a4a509","line":835,"range":{"start_line":835,"start_character":45,"end_line":835,"end_character":75},"in_reply_to":"5faad753_55702173","updated":"2019-09-09 10:34:48.000000000","message":"This is a new experience :P","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"eff67db1df5561c8d54d8d63e735f784d5e47f51","unresolved":false,"context_lines":[{"line_number":832,"context_line":"                        not CONF.vcpu_pin_set):"},{"line_number":833,"context_line":"                    msg \u003d _(\"This host has unpinned instances but has no CPUs \""},{"line_number":834,"context_line":"                            \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":835,"context_line":"                            \"cpu_shared_set\u0027 instead of or in addition to \""},{"line_number":836,"context_line":"                            \"\u0027[compute] cpu_dedicated_set\u0027\")"},{"line_number":837,"context_line":"                    raise exception.InvalidConfiguration(msg)"},{"line_number":838,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_97ff6b66","line":835,"range":{"start_line":835,"start_character":45,"end_line":835,"end_character":75},"in_reply_to":"5faad753_a1a4a509","updated":"2019-09-09 12:32:39.000000000","message":"and/or","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6c800146cebb1961f9edfdc64ac70449b6166f34","unresolved":false,"context_lines":[{"line_number":841,"context_line":"            # ditto for pinned instances if only \u0027cpu_shared_set\u0027 is configured"},{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_55f581ca","line":844,"range":{"start_line":844,"start_character":24,"end_line":844,"end_character":41},"updated":"2019-09-07 01:43:40.000000000","message":"emm...CONF.vcpu_pin_set is for VCPU also. and the user can set none of those three options.  so report VCPU also.\n\nI guess the check should be \"If not CONF.compute.cpu_dedicated_set\"","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":841,"context_line":"            # ditto for pinned instances if only \u0027cpu_shared_set\u0027 is configured"},{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_b504f5c7","line":844,"range":{"start_line":844,"start_character":19,"end_line":844,"end_character":41},"updated":"2019-09-07 01:44:08.000000000","message":"in this case this is needed","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f863c4938a388f68ed902c2c8436febd12fa2bc8","unresolved":false,"context_lines":[{"line_number":841,"context_line":"            # ditto for pinned instances if only \u0027cpu_shared_set\u0027 is configured"},{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_d51e516f","line":844,"range":{"start_line":844,"start_character":19,"end_line":844,"end_character":41},"in_reply_to":"5faad753_b504f5c7","updated":"2019-09-07 02:43:41.000000000","message":"oh, right, we only check the cases after upgrade.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":841,"context_line":"            # ditto for pinned instances if only \u0027cpu_shared_set\u0027 is configured"},{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_c113e10c","line":844,"range":{"start_line":844,"start_character":19,"end_line":844,"end_character":41},"in_reply_to":"5faad753_d51e516f","updated":"2019-09-09 10:34:48.000000000","message":"Yeah, we need to handle the post-upgrade scenario here","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6694f9f6ac80a891942e3bdfaa2d0008539e38a5","unresolved":false,"context_lines":[{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""},{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_24130769","line":845,"range":{"start_line":845,"start_character":25,"end_line":845,"end_character":55},"updated":"2019-09-06 10:04:49.000000000","message":"how are you sure ? I don\u0027t see a conditional verifying this","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"29ec8682c72cc20c02aa76aa4e3340a352d4c0e5","unresolved":false,"context_lines":[{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""},{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_678ee128","line":845,"range":{"start_line":845,"start_character":25,"end_line":845,"end_character":55},"in_reply_to":"5faad753_24130769","updated":"2019-09-06 10:28:00.000000000","message":"Look at lines 827-828 above. These conditionals will only trigger if the instance has a NUMA topology and the pinning is in use","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"bcf0e79d947b2cef1e4b0d3e91ad1f19d7466084","unresolved":false,"context_lines":[{"line_number":842,"context_line":"            if (CONF.compute.cpu_shared_set and"},{"line_number":843,"context_line":"                    not CONF.compute.cpu_dedicated_set and"},{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""},{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_c773154d","line":845,"range":{"start_line":845,"start_character":25,"end_line":845,"end_character":55},"in_reply_to":"5faad753_24130769","updated":"2019-09-06 10:20:49.000000000","message":"My bad, I missed L839 skipping this in the case where instances are pinned.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""},{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"},{"line_number":849,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":850,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_9513f90d","line":847,"range":{"start_line":847,"start_character":43,"end_line":847,"end_character":72},"updated":"2019-09-07 01:44:08.000000000","message":"instead of, or in addtion to,","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":844,"context_line":"                    not CONF.vcpu_pin_set):"},{"line_number":845,"context_line":"                msg \u003d _(\"This host has pinned instances but has no CPUs \""},{"line_number":846,"context_line":"                        \"set aside for this purpose; configure \u0027[compute] \""},{"line_number":847,"context_line":"                        \"cpu_dedicated_set\u0027 instead of or in addition to \""},{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"},{"line_number":849,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":850,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_01a019f4","line":847,"range":{"start_line":847,"start_character":43,"end_line":847,"end_character":72},"in_reply_to":"5faad753_9513f90d","updated":"2019-09-09 10:34:48.000000000","message":"Done","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6c800146cebb1961f9edfdc64ac70449b6166f34","unresolved":false,"context_lines":[{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"},{"line_number":849,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"            # also check to make sure the operator hasn\u0027t accidentally"},{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_d5a5f1b6","line":851,"updated":"2019-09-07 01:43:40.000000000","message":"Actually, the operator can shrink the scope of shared cpu set also, that means some of shared cpu may floats on the dedicated cpu. But if we want to check that, then we have to check each instance\u0027s xml to ensure the shared cpu set. I guess that will be going to very complex, and can\u0027t be done in ComputeManager.  so I think this is enough now.\n\nAnother idea is we can check whether the operator shrink the cpu shared set or cpu dedicated set by check the NUMATopology.cpu_set/pcpu_set. The host NUMATopology won\u0027t be updated at this point, so it is still about the old info. If they operator shrinks the shared/dedicaed cpu set, we can warning them.\n\nBut I\u0027m already ok with above check.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"},{"line_number":849,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"            # also check to make sure the operator hasn\u0027t accidentally"},{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_a1dca546","line":851,"in_reply_to":"5faad753_35a2459c","updated":"2019-09-09 10:34:48.000000000","message":"\u003e cpu shared set was previous used for emulator thread only.\n \u003e i gues we technically shoudl be check if the emulator thread of\n \u003e exisitng instance are valid for the new shared_set.\n\nPerhaps, but I can\u0027t do that here (it\u0027s virt driver independent)","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"},{"line_number":849,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"            # also check to make sure the operator hasn\u0027t accidentally"},{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_6121cd4d","line":851,"in_reply_to":"5faad753_d5a5f1b6","updated":"2019-09-09 10:34:48.000000000","message":"\u003e Actually, the operator can shrink the scope of shared cpu set also,\n \u003e that means some of shared cpu may floats on the dedicated cpu. But\n \u003e if we want to check that, then we have to check each instance\u0027s xml\n \u003e to ensure the shared cpu set. I guess that will be going to very\n \u003e complex, and can\u0027t be done in ComputeManager.  so I think this is\n \u003e enough now.\n\nAnd that assumes you\u0027re using the libvirt driver. We might want a new check for this in the libvirt driver but, tbh, this isn\u0027t quite as terrible since you can easily fix this case (just resize/hard reboot) unlike what happens if you totally unset things.\n\n \u003e Another idea is we can check whether the operator shrink the cpu\n \u003e shared set or cpu dedicated set by check the NUMATopology.cpu_set/pcpu_set.\n \u003e The host NUMATopology won\u0027t be updated at this point, so it is\n \u003e still about the old info. If they operator shrinks the\n \u003e shared/dedicaed cpu set, we can warning them.\n \u003e \n \u003e But I\u0027m already ok with above check.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"9e564e733ed1048176e70484cf4c4a95435184d7","unresolved":false,"context_lines":[{"line_number":848,"context_line":"                        \"\u0027[compute] cpu_shared_set\u0027\")"},{"line_number":849,"context_line":"                raise exception.InvalidConfiguration(msg)"},{"line_number":850,"context_line":""},{"line_number":851,"context_line":"            # also check to make sure the operator hasn\u0027t accidentally"},{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_35a2459c","line":851,"in_reply_to":"5faad753_d5a5f1b6","updated":"2019-09-07 01:46:12.000000000","message":"cpu shared set was previous used for emulator thread only.\ni gues we technically shoudl be check if the emulator thread of exisitng instance are valid for the new shared_set.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":850,"context_line":""},{"line_number":851,"context_line":"            # also check to make sure the operator hasn\u0027t accidentally"},{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"},{"line_number":855,"context_line":"            pinned_cpus \u003d instance.numa_topology.cpu_pinning"},{"line_number":856,"context_line":"            if available_dedicated_cpus and ("},{"line_number":857,"context_line":"                    pinned_cpus - available_dedicated_cpus):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_f5010db1","line":854,"range":{"start_line":853,"start_character":39,"end_line":854,"end_character":72},"updated":"2019-09-07 01:44:08.000000000","message":"yes only one of the two will be set so this is correct.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":850,"context_line":""},{"line_number":851,"context_line":"            # also check to make sure the operator hasn\u0027t accidentally"},{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"},{"line_number":855,"context_line":"            pinned_cpus \u003d instance.numa_topology.cpu_pinning"},{"line_number":856,"context_line":"            if available_dedicated_cpus and ("},{"line_number":857,"context_line":"                    pinned_cpus - available_dedicated_cpus):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_61e6ad19","line":854,"range":{"start_line":853,"start_character":39,"end_line":854,"end_character":72},"in_reply_to":"5faad753_f5010db1","updated":"2019-09-09 10:34:48.000000000","message":"Yeah, and we\u0027re favoring the legacy options","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":852,"context_line":"            # dropped some cores that instances are currently using"},{"line_number":853,"context_line":"            available_dedicated_cpus \u003d (hardware.get_vcpu_pin_set() or"},{"line_number":854,"context_line":"                                        hardware.get_cpu_dedicated_set())"},{"line_number":855,"context_line":"            pinned_cpus \u003d instance.numa_topology.cpu_pinning"},{"line_number":856,"context_line":"            if available_dedicated_cpus and ("},{"line_number":857,"context_line":"                    pinned_cpus - available_dedicated_cpus):"},{"line_number":858,"context_line":"                # we can\u0027t raise an exception because of bug #1289064,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_d532d1a7","line":855,"range":{"start_line":855,"start_character":12,"end_line":855,"end_character":23},"updated":"2019-09-07 01:44:08.000000000","message":"i prefer pinned but this is one case where requested_cpus could also have been used an make sense","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6fdcd060002abf2901f4bba061261ee86381b3ab","unresolved":false,"context_lines":[{"line_number":855,"context_line":"            pinned_cpus \u003d instance.numa_topology.cpu_pinning"},{"line_number":856,"context_line":"            if available_dedicated_cpus and ("},{"line_number":857,"context_line":"                    pinned_cpus - available_dedicated_cpus):"},{"line_number":858,"context_line":"                # we can\u0027t raise an exception because of bug #1289064,"},{"line_number":859,"context_line":"                # which meant we didn\u0027t recalculate CPU pinning information"},{"line_number":860,"context_line":"                # when we live migrated a pinned instance"},{"line_number":861,"context_line":"                LOG.warning("},{"line_number":862,"context_line":"                    \"Instance is pinned to host CPUs %(cpus)s \""},{"line_number":863,"context_line":"                    \"but one or more of these CPUs are not included in \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_55e34106","line":860,"range":{"start_line":858,"start_character":14,"end_line":860,"end_character":57},"updated":"2019-09-07 01:44:08.000000000","message":"we will fail to update the resouce tracker if this happens already because the update_resouces perodic task raise an excction when we detect this. so i would prefer to raise an exception here and stop the agent starting the letting it run with an incorrect inventory. that said if we cant do that then i would prefer this to be an error not a warning.\n\ngratned they will recive a trackback in the log everytime the resouce tracker task runs so if they not notice that they proablby wont notice an error or warning but this is really really bad when it happens so we shoudl shout loudly","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":855,"context_line":"            pinned_cpus \u003d instance.numa_topology.cpu_pinning"},{"line_number":856,"context_line":"            if available_dedicated_cpus and ("},{"line_number":857,"context_line":"                    pinned_cpus - available_dedicated_cpus):"},{"line_number":858,"context_line":"                # we can\u0027t raise an exception because of bug #1289064,"},{"line_number":859,"context_line":"                # which meant we didn\u0027t recalculate CPU pinning information"},{"line_number":860,"context_line":"                # when we live migrated a pinned instance"},{"line_number":861,"context_line":"                LOG.warning("},{"line_number":862,"context_line":"                    \"Instance is pinned to host CPUs %(cpus)s \""},{"line_number":863,"context_line":"                    \"but one or more of these CPUs are not included in \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_81cc098a","line":860,"range":{"start_line":858,"start_character":14,"end_line":860,"end_character":57},"in_reply_to":"5faad753_55e34106","updated":"2019-09-09 10:34:48.000000000","message":"\u003e we will fail to update the resouce tracker if this happens already\n \u003e because the update_resouces perodic task raise an excction when we\n \u003e detect this.\n\nWhere is that happening?\n\n \u003e so i would prefer to raise an exception here and stop\n \u003e the agent starting the letting it run with an incorrect inventory.\n \u003e that said if we cant do that then i would prefer this to be an\n \u003e error not a warning.\n \u003e\n \u003e gratned they will recive a trackback in the log everytime the\n \u003e resouce tracker task runs so if they not notice that they proablby\n \u003e wont notice an error or warning but this is really really bad when\n \u003e it happens so we shoudl shout loudly\n\nAgreed. However, an error suggests we can\u0027t continue without manual intervention but we are continuing here and have to do so lest we break upgrades for people who have live migrated a pinned instance in the past without knowing the downsides of this.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"98f24762d4fc22b79b711e34ea396da70f85966c","unresolved":false,"context_lines":[{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":1308,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":1309,"context_line":"        instances \u003d objects.InstanceList.get_by_host("},{"line_number":1310,"context_line":"            context, self.host,"},{"line_number":1311,"context_line":"            expected_attrs\u003d[\u0027info_cache\u0027, \u0027metadata\u0027, \u0027numa_topology\u0027])"},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"        if CONF.defer_iptables_apply:"},{"line_number":1314,"context_line":"            self.driver.filter_defer_apply_on()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_6b08da27","line":1311,"range":{"start_line":1309,"start_character":8,"end_line":1311,"end_character":71},"updated":"2019-09-07 05:47:39.000000000","message":"this list of instances includes deleted instance. In my env, the deleted instance always being checked, and I can\u0027t pass the validaton.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2e281de67a8ba78f1c3f2333d91fefa2a128c4e9","unresolved":false,"context_lines":[{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":1308,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":1309,"context_line":"        instances \u003d objects.InstanceList.get_by_host("},{"line_number":1310,"context_line":"            context, self.host,"},{"line_number":1311,"context_line":"            expected_attrs\u003d[\u0027info_cache\u0027, \u0027metadata\u0027, \u0027numa_topology\u0027])"},{"line_number":1312,"context_line":""},{"line_number":1313,"context_line":"        if CONF.defer_iptables_apply:"},{"line_number":1314,"context_line":"            self.driver.filter_defer_apply_on()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5faad753_61dc6d74","line":1311,"range":{"start_line":1309,"start_character":8,"end_line":1311,"end_character":71},"in_reply_to":"5faad753_6b08da27","updated":"2019-09-09 10:34:48.000000000","message":"Oh, good catch. Fixed.","commit_id":"0220df92d44ecc0386997ad9622ddf013a1bd03a"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f027fa05b76a7ec67a72d345d3c78c7c3a9ef5ff","unresolved":false,"context_lines":[{"line_number":925,"context_line":"                \u0027_validate_pinning_configuration\u0027)"},{"line_number":926,"context_line":"    def test_init_host_pinning_configuration_validation_failure(self,"},{"line_number":927,"context_line":"            mock_validate_pinning):"},{"line_number":928,"context_line":"        \"\"\"Test that we fail init_host is the pinning configuration check"},{"line_number":929,"context_line":"        fails."},{"line_number":930,"context_line":"        \"\"\""},{"line_number":931,"context_line":"        mock_validate_pinning.side_effect \u003d exception.InvalidConfiguration"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_f6f2ac6e","line":928,"range":{"start_line":928,"start_character":39,"end_line":928,"end_character":41},"updated":"2019-09-05 13:44:42.000000000","message":"if","commit_id":"8a189f0df889c19bcb1dd1d1f17ca291c52e8534"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"6c9e0397caf8431a25510f5f9c5622ce75292c04","unresolved":false,"context_lines":[{"line_number":984,"context_line":"            fields.CPUAllocationPolicy.DEDICATED)"},{"line_number":985,"context_line":"        instance_3.numa_topology \u003d numa_w_pinning"},{"line_number":986,"context_line":""},{"line_number":987,"context_line":"        instance_4.deleted \u003d True"},{"line_number":988,"context_line":""},{"line_number":989,"context_line":"        instances \u003d objects.InstanceList(objects\u003d["},{"line_number":990,"context_line":"            instance_1, instance_2, instance_3, instance_4])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_dac2e785","line":987,"updated":"2019-09-09 13:46:32.000000000","message":"*nods*","commit_id":"25d6a43e528f333a386893fc3412c7a5c958921c"}],"nova/virt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1d1c808c42c2f7842b7bc1293241d6a3eeeeaf49","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        \"supports_extend_volume\": False,"},{"line_number":171,"context_line":"        \"supports_multiattach\": False,"},{"line_number":172,"context_line":"        \"supports_trusted_certs\": False,"},{"line_number":173,"context_line":"        \"supports_pcpus\": False,"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        # Image type support flags"},{"line_number":176,"context_line":"        \"supports_image_type_aki\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_2c8ec9d0","line":173,"updated":"2019-09-04 18:11:44.000000000","message":"You didn\u0027t update the nova/virt/fake.py module for the fake driver, and you don\u0027t necessarily have to since the code will default to False, but you might want to make the fake driver support PCPUs since I\u0027m assuming it will have to for functional tests at some point anyway.","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"efd4681d78092aaab8a583455fca8d711ed0732a","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        \"supports_extend_volume\": False,"},{"line_number":171,"context_line":"        \"supports_multiattach\": False,"},{"line_number":172,"context_line":"        \"supports_trusted_certs\": False,"},{"line_number":173,"context_line":"        \"supports_pcpus\": False,"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"        # Image type support flags"},{"line_number":176,"context_line":"        \"supports_image_type_aki\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_86a9d4dd","line":173,"in_reply_to":"7faddb67_2c8ec9d0","updated":"2019-09-05 11:43:18.000000000","message":"All the functional tests I\u0027m doing are in \u0027nova.tests.functional.libvirt\u0027 since pinning isn\u0027t an option elsewhere. I was hesitant to add these since they seemed unnecessary but I did on account of them being elsewhere","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"}],"nova/virt/fake.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f027fa05b76a7ec67a72d345d3c78c7c3a9ef5ff","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        \"supports_extend_volume\": True,"},{"line_number":112,"context_line":"        \"supports_multiattach\": True,"},{"line_number":113,"context_line":"        \"supports_trusted_certs\": True,"},{"line_number":114,"context_line":"        \"supports_pcpus\": True,"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # Supported image types"},{"line_number":117,"context_line":"        \"supports_image_type_raw\": True,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7faddb67_568860c4","line":114,"range":{"start_line":114,"start_character":26,"end_line":114,"end_character":30},"updated":"2019-09-05 13:44:42.000000000","message":"Crap, should read False","commit_id":"8a189f0df889c19bcb1dd1d1f17ca291c52e8534"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1d1c808c42c2f7842b7bc1293241d6a3eeeeaf49","unresolved":false,"context_lines":[{"line_number":156,"context_line":"class IronicDriver(virt_driver.ComputeDriver):"},{"line_number":157,"context_line":"    \"\"\"Hypervisor driver for Ironic - bare metal provisioning.\"\"\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    capabilities \u003d {"},{"line_number":160,"context_line":"        \"has_imagecache\": False,"},{"line_number":161,"context_line":"        \"supports_evacuate\": False,"},{"line_number":162,"context_line":"        \"supports_migrate_to_same_host\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_cc9db509","line":159,"updated":"2019-09-04 18:11:44.000000000","message":"Can we please avoid the refactor here? It makes the patch bigger than it needs to be.","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"efd4681d78092aaab8a583455fca8d711ed0732a","unresolved":false,"context_lines":[{"line_number":156,"context_line":"class IronicDriver(virt_driver.ComputeDriver):"},{"line_number":157,"context_line":"    \"\"\"Hypervisor driver for Ironic - bare metal provisioning.\"\"\""},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    capabilities \u003d {"},{"line_number":160,"context_line":"        \"has_imagecache\": False,"},{"line_number":161,"context_line":"        \"supports_evacuate\": False,"},{"line_number":162,"context_line":"        \"supports_migrate_to_same_host\": False,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7faddb67_c8feef03","line":159,"in_reply_to":"7faddb67_cc9db509","updated":"2019-09-05 11:43:18.000000000","message":"Done","commit_id":"4eb6aecaeb9f2065884fe8e10788c4cae1bd9ec6"}]}
