)]}'
{"nova/virt/hardware.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"adf60320a5e37d8560894edca379187e1e9dcdee","unresolved":false,"context_lines":[{"line_number":820,"context_line":"    if host_cell.avail_cpus \u003c len(instance_cell.cpuset):"},{"line_number":821,"context_line":"        LOG.debug(\u0027Not enough available CPUs to schedule instance. \u0027"},{"line_number":822,"context_line":"                  \u0027Oversubscription is not possible with pinned instances. \u0027"},{"line_number":823,"context_line":"                  \u0027Required: %(required)s, actual: %(actual)s\u0027 %"},{"line_number":824,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":825,"context_line":"                   \u0027actual\u0027: host_cell.avail_cpus})"},{"line_number":826,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_e966a4eb","line":823,"range":{"start_line":823,"start_character":62,"end_line":823,"end_character":64},"updated":"2016-03-01 06:03:43.000000000","message":"Use \u0027,\u0027 instead of \u0027%\u0027.","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67635d9548cf4332f209fa7811fed00f49d33f1b","unresolved":false,"context_lines":[{"line_number":820,"context_line":"    if host_cell.avail_cpus \u003c len(instance_cell.cpuset):"},{"line_number":821,"context_line":"        LOG.debug(\u0027Not enough available CPUs to schedule instance. \u0027"},{"line_number":822,"context_line":"                  \u0027Oversubscription is not possible with pinned instances. \u0027"},{"line_number":823,"context_line":"                  \u0027Required: %(required)s, actual: %(actual)s\u0027 %"},{"line_number":824,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":825,"context_line":"                   \u0027actual\u0027: host_cell.avail_cpus})"},{"line_number":826,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_ef081b94","line":823,"range":{"start_line":823,"start_character":62,"end_line":823,"end_character":64},"in_reply_to":"9aed3d3a_e966a4eb","updated":"2016-03-01 14:51:07.000000000","message":"Done","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"adf60320a5e37d8560894edca379187e1e9dcdee","unresolved":false,"context_lines":[{"line_number":828,"context_line":"    if host_cell.avail_memory \u003c instance_cell.memory:"},{"line_number":829,"context_line":"        LOG.debug(\u0027Not enough available RAM to schedule instance. \u0027"},{"line_number":830,"context_line":"                  \u0027Oversubscription is not possible with pinned instances. \u0027"},{"line_number":831,"context_line":"                  \u0027Required: %(required)s, actual: %(actual)s\u0027 %"},{"line_number":832,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":833,"context_line":"                   \u0027actual\u0027: host_cell.memory})"},{"line_number":834,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_69a1f4f7","line":831,"range":{"start_line":831,"start_character":62,"end_line":831,"end_character":64},"updated":"2016-03-01 06:03:43.000000000","message":"ditto","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67635d9548cf4332f209fa7811fed00f49d33f1b","unresolved":false,"context_lines":[{"line_number":828,"context_line":"    if host_cell.avail_memory \u003c instance_cell.memory:"},{"line_number":829,"context_line":"        LOG.debug(\u0027Not enough available RAM to schedule instance. \u0027"},{"line_number":830,"context_line":"                  \u0027Oversubscription is not possible with pinned instances. \u0027"},{"line_number":831,"context_line":"                  \u0027Required: %(required)s, actual: %(actual)s\u0027 %"},{"line_number":832,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":833,"context_line":"                   \u0027actual\u0027: host_cell.memory})"},{"line_number":834,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_4ffe6f6c","line":831,"range":{"start_line":831,"start_character":62,"end_line":831,"end_character":64},"in_reply_to":"9aed3d3a_69a1f4f7","updated":"2016-03-01 14:51:07.000000000","message":"Done","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"adf60320a5e37d8560894edca379187e1e9dcdee","unresolved":false,"context_lines":[{"line_number":863,"context_line":"    # itself on any NUMA cell"},{"line_number":864,"context_line":"    if instance_cell.memory \u003e host_cell.memory:"},{"line_number":865,"context_line":"        LOG.debug(\u0027Not enough host RAM to schedule instance. Required: \u0027"},{"line_number":866,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027 %"},{"line_number":867,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":868,"context_line":"                   \u0027actual\u0027: host_cell.memory})"},{"line_number":869,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_8985585b","line":866,"range":{"start_line":866,"start_character":52,"end_line":866,"end_character":54},"updated":"2016-03-01 06:03:43.000000000","message":"ditto","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67635d9548cf4332f209fa7811fed00f49d33f1b","unresolved":false,"context_lines":[{"line_number":863,"context_line":"    # itself on any NUMA cell"},{"line_number":864,"context_line":"    if instance_cell.memory \u003e host_cell.memory:"},{"line_number":865,"context_line":"        LOG.debug(\u0027Not enough host RAM to schedule instance. Required: \u0027"},{"line_number":866,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027 %"},{"line_number":867,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":868,"context_line":"                   \u0027actual\u0027: host_cell.memory})"},{"line_number":869,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_8f3fd724","line":866,"range":{"start_line":866,"start_character":52,"end_line":866,"end_character":54},"in_reply_to":"9aed3d3a_8985585b","updated":"2016-03-01 14:51:07.000000000","message":"Done","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"adf60320a5e37d8560894edca379187e1e9dcdee","unresolved":false,"context_lines":[{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    if len(instance_cell.cpuset) \u003e len(host_cell.cpuset):"},{"line_number":872,"context_line":"        LOG.debug(\u0027Not enough host CPUs to schedule instance. Required: \u0027"},{"line_number":873,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027 %"},{"line_number":874,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":875,"context_line":"                   \u0027actual\u0027: len(host_cell.cpuset)})"},{"line_number":876,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_c97be079","line":873,"range":{"start_line":873,"start_character":52,"end_line":873,"end_character":54},"updated":"2016-03-01 06:03:43.000000000","message":"ditto","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67635d9548cf4332f209fa7811fed00f49d33f1b","unresolved":false,"context_lines":[{"line_number":870,"context_line":""},{"line_number":871,"context_line":"    if len(instance_cell.cpuset) \u003e len(host_cell.cpuset):"},{"line_number":872,"context_line":"        LOG.debug(\u0027Not enough host CPUs to schedule instance. Required: \u0027"},{"line_number":873,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027 %"},{"line_number":874,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":875,"context_line":"                   \u0027actual\u0027: len(host_cell.cpuset)})"},{"line_number":876,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_cf49dfd2","line":873,"range":{"start_line":873,"start_character":52,"end_line":873,"end_character":54},"in_reply_to":"9aed3d3a_c97be079","updated":"2016-03-01 14:51:07.000000000","message":"Done","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"adf60320a5e37d8560894edca379187e1e9dcdee","unresolved":false,"context_lines":[{"line_number":893,"context_line":"        if memory_usage \u003e ram_limit:"},{"line_number":894,"context_line":"            LOG.debug(\u0027Host has limitations on usable RAM. There is not \u0027"},{"line_number":895,"context_line":"                      \u0027enough free RAM to schedule this instance. Usage: \u0027"},{"line_number":896,"context_line":"                      \u0027%(usage)s, limit: %(limit)s\u0027 % {\u0027usage\u0027: memory_usage,"},{"line_number":897,"context_line":"                                                       \u0027limit\u0027: ram_limit})"},{"line_number":898,"context_line":"            return"},{"line_number":899,"context_line":"        if cpu_usage \u003e cpu_limit:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_49907095","line":896,"range":{"start_line":896,"start_character":51,"end_line":896,"end_character":53},"updated":"2016-03-01 06:03:43.000000000","message":"ditto","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67635d9548cf4332f209fa7811fed00f49d33f1b","unresolved":false,"context_lines":[{"line_number":893,"context_line":"        if memory_usage \u003e ram_limit:"},{"line_number":894,"context_line":"            LOG.debug(\u0027Host has limitations on usable RAM. There is not \u0027"},{"line_number":895,"context_line":"                      \u0027enough free RAM to schedule this instance. Usage: \u0027"},{"line_number":896,"context_line":"                      \u0027%(usage)s, limit: %(limit)s\u0027 % {\u0027usage\u0027: memory_usage,"},{"line_number":897,"context_line":"                                                       \u0027limit\u0027: ram_limit})"},{"line_number":898,"context_line":"            return"},{"line_number":899,"context_line":"        if cpu_usage \u003e cpu_limit:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_0f12a7b4","line":896,"range":{"start_line":896,"start_character":51,"end_line":896,"end_character":53},"in_reply_to":"9aed3d3a_49907095","updated":"2016-03-01 14:51:07.000000000","message":"Done","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"adf60320a5e37d8560894edca379187e1e9dcdee","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        if cpu_usage \u003e cpu_limit:"},{"line_number":900,"context_line":"            LOG.debug(\u0027Host has limitations on usable RAM. There is not \u0027"},{"line_number":901,"context_line":"                      \u0027enough free RAM to schedule this instance. Usage: \u0027"},{"line_number":902,"context_line":"                      \u0027%(usage)s, limit: %(limit)s\u0027 % {\u0027usage\u0027: memory_usage,"},{"line_number":903,"context_line":"                                                       \u0027limit\u0027: ram_limit})"},{"line_number":904,"context_line":"            return"},{"line_number":905,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_298b6c69","line":902,"range":{"start_line":902,"start_character":51,"end_line":902,"end_character":53},"updated":"2016-03-01 06:03:43.000000000","message":"ditto","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"67635d9548cf4332f209fa7811fed00f49d33f1b","unresolved":false,"context_lines":[{"line_number":899,"context_line":"        if cpu_usage \u003e cpu_limit:"},{"line_number":900,"context_line":"            LOG.debug(\u0027Host has limitations on usable RAM. There is not \u0027"},{"line_number":901,"context_line":"                      \u0027enough free RAM to schedule this instance. Usage: \u0027"},{"line_number":902,"context_line":"                      \u0027%(usage)s, limit: %(limit)s\u0027 % {\u0027usage\u0027: memory_usage,"},{"line_number":903,"context_line":"                                                       \u0027limit\u0027: ram_limit})"},{"line_number":904,"context_line":"            return"},{"line_number":905,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_8f26b714","line":902,"range":{"start_line":902,"start_character":51,"end_line":902,"end_character":53},"in_reply_to":"9aed3d3a_298b6c69","updated":"2016-03-01 14:51:07.000000000","message":"Done","commit_id":"de67a4c669f3269e563adba2b0b010cba3759faa"},{"author":{"_account_id":20223,"name":"zhaolihui","email":"zhaolh@awcloud.com","username":"zhaolihui"},"change_message_id":"223d5f9c263d1b174d3fcc6e934281b2e291ddcf","unresolved":false,"context_lines":[{"line_number":766,"context_line":"            fields.CPUThreadAllocationPolicy.ISOLATE):"},{"line_number":767,"context_line":"        # make sure we have at least one fully free core"},{"line_number":768,"context_line":"        if threads_per_core not in sibling_sets:"},{"line_number":769,"context_line":"            LOG.debug(\u0027Host does not have any fully free thread sibling sets.\u0027"},{"line_number":770,"context_line":"                      \u0027It is not possible to emulate a non-SMT behavior \u0027"},{"line_number":771,"context_line":"                      \u0027for the isolate policy without this.\u0027)"},{"line_number":772,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_ecf66ff8","line":769,"range":{"start_line":769,"start_character":16,"end_line":769,"end_character":21},"updated":"2016-04-08 09:38:47.000000000","message":"LOG.debug should be LOG.error or LOG.warning","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7cb809cf21e8a0d88e92d799ee48328ff16c2a69","unresolved":false,"context_lines":[{"line_number":766,"context_line":"            fields.CPUThreadAllocationPolicy.ISOLATE):"},{"line_number":767,"context_line":"        # make sure we have at least one fully free core"},{"line_number":768,"context_line":"        if threads_per_core not in sibling_sets:"},{"line_number":769,"context_line":"            LOG.debug(\u0027Host does not have any fully free thread sibling sets.\u0027"},{"line_number":770,"context_line":"                      \u0027It is not possible to emulate a non-SMT behavior \u0027"},{"line_number":771,"context_line":"                      \u0027for the isolate policy without this.\u0027)"},{"line_number":772,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_269eb656","line":769,"range":{"start_line":769,"start_character":16,"end_line":769,"end_character":21},"in_reply_to":"7a1b2928_b4d13cd0","updated":"2016-04-12 09:03:58.000000000","message":"http://specs.openstack.org/openstack/openstack-specs/specs/log-guidelines.html#definition-of-log-levels","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a66a536377a0c181619f28306f4027194f64c723","unresolved":false,"context_lines":[{"line_number":766,"context_line":"            fields.CPUThreadAllocationPolicy.ISOLATE):"},{"line_number":767,"context_line":"        # make sure we have at least one fully free core"},{"line_number":768,"context_line":"        if threads_per_core not in sibling_sets:"},{"line_number":769,"context_line":"            LOG.debug(\u0027Host does not have any fully free thread sibling sets.\u0027"},{"line_number":770,"context_line":"                      \u0027It is not possible to emulate a non-SMT behavior \u0027"},{"line_number":771,"context_line":"                      \u0027for the isolate policy without this.\u0027)"},{"line_number":772,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a1b2928_b4d13cd0","line":769,"range":{"start_line":769,"start_character":16,"end_line":769,"end_character":21},"in_reply_to":"9a061dce_ecf66ff8","updated":"2016-04-11 15:15:24.000000000","message":"I don\u0027t think so. This is quite a low level error, and exposing that information to operators (vs. a generic \"scheduling failed\", as exists currently) probably isn\u0027t a good idea IMO.","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":20223,"name":"zhaolihui","email":"zhaolh@awcloud.com","username":"zhaolihui"},"change_message_id":"223d5f9c263d1b174d3fcc6e934281b2e291ddcf","unresolved":false,"context_lines":[{"line_number":821,"context_line":"              or None if instance cannot be pinned to the given host"},{"line_number":822,"context_line":"    \"\"\""},{"line_number":823,"context_line":"    if host_cell.avail_cpus \u003c len(instance_cell.cpuset):"},{"line_number":824,"context_line":"        LOG.debug(\u0027Not enough available CPUs to schedule instance. \u0027"},{"line_number":825,"context_line":"                  \u0027Oversubscription is not possible with pinned instances. \u0027"},{"line_number":826,"context_line":"                  \u0027Required: %(required)s, actual: %(actual)s\u0027,"},{"line_number":827,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_ec12ef08","line":824,"range":{"start_line":824,"start_character":12,"end_line":824,"end_character":17},"updated":"2016-04-08 09:38:47.000000000","message":"others\u0027 ditto","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":14287,"name":"Waldemar Znoinski","email":"wznoinsk@redhat.com","username":"wznoinsk"},"change_message_id":"e605515368d79254d77b730a373a7a96192ce3cc","unresolved":false,"context_lines":[{"line_number":865,"context_line":"    # NOTE (ndipanov): do not allow an instance to overcommit against"},{"line_number":866,"context_line":"    # itself on any NUMA cell"},{"line_number":867,"context_line":"    if instance_cell.memory \u003e host_cell.memory:"},{"line_number":868,"context_line":"        LOG.debug(\u0027Not enough host RAM to schedule instance. Required: \u0027"},{"line_number":869,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027,"},{"line_number":870,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":871,"context_line":"                   \u0027actual\u0027: host_cell.memory})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_9719ce24","line":868,"range":{"start_line":868,"start_character":29,"end_line":868,"end_character":38},"updated":"2016-04-08 00:34:47.000000000","message":"is it worth making clear it\u0027s about per NUMA cell memory ? also I\u0027d use \u0027memory\u0027 instead of \u0027RAM\u0027","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a66a536377a0c181619f28306f4027194f64c723","unresolved":false,"context_lines":[{"line_number":865,"context_line":"    # NOTE (ndipanov): do not allow an instance to overcommit against"},{"line_number":866,"context_line":"    # itself on any NUMA cell"},{"line_number":867,"context_line":"    if instance_cell.memory \u003e host_cell.memory:"},{"line_number":868,"context_line":"        LOG.debug(\u0027Not enough host RAM to schedule instance. Required: \u0027"},{"line_number":869,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027,"},{"line_number":870,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":871,"context_line":"                   \u0027actual\u0027: host_cell.memory})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_a372b847","line":868,"range":{"start_line":868,"start_character":29,"end_line":868,"end_character":38},"in_reply_to":"9a061dce_9719ce24","updated":"2016-04-11 15:15:24.000000000","message":"Done","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":14287,"name":"Waldemar Znoinski","email":"wznoinsk@redhat.com","username":"wznoinsk"},"change_message_id":"e605515368d79254d77b730a373a7a96192ce3cc","unresolved":false,"context_lines":[{"line_number":872,"context_line":"        return"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    if len(instance_cell.cpuset) \u003e len(host_cell.cpuset):"},{"line_number":875,"context_line":"        LOG.debug(\u0027Not enough host CPUs to schedule instance. Required: \u0027"},{"line_number":876,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027,"},{"line_number":877,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":878,"context_line":"                   \u0027actual\u0027: len(host_cell.cpuset)})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_17b3fe0a","line":875,"range":{"start_line":875,"start_character":23,"end_line":875,"end_character":38},"updated":"2016-04-08 00:34:47.000000000","message":"as well to mention \u0027not enough\u0027 per NUMA cell","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a66a536377a0c181619f28306f4027194f64c723","unresolved":false,"context_lines":[{"line_number":872,"context_line":"        return"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"    if len(instance_cell.cpuset) \u003e len(host_cell.cpuset):"},{"line_number":875,"context_line":"        LOG.debug(\u0027Not enough host CPUs to schedule instance. Required: \u0027"},{"line_number":876,"context_line":"                  \u0027%(required)s, actual: %(actual)s\u0027,"},{"line_number":877,"context_line":"                  {\u0027required\u0027: len(instance_cell.cpuset),"},{"line_number":878,"context_line":"                   \u0027actual\u0027: len(host_cell.cpuset)})"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a1b2928_34ab6c1f","line":875,"range":{"start_line":875,"start_character":23,"end_line":875,"end_character":38},"in_reply_to":"9a061dce_17b3fe0a","updated":"2016-04-11 15:15:24.000000000","message":"Done","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":14287,"name":"Waldemar Znoinski","email":"wznoinsk@redhat.com","username":"wznoinsk"},"change_message_id":"e605515368d79254d77b730a373a7a96192ce3cc","unresolved":false,"context_lines":[{"line_number":882,"context_line":"        new_instance_cell \u003d _numa_fit_instance_cell_with_pinning("},{"line_number":883,"context_line":"            host_cell, instance_cell)"},{"line_number":884,"context_line":"        if not new_instance_cell:"},{"line_number":885,"context_line":"            # No need to log here - it\u0027s handled further down"},{"line_number":886,"context_line":"            return"},{"line_number":887,"context_line":"        new_instance_cell.pagesize \u003d instance_cell.pagesize"},{"line_number":888,"context_line":"        instance_cell \u003d new_instance_cell"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_77dfdad5","line":885,"range":{"start_line":885,"start_character":12,"end_line":885,"end_character":61},"updated":"2016-04-08 00:34:47.000000000","message":"I think we should LOG here though, it will never reach the below code if it \u0027return\u0027s and callers of this function (i.e.: https://github.com/openstack/nova/blob/master/nova/virt/hardware.py#L1232) don\u0027t do any LOGging at all","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a66a536377a0c181619f28306f4027194f64c723","unresolved":false,"context_lines":[{"line_number":882,"context_line":"        new_instance_cell \u003d _numa_fit_instance_cell_with_pinning("},{"line_number":883,"context_line":"            host_cell, instance_cell)"},{"line_number":884,"context_line":"        if not new_instance_cell:"},{"line_number":885,"context_line":"            # No need to log here - it\u0027s handled further down"},{"line_number":886,"context_line":"            return"},{"line_number":887,"context_line":"        new_instance_cell.pagesize \u003d instance_cell.pagesize"},{"line_number":888,"context_line":"        instance_cell \u003d new_instance_cell"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a1b2928_cf6541e2","line":885,"range":{"start_line":885,"start_character":12,"end_line":885,"end_character":61},"in_reply_to":"9a061dce_77dfdad5","updated":"2016-04-11 15:15:24.000000000","message":"Done","commit_id":"3d70d6687d90dc1f3afb40690f71c74cb7809c19"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"1b69e3879f163186a62ba8834b2927b3cb468027","unresolved":false,"context_lines":[{"line_number":838,"context_line":""},{"line_number":839,"context_line":"    if host_cell.siblings:"},{"line_number":840,"context_line":"        # Try to pack the instance cell onto cores"},{"line_number":841,"context_line":"        return _pack_instance_onto_cores("},{"line_number":842,"context_line":"            host_cell.free_siblings, instance_cell, host_cell.id,"},{"line_number":843,"context_line":"            max(map(len, host_cell.siblings)))"},{"line_number":844,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_1fc33439","line":841,"updated":"2016-04-28 19:48:55.000000000","message":"this can return None right?","commit_id":"68aa180675f655a8b27c637c8bd66079b5e66e79"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3b20b83448df8cba2336bd5fc5204803a3aa0f7d","unresolved":false,"context_lines":[{"line_number":838,"context_line":""},{"line_number":839,"context_line":"    if host_cell.siblings:"},{"line_number":840,"context_line":"        # Try to pack the instance cell onto cores"},{"line_number":841,"context_line":"        return _pack_instance_onto_cores("},{"line_number":842,"context_line":"            host_cell.free_siblings, instance_cell, host_cell.id,"},{"line_number":843,"context_line":"            max(map(len, host_cell.siblings)))"},{"line_number":844,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_f39751e9","line":841,"in_reply_to":"1a122d0e_1fc33439","updated":"2016-05-02 15:50:05.000000000","message":"Yes, and there are some cases where it currently returns None without a useful error message, so it would probably make sense to enhance it in this commit.","commit_id":"68aa180675f655a8b27c637c8bd66079b5e66e79"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"1b69e3879f163186a62ba8834b2927b3cb468027","unresolved":false,"context_lines":[{"line_number":899,"context_line":"                                                      \u0027limit\u0027: ram_limit})"},{"line_number":900,"context_line":"            return"},{"line_number":901,"context_line":"        if cpu_usage \u003e cpu_limit:"},{"line_number":902,"context_line":"            LOG.debug(\u0027Host has limitations on usable RAM. There is not \u0027"},{"line_number":903,"context_line":"                      \u0027enough free RAM to schedule this instance. Usage: \u0027"},{"line_number":904,"context_line":"                      \u0027%(usage)s, limit: %(limit)s\u0027, {\u0027usage\u0027: memory_usage,"},{"line_number":905,"context_line":"                                                      \u0027limit\u0027: ram_limit})"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_3fbf10d1","line":902,"updated":"2016-04-28 19:48:55.000000000","message":"you meant to say CPU here","commit_id":"68aa180675f655a8b27c637c8bd66079b5e66e79"},{"author":{"_account_id":11647,"name":"Przemyslaw Czesnowicz","email":"przemyslaw.czesnowicz@intel.com","username":"pczesno"},"change_message_id":"1b69e3879f163186a62ba8834b2927b3cb468027","unresolved":false,"context_lines":[{"line_number":910,"context_line":"        pagesize \u003d _numa_cell_supports_pagesize_request("},{"line_number":911,"context_line":"            host_cell, instance_cell)"},{"line_number":912,"context_line":"        if not pagesize:"},{"line_number":913,"context_line":"            LOG.debug(\u0027Instance requested hugepages but host topology does \u0027"},{"line_number":914,"context_line":"                      \u0027not provide them.\u0027)"},{"line_number":915,"context_line":"            return"},{"line_number":916,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_5fa3ecb1","line":913,"updated":"2016-04-28 19:48:55.000000000","message":"maybe say \"Host doesn\u0027t support memory pagesize request\"","commit_id":"68aa180675f655a8b27c637c8bd66079b5e66e79"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3b20b83448df8cba2336bd5fc5204803a3aa0f7d","unresolved":false,"context_lines":[{"line_number":910,"context_line":"        pagesize \u003d _numa_cell_supports_pagesize_request("},{"line_number":911,"context_line":"            host_cell, instance_cell)"},{"line_number":912,"context_line":"        if not pagesize:"},{"line_number":913,"context_line":"            LOG.debug(\u0027Instance requested hugepages but host topology does \u0027"},{"line_number":914,"context_line":"                      \u0027not provide them.\u0027)"},{"line_number":915,"context_line":"            return"},{"line_number":916,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1a122d0e_73ab411f","line":913,"in_reply_to":"1a122d0e_5fa3ecb1","updated":"2016-05-02 15:50:05.000000000","message":"This is ambiguous.  I suggest logging the requested pagesize--it could be that the instance wants 1G hugepages but the host only provides 2MB hugepages.","commit_id":"68aa180675f655a8b27c637c8bd66079b5e66e79"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"c23e144a8bb548d5e5d2fdcc99a0a19f2698bf67","unresolved":false,"context_lines":[{"line_number":848,"context_line":"            [host_cell.free_cpus], instance_cell, host_cell.id)"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"    if not numa_cell:"},{"line_number":851,"context_line":"        LOG.debug(\u0027Failed to map instance cell CPUs to host cell CPUs\u0027)"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"    return numa_cell"},{"line_number":854,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_2090fa94","line":851,"range":{"start_line":851,"start_character":8,"end_line":851,"end_character":70},"updated":"2016-05-04 15:48:41.000000000","message":"While this is better than what we have now, perhaps a later commit could add more detailed logs in the failure modes for _pack_instance_onto_cores().","commit_id":"9329466b6afd5f6063235aa157652470c624ce97"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ea137a2a171169e586219d1c34d05f01fc1c8163","unresolved":false,"context_lines":[{"line_number":848,"context_line":"            [host_cell.free_cpus], instance_cell, host_cell.id)"},{"line_number":849,"context_line":""},{"line_number":850,"context_line":"    if not numa_cell:"},{"line_number":851,"context_line":"        LOG.debug(\u0027Failed to map instance cell CPUs to host cell CPUs\u0027)"},{"line_number":852,"context_line":""},{"line_number":853,"context_line":"    return numa_cell"},{"line_number":854,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_ebdc2376","line":851,"range":{"start_line":851,"start_character":8,"end_line":851,"end_character":70},"in_reply_to":"1a122d0e_2090fa94","updated":"2016-05-04 15:59:15.000000000","message":"AFAICT, due to the \"try-fail-try again\" model that _pack_instance_onto_cores uses, I don\u0027t think this is possible yet. The optional logging proposed in your spec [1] should allow for this.\n\n[1] https://review.openstack.org/#/c/306647/","commit_id":"9329466b6afd5f6063235aa157652470c624ce97"},{"author":{"_account_id":14287,"name":"Waldemar Znoinski","email":"wznoinsk@redhat.com","username":"wznoinsk"},"change_message_id":"5c66a61a3db936057c2a31060284786d2f4b0ef4","unresolved":false,"context_lines":[{"line_number":897,"context_line":"        cpu_limit \u003d len(host_cell.cpuset) * limit_cell.cpu_allocation_ratio"},{"line_number":898,"context_line":"        ram_limit \u003d host_cell.memory * limit_cell.ram_allocation_ratio"},{"line_number":899,"context_line":"        if memory_usage \u003e ram_limit:"},{"line_number":900,"context_line":"            LOG.debug(\u0027Host has limitations on usable memory. There is not \u0027"},{"line_number":901,"context_line":"                      \u0027enough free memory to schedule this instance. Usage: \u0027"},{"line_number":902,"context_line":"                      \u0027%(usage)d, limit: %(limit)d\u0027, {\u0027usage\u0027: memory_usage,"},{"line_number":903,"context_line":"                                                      \u0027limit\u0027: ram_limit})"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_83498c33","line":900,"range":{"start_line":900,"start_character":27,"end_line":900,"end_character":28},"updated":"2016-05-23 11:58:13.000000000","message":"do we want to mention cell here?","commit_id":"e96ffd3e6ca9a979c5c606908d33a93d463e3bf8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f238c00e5977f46270f01e0571e42ce959fd9d33","unresolved":false,"context_lines":[{"line_number":897,"context_line":"        cpu_limit \u003d len(host_cell.cpuset) * limit_cell.cpu_allocation_ratio"},{"line_number":898,"context_line":"        ram_limit \u003d host_cell.memory * limit_cell.ram_allocation_ratio"},{"line_number":899,"context_line":"        if memory_usage \u003e ram_limit:"},{"line_number":900,"context_line":"            LOG.debug(\u0027Host has limitations on usable memory. There is not \u0027"},{"line_number":901,"context_line":"                      \u0027enough free memory to schedule this instance. Usage: \u0027"},{"line_number":902,"context_line":"                      \u0027%(usage)d, limit: %(limit)d\u0027, {\u0027usage\u0027: memory_usage,"},{"line_number":903,"context_line":"                                                      \u0027limit\u0027: ram_limit})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_12a446a4","line":900,"range":{"start_line":900,"start_character":27,"end_line":900,"end_character":28},"in_reply_to":"bab6814e_83498c33","updated":"2016-06-03 16:01:14.000000000","message":"Done","commit_id":"e96ffd3e6ca9a979c5c606908d33a93d463e3bf8"},{"author":{"_account_id":14287,"name":"Waldemar Znoinski","email":"wznoinsk@redhat.com","username":"wznoinsk"},"change_message_id":"5c66a61a3db936057c2a31060284786d2f4b0ef4","unresolved":false,"context_lines":[{"line_number":903,"context_line":"                                                      \u0027limit\u0027: ram_limit})"},{"line_number":904,"context_line":"            return"},{"line_number":905,"context_line":"        if cpu_usage \u003e cpu_limit:"},{"line_number":906,"context_line":"            LOG.debug(\u0027Host has limitations on usable CPUs. There are not \u0027"},{"line_number":907,"context_line":"                      \u0027enough free CPUs to schedule this instance. Usage: \u0027"},{"line_number":908,"context_line":"                      \u0027%(usage)d, limit: %(limit)d\u0027, {\u0027usage\u0027: memory_usage,"},{"line_number":909,"context_line":"                                                      \u0027limit\u0027: cpu_limit})"}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_2361c0a9","line":906,"range":{"start_line":906,"start_character":27,"end_line":906,"end_character":28},"updated":"2016-05-23 11:58:13.000000000","message":"do we want to mention cell here?","commit_id":"e96ffd3e6ca9a979c5c606908d33a93d463e3bf8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f238c00e5977f46270f01e0571e42ce959fd9d33","unresolved":false,"context_lines":[{"line_number":903,"context_line":"                                                      \u0027limit\u0027: ram_limit})"},{"line_number":904,"context_line":"            return"},{"line_number":905,"context_line":"        if cpu_usage \u003e cpu_limit:"},{"line_number":906,"context_line":"            LOG.debug(\u0027Host has limitations on usable CPUs. There are not \u0027"},{"line_number":907,"context_line":"                      \u0027enough free CPUs to schedule this instance. Usage: \u0027"},{"line_number":908,"context_line":"                      \u0027%(usage)d, limit: %(limit)d\u0027, {\u0027usage\u0027: memory_usage,"},{"line_number":909,"context_line":"                                                      \u0027limit\u0027: cpu_limit})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_32a98a7c","line":906,"range":{"start_line":906,"start_character":27,"end_line":906,"end_character":28},"in_reply_to":"bab6814e_2361c0a9","updated":"2016-06-03 16:01:14.000000000","message":"Done","commit_id":"e96ffd3e6ca9a979c5c606908d33a93d463e3bf8"},{"author":{"_account_id":14287,"name":"Waldemar Znoinski","email":"wznoinsk@redhat.com","username":"wznoinsk"},"change_message_id":"5c66a61a3db936057c2a31060284786d2f4b0ef4","unresolved":false,"context_lines":[{"line_number":914,"context_line":"        pagesize \u003d _numa_cell_supports_pagesize_request("},{"line_number":915,"context_line":"            host_cell, instance_cell)"},{"line_number":916,"context_line":"        if not pagesize:"},{"line_number":917,"context_line":"            LOG.debug(\u0027Host does not support memory pagesize request. \u0027"},{"line_number":918,"context_line":"                      \u0027Requested: %d kB\u0027, instance_cell.pagesize)"},{"line_number":919,"context_line":"            return"},{"line_number":920,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bab6814e_e3e69842","line":917,"range":{"start_line":917,"start_character":23,"end_line":917,"end_character":69},"updated":"2016-05-23 11:58:13.000000000","message":"I think it would sound better as \u0027Host cell does not support requested memory page size.\u0027","commit_id":"e96ffd3e6ca9a979c5c606908d33a93d463e3bf8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f238c00e5977f46270f01e0571e42ce959fd9d33","unresolved":false,"context_lines":[{"line_number":914,"context_line":"        pagesize \u003d _numa_cell_supports_pagesize_request("},{"line_number":915,"context_line":"            host_cell, instance_cell)"},{"line_number":916,"context_line":"        if not pagesize:"},{"line_number":917,"context_line":"            LOG.debug(\u0027Host does not support memory pagesize request. \u0027"},{"line_number":918,"context_line":"                      \u0027Requested: %d kB\u0027, instance_cell.pagesize)"},{"line_number":919,"context_line":"            return"},{"line_number":920,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9abb7d3a_b20f3a87","line":917,"range":{"start_line":917,"start_character":23,"end_line":917,"end_character":69},"in_reply_to":"bab6814e_e3e69842","updated":"2016-06-03 16:01:14.000000000","message":"Done","commit_id":"e96ffd3e6ca9a979c5c606908d33a93d463e3bf8"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d40e8434640345ee674618b8e4adb7e107dbf97c","unresolved":false,"context_lines":[{"line_number":833,"context_line":"                  \u0027Oversubscription is not possible with pinned instances. \u0027"},{"line_number":834,"context_line":"                  \u0027Required: %(required)s, actual: %(actual)s\u0027,"},{"line_number":835,"context_line":"                  {\u0027required\u0027: instance_cell.memory,"},{"line_number":836,"context_line":"                   \u0027actual\u0027: host_cell.memory})"},{"line_number":837,"context_line":"        return"},{"line_number":838,"context_line":""},{"line_number":839,"context_line":"    if host_cell.siblings:"}],"source_content_type":"text/x-python","patch_set":8,"id":"dada55a8_effee3ac","line":836,"updated":"2016-07-25 20:21:42.000000000","message":"++. Great to have very explicit debug messages for these conditions. Very nice work.","commit_id":"3422f6f3d651f59f54ca25340ec9956f69d7d1c8"}]}
