)]}'
{"nova/tests/unit/scheduler/filters/test_numa_topology_filters.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"55413ebd15812e4fcaf542ca109fa840dfaa472e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        self.assertEqual(limits.cpu_allocation_ratio, 21)"},{"line_number":149,"context_line":"        self.assertEqual(limits.ram_allocation_ratio, 1.3)"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def test_numa_topology_filter_pass_custome_mempages(self):"},{"line_number":152,"context_line":"        instance_topology \u003d objects.InstanceNUMATopology("},{"line_number":153,"context_line":"            cells\u003d[objects.InstanceNUMACell(id\u003d0, cpuset\u003dset([3]),"},{"line_number":154,"context_line":"                                            memory\u003d128, pagesize\u003d4),"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_17b85ac7","line":151,"range":{"start_line":151,"start_character":39,"end_line":151,"end_character":46},"updated":"2015-12-09 00:04:44.000000000","message":"s/custome/custom/ but I think you can leave off the word \"custom\" anyway, right? The two tests you\u0027re adding are the same except one is the pass case and the other is the fail case and their names should be similar, IMO","commit_id":"7e235b1cd3a86c373f94bd498e9690a662c05763"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"8817ac12e8dab874342469cf28cd2dff479bef17","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            cells\u003d[objects.InstanceNUMACell(id\u003d0, cpuset\u003dset([1]), memory\u003d512),"},{"line_number":128,"context_line":"                   objects.InstanceNUMACell(id\u003d1, cpuset\u003dset([3]), memory\u003d512)"},{"line_number":129,"context_line":"               ])"},{"line_number":130,"context_line":"        spec_obj \u003d self._get_spec_obj(numa_topology\u003dinstance_topology)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        extra_specs \u003d ["},{"line_number":133,"context_line":"            {},"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aed3d3a_fa1c5b79","line":130,"updated":"2016-02-25 22:51:12.000000000","message":"Unrelated change","commit_id":"7fea16ba9d8e47072f190fdb53fdb70ed8a58808"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"7d6f12d83d731f65144d128fe90b79f72732de57","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            cells\u003d[objects.InstanceNUMACell(id\u003d0, cpuset\u003dset([1]), memory\u003d512),"},{"line_number":128,"context_line":"                   objects.InstanceNUMACell(id\u003d1, cpuset\u003dset([3]), memory\u003d512)"},{"line_number":129,"context_line":"               ])"},{"line_number":130,"context_line":"        spec_obj \u003d self._get_spec_obj(numa_topology\u003dinstance_topology)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        extra_specs \u003d ["},{"line_number":133,"context_line":"            {},"}],"source_content_type":"text/x-python","patch_set":15,"id":"9aed3d3a_8e1d0c12","line":130,"in_reply_to":"9aed3d3a_fa1c5b79","updated":"2016-02-26 02:28:02.000000000","message":"Oh!! Thank you, done","commit_id":"7fea16ba9d8e47072f190fdb53fdb70ed8a58808"}],"nova/tests/unit/virt/test_hardware.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a16ef0ac822d009750abadeeb2b87f0d1cf414d","unresolved":false,"context_lines":[{"line_number":1803,"context_line":"            2048,"},{"line_number":1804,"context_line":"            hw._numa_cell_supports_pagesize_request(host_cell, inst_cell))"},{"line_number":1805,"context_line":""},{"line_number":1806,"context_line":"        inst_cell \u003d objects.InstanceNUMACell("},{"line_number":1807,"context_line":"            id\u003d0, cpuset\u003dset([0]), memory\u003d1024 + 1, pagesize\u003d2048)"},{"line_number":1808,"context_line":"        self.assertIsNone(hw._numa_cell_supports_pagesize_request("},{"line_number":1809,"context_line":"            host_cell, inst_cell))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_e38545ad","line":1806,"updated":"2015-07-13 14:45:31.000000000","message":"It\u0027d be helpful to add a comment about why this fails.","commit_id":"ff5c408c550ac2e1a10d079910bae8239b6cde3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a16ef0ac822d009750abadeeb2b87f0d1cf414d","unresolved":false,"context_lines":[{"line_number":1808,"context_line":"        self.assertIsNone(hw._numa_cell_supports_pagesize_request("},{"line_number":1809,"context_line":"            host_cell, inst_cell))"},{"line_number":1810,"context_line":""},{"line_number":1811,"context_line":"        inst_cell \u003d objects.InstanceNUMACell("},{"line_number":1812,"context_line":"            id\u003d0, cpuset\u003dset([0]), memory\u003d1024, pagesize\u003d4096)"},{"line_number":1813,"context_line":"        self.assertIsNone(hw._numa_cell_supports_pagesize_request("},{"line_number":1814,"context_line":"            host_cell, inst_cell))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_839479e2","line":1811,"updated":"2015-07-13 14:45:31.000000000","message":"ditto","commit_id":"ff5c408c550ac2e1a10d079910bae8239b6cde3f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d68db3ac7f0cd6b492f27ead0ebf22e39a964cf7","unresolved":false,"context_lines":[{"line_number":1803,"context_line":"            2048,"},{"line_number":1804,"context_line":"            hw._numa_cell_supports_pagesize_request(host_cell, inst_cell))"},{"line_number":1805,"context_line":""},{"line_number":1806,"context_line":"        # Test memory can\u0027t be divided with no rem by mempage\u0027s size_kb"},{"line_number":1807,"context_line":"        inst_cell \u003d objects.InstanceNUMACell("},{"line_number":1808,"context_line":"            id\u003d0, cpuset\u003dset([0]), memory\u003d1024 + 1, pagesize\u003d2048)"},{"line_number":1809,"context_line":"        self.assertIsNone(hw._numa_cell_supports_pagesize_request("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_140cc239","line":1806,"updated":"2015-08-20 11:17:16.000000000","message":"Nit: These two new tests should really be in their own test method, its easier to debug that way.","commit_id":"9168800e03f2ae80b93277fdce4f0352b9b8f18f"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"8034e019aec79f5b62ed4026beb7f06688d23416","unresolved":false,"context_lines":[{"line_number":1803,"context_line":"            2048,"},{"line_number":1804,"context_line":"            hw._numa_cell_supports_pagesize_request(host_cell, inst_cell))"},{"line_number":1805,"context_line":""},{"line_number":1806,"context_line":"        # Test memory can\u0027t be divided with no rem by mempage\u0027s size_kb"},{"line_number":1807,"context_line":"        inst_cell \u003d objects.InstanceNUMACell("},{"line_number":1808,"context_line":"            id\u003d0, cpuset\u003dset([0]), memory\u003d1024 + 1, pagesize\u003d2048)"},{"line_number":1809,"context_line":"        self.assertIsNone(hw._numa_cell_supports_pagesize_request("}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_d19b3f71","line":1806,"in_reply_to":"fa1b9901_140cc239","updated":"2015-08-24 01:19:04.000000000","message":"Done","commit_id":"9168800e03f2ae80b93277fdce4f0352b9b8f18f"}],"nova/virt/hardware.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f9372ebfc5e477e310762610fdb8cfc7d0a4c482","unresolved":false,"context_lines":[{"line_number":616,"context_line":"            try:"},{"line_number":617,"context_line":"                if host_cell.can_fit_hugepages(pagesize, inst_cell_mem):"},{"line_number":618,"context_line":"                    return pagesize"},{"line_number":619,"context_line":"            except exception.MemoryPageSizeNotSupported:"},{"line_number":620,"context_line":"                pass"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    if inst_cell.pagesize \u003d\u003d MEMPAGES_SMALL:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_a302dd09","line":619,"updated":"2015-07-13 14:49:49.000000000","message":"i think that for debugging it would be useful if there were a log debug message here\n\nif this exception is hit then why do we continue?","commit_id":"ff5c408c550ac2e1a10d079910bae8239b6cde3f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d33bff2b59724eddeab350a623c6890a4b2255b7","unresolved":false,"context_lines":[{"line_number":616,"context_line":"            try:"},{"line_number":617,"context_line":"                if host_cell.can_fit_hugepages(pagesize, inst_cell_mem):"},{"line_number":618,"context_line":"                    return pagesize"},{"line_number":619,"context_line":"            except exception.MemoryPageSizeNotSupported:"},{"line_number":620,"context_line":"                pass"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    if inst_cell.pagesize \u003d\u003d MEMPAGES_SMALL:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_f9d6ee4d","line":619,"in_reply_to":"9a41bdd9_592f3ef6","updated":"2015-07-15 08:44:22.000000000","message":"Do not think we want to update the behavior of this method:  The method is returning whether there is enough available memory on cell to handle the request (true/false), raises exception only if the page size is not supported. So 3 possibles return which seems to me be good.","commit_id":"ff5c408c550ac2e1a10d079910bae8239b6cde3f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3dacba99bfdc1270fb20e5db8176a3810bef1677","unresolved":false,"context_lines":[{"line_number":616,"context_line":"            try:"},{"line_number":617,"context_line":"                if host_cell.can_fit_hugepages(pagesize, inst_cell_mem):"},{"line_number":618,"context_line":"                    return pagesize"},{"line_number":619,"context_line":"            except exception.MemoryPageSizeNotSupported:"},{"line_number":620,"context_line":"                pass"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"    if inst_cell.pagesize \u003d\u003d MEMPAGES_SMALL:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_592f3ef6","line":619,"in_reply_to":"9a41bdd9_a302dd09","updated":"2015-07-13 15:13:07.000000000","message":"Because as the bug report mentions, you can have multiple nodes and the first might not fit the request which raises the exception (which is apparently normal operation, it\u0027s controlling the code flow via exception) but the later nodes in the list can fit the request, but we don\u0027t get to them because of the exception.\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/objects/numa.py#n118\n\nI\u0027d prefer that a method called \u0027can_fit_hugepages\u0027 would return a boolean rather than raise an exception when it can\u0027t fit the request, but that would be a separate change.","commit_id":"ff5c408c550ac2e1a10d079910bae8239b6cde3f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8045c58004b6ccb2136ed47807af7ace56fd82ec","unresolved":false,"context_lines":[{"line_number":625,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize[:-1])"},{"line_number":626,"context_line":"    elif inst_cell.pagesize \u003d\u003d MEMPAGES_ANY:"},{"line_number":627,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize)"},{"line_number":628,"context_line":"    else:"},{"line_number":629,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_14ac1d9f","line":628,"updated":"2015-07-13 15:28:08.000000000","message":"another way to fix this. we can stop this early. rewrite this branch as\n\nelif inst_cell.pagesize in avail_pagesize:\n\n     return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])\n\nbut both way works","commit_id":"ff5c408c550ac2e1a10d079910bae8239b6cde3f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"b9aa204f0207d2f3cd3eca25cff7c5c03793392f","unresolved":false,"context_lines":[{"line_number":622,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize[:-1])"},{"line_number":623,"context_line":"    elif inst_cell.pagesize \u003d\u003d MEMPAGES_ANY:"},{"line_number":624,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize)"},{"line_number":625,"context_line":"    elif inst_cell.pagesize in avail_pagesize:"},{"line_number":626,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":627,"context_line":"    else:"},{"line_number":628,"context_line":"        LOG.debug(\"Can\u0027t find pagesize %(pagesize)d in %(avail_pagesize)s\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_ddc3d587","line":625,"updated":"2015-07-15 08:55:42.000000000","message":"The method is raising an exception if pagesize is not supported by cell. I prefer to see try..except here instead of a custom check with avail_pagesize","commit_id":"a0ca0db2a2755c931d449b45919f8a0245be33a0"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"43477d697fc1b99a862ceea76c3ca21034256ada","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    try:"},{"line_number":627,"context_line":"        # Host cell will raise exception when no fit hugepages"},{"line_number":628,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":629,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":630,"context_line":"        LOG.debug(\"Can\u0027t find pagesize %(pagesize)d in %(avail_pagesize)s\","}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_068b1769","line":627,"updated":"2015-07-15 16:20:15.000000000","message":"This comment is false, the method will raise exception only if the pagesize requested is not supported. So we will return None, the filter will make this host as not able to accept the request and normally move to the next.\n\nPlease just remove the comment, the code is enough clear as it is I guess.","commit_id":"e7c1c6e9a95ebab3739b823eeeb7c672d50bda16"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"394a37b04011fab094261f32d156d66728cae5f7","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    try:"},{"line_number":627,"context_line":"        # Host cell will raise exception when no fit hugepages"},{"line_number":628,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":629,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":630,"context_line":"        LOG.debug(\"Can\u0027t find pagesize %(pagesize)d in %(avail_pagesize)s\","}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_46da7fe9","line":627,"in_reply_to":"9a41bdd9_068b1769","updated":"2015-07-16 01:22:42.000000000","message":"Oh!! I mean the host_cell variable. I just specify not clear. I will remove it, thx.","commit_id":"e7c1c6e9a95ebab3739b823eeeb7c672d50bda16"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"43477d697fc1b99a862ceea76c3ca21034256ada","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        # Host cell will raise exception when no fit hugepages"},{"line_number":628,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":629,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":630,"context_line":"        LOG.debug(\"Can\u0027t find pagesize %(pagesize)d in %(avail_pagesize)s\","},{"line_number":631,"context_line":"                  {\"pagesize\": inst_cell.pagesize,"},{"line_number":632,"context_line":"                   \"avail_pagesize\": avail_pagesize})"},{"line_number":633,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_061557e3","line":630,"updated":"2015-07-15 16:20:15.000000000","message":"Not sure this debug is useful as it is. Perhaps it should be interesting to set the host cell id.\n\nAlso something like \"Requested page %(pagesize)s for host cell %(cell_id)s is not supported, supported size: %(supported_sizes)s\".","commit_id":"e7c1c6e9a95ebab3739b823eeeb7c672d50bda16"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"63fa3598285a5e9c79b7b3ca712a75279608a08c","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        # Host cell will raise exception when no fit hugepages"},{"line_number":628,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":629,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":630,"context_line":"        LOG.debug(\"Can\u0027t find pagesize %(pagesize)d in %(avail_pagesize)s\","},{"line_number":631,"context_line":"                  {\"pagesize\": inst_cell.pagesize,"},{"line_number":632,"context_line":"                   \"avail_pagesize\": avail_pagesize})"},{"line_number":633,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_566be984","line":630,"in_reply_to":"9a41bdd9_061557e3","updated":"2015-07-16 09:15:13.000000000","message":"I found in line 1022:\n\nfor host_cell_perm in itertools.permutations(\n                host_topology.cells, len(instance_topology)):\n\nFilter will build permutation of host and instance numa topology\nTherefore we shouldn\u0027t log not found message here.","commit_id":"e7c1c6e9a95ebab3739b823eeeb7c672d50bda16"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ee6078c03538f3409248d13083b2074343fb127d","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    elif inst_cell.pagesize \u003d\u003d MEMPAGES_LARGE:"},{"line_number":622,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize[:-1])"},{"line_number":623,"context_line":"    elif inst_cell.pagesize \u003d\u003d MEMPAGES_ANY:"},{"line_number":624,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    try:"},{"line_number":627,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_149cc25b","line":624,"updated":"2015-08-20 11:18:07.000000000","message":"I do wonder if any of the above can still hit the exception.MemoryPageSizeNotSupported exception though, when resources start to run out? maybe I am miss understanding things.","commit_id":"9168800e03f2ae80b93277fdce4f0352b9b8f18f"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"bc29c74063a673f4ab5faf08290a0ca7adf45644","unresolved":false,"context_lines":[{"line_number":621,"context_line":"    elif inst_cell.pagesize \u003d\u003d MEMPAGES_LARGE:"},{"line_number":622,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize[:-1])"},{"line_number":623,"context_line":"    elif inst_cell.pagesize \u003d\u003d MEMPAGES_ANY:"},{"line_number":624,"context_line":"        return verify_pagesizes(host_cell, inst_cell, avail_pagesize)"},{"line_number":625,"context_line":""},{"line_number":626,"context_line":"    try:"},{"line_number":627,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_ae94688a","line":624,"in_reply_to":"fa1b9901_149cc25b","updated":"2015-08-21 09:40:11.000000000","message":"function can_fit_hugepages at L616 will try to find adaptive hugepages for request memory page.\nIf there are no same memory page with request memory page in host, it will raise exception.\nYou can check L609. \nRequest memory page may be one of host\u0027s memory page. Therefore first three condition may not throw exception.","commit_id":"9168800e03f2ae80b93277fdce4f0352b9b8f18f"},{"author":{"_account_id":14358,"name":"Marian Horban","email":"m.horban@gmail.com","username":"mhorban"},"change_message_id":"fb6956b22dfd138c7f33ecc76262508ebbf9b422","unresolved":false,"context_lines":[{"line_number":626,"context_line":"    try:"},{"line_number":627,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":628,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":629,"context_line":"        pass"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_bc9d7f0b","line":629,"updated":"2015-08-21 11:21:04.000000000","message":"I think it could be better to return 0 here","commit_id":"9168800e03f2ae80b93277fdce4f0352b9b8f18f"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"8034e019aec79f5b62ed4026beb7f06688d23416","unresolved":false,"context_lines":[{"line_number":626,"context_line":"    try:"},{"line_number":627,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":628,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":629,"context_line":"        pass"},{"line_number":630,"context_line":""},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa1b9901_b19ecb61","line":629,"in_reply_to":"fa1b9901_bc9d7f0b","updated":"2015-08-24 01:19:04.000000000","message":"Done","commit_id":"9168800e03f2ae80b93277fdce4f0352b9b8f18f"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"ce1d898cb4aa0ea1a6283315aa12946f026f9990","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa1b9901_c8ccdb63","line":652,"updated":"2015-08-24 12:44:19.000000000","message":"I don\u0027t think you should be changing this. The commit description is talking about the NUMA schedular filter code not handling the exception, so I think you should be changing the caller of this method to deal with the exception, not ignoring the exception here.","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"aa449b1678731f884b67a6e752cd1dd5d912c197","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_e6e1e2d1","line":652,"in_reply_to":"da20952f_0d93d8a4","updated":"2015-09-02 09:46:07.000000000","message":"If we look algorithm it seems that, this method return true/false whether hostcell supports pagesize and have or not enough pages available or raise exeption.\n\nhttp://git.openstack.org/cgit/openstack/nova/tree/nova/objects/numa.py#n122","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7196d9d7c1400e0ffc981c96bebe8171a5297e6e","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_920949e0","line":652,"in_reply_to":"da20952f_4498d46a","updated":"2015-09-02 07:34:39.000000000","message":"No, we do not want this method be called more than one time if host cell does not support pagesize - It\u0027s different than host cell does not have enough pages available to handle pagesize.\n\nif a host cell does not support a pagesize so all cells of host will not support that pagesize. That check should be on NUMATopologyFilter to pass host is this exception is raised.","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"6ff3b4b674a95cd8d30c00dcb8261ba39ddfc3fc","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_4498d46a","line":652,"in_reply_to":"da20952f_566bc585","updated":"2015-09-02 03:54:02.000000000","message":"This function _numa_cell_supports_pagesize_request will been called multiple times due to permutations of host cells. If we report error each time pagesize fit failed, users will get lots of error log. Besides numa will fit failed with cpu pinning or others. Those should have same work. Therefore we should summarized each permutations of host cells which case it fit fail. But it should be done in other patch.","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"f88a8ef3c6b18cbc6e12f1bf525a60a7021952d9","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_0d93d8a4","line":652,"in_reply_to":"da20952f_920949e0","updated":"2015-09-02 07:57:53.000000000","message":"Oh!!I know your meaning. But this exception is not mean host does not support pagesize. It was raised when instance\u0027s pagesize don\u0027t have equal memory pages in host.","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"fe9f580cf1076c1935a3599c0b45583b03bdc712","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_566bc585","line":652,"in_reply_to":"da20952f_d6fcd973","updated":"2015-09-01 17:12:53.000000000","message":"If user set specific and bad pagesize that method is not attended to ignore error reported. I\u0027m agree with Daniel.","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"824a754cbb5e0b20834020d6d19c5c826dc5790b","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_d6fcd973","line":652,"in_reply_to":"fa1b9901_64c81623","updated":"2015-09-01 05:10:49.000000000","message":"This exception is raised from host_cell.can_fit_hugepages, so we already handle it in the caller.\n\nAnd the caller of _numa_cell_supports_pagesize_request expect it return None or fitted pagesize. \u0027None\u0027 means the cell can\u0027t support such request. The exception \u0027MemoryPageSizeNotSupported\u0027 is also the case of cell can\u0027t support such request, so return None match the contract.\n\n@Daniel, what would you think?","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"00beaca4f666c9177b5585afcad3e5ea3aae5a53","unresolved":false,"context_lines":[{"line_number":649,"context_line":"    try:"},{"line_number":650,"context_line":"        return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])"},{"line_number":651,"context_line":"    except exception.MemoryPageSizeNotSupported:"},{"line_number":652,"context_line":"        return None"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":""},{"line_number":655,"context_line":"def _pack_instance_onto_cores(available_siblings, instance_cell, host_cell_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa1b9901_64c81623","line":652,"in_reply_to":"fa1b9901_c8ccdb63","updated":"2015-08-25 15:23:44.000000000","message":"IMO, it is not need to handle at caller. This exception may only be raised in this line.","commit_id":"eff00a5b4b8c7b0548697b05ab3d750998ba6a8b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"55413ebd15812e4fcaf542ca109fa840dfaa472e","unresolved":false,"context_lines":[{"line_number":1096,"context_line":"                try:"},{"line_number":1097,"context_line":"                    got_cell \u003d _numa_fit_instance_cell("},{"line_number":1098,"context_line":"                        host_cell, instance_cell, limits)"},{"line_number":1099,"context_line":"                except exception.MemoryPageSizeNotSupported:"},{"line_number":1100,"context_line":"                    break"},{"line_number":1101,"context_line":"                if got_cell is None:"},{"line_number":1102,"context_line":"                    break"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a740942_576a6282","line":1099,"updated":"2015-12-09 00:04:44.000000000","message":"It would be nice to have a note here why we have to do this. The exception is buried in the object code and from earlier comments I saw we can\u0027t try-catch at the object can_fit_hugepages call because we want _numa_cell_supports_pagesize_request to raise for other (non-scheduling) callers? I guess the rationale is we want to know be able to know the difference between \"can\u0027t fit\" and \"not supported.\"","commit_id":"7e235b1cd3a86c373f94bd498e9690a662c05763"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"225ca62e4fb49faa3d72f35e2c02a344964347e0","unresolved":false,"context_lines":[{"line_number":637,"context_line":"    :param host_cell: host cell to fit the instance cell onto"},{"line_number":638,"context_line":"    :param inst_cell: instance cell we want to fit"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    exception.MemoryPageSizeNotSupported will be raised"},{"line_number":641,"context_line":"    if custom page size not supported in host cell"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    :returns: The page size able to be handled by host_cell"},{"line_number":644,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_6785a905","line":641,"range":{"start_line":640,"start_character":4,"end_line":641,"end_character":50},"updated":"2015-12-10 23:23:40.000000000","message":"Thanks for adding this.\n\nCould you please use the :raises directive here?\n\n :raises exception.MemoryPageSizeNotSupported: if custom page size not supported in host cell","commit_id":"05dd71b388e6db2d5b54ef58aa3f5283735cc0a9"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"259c27fe094bff045d1e27a4c81a74fc0a415baf","unresolved":false,"context_lines":[{"line_number":638,"context_line":"    :param inst_cell: instance cell we want to fit"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    exception.MemoryPageSizeNotSupported will be raised"},{"line_number":641,"context_line":"    if custom page size not supported in host cell"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    :returns: The page size able to be handled by host_cell"},{"line_number":644,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_ee908250","line":641,"in_reply_to":"7a740942_6785a905","updated":"2015-12-11 09:37:51.000000000","message":"It is done. But I\u0027m referencing to other exception comments in same file. Do those exception comments need to been modified in other patch?","commit_id":"05dd71b388e6db2d5b54ef58aa3f5283735cc0a9"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"319d5772a712787a6070959130bcaf43fd540de9","unresolved":false,"context_lines":[{"line_number":638,"context_line":"    :param inst_cell: instance cell we want to fit"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    exception.MemoryPageSizeNotSupported will be raised"},{"line_number":641,"context_line":"    if custom page size not supported in host cell"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    :returns: The page size able to be handled by host_cell"},{"line_number":644,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a740942_ec7f0ede","line":641,"in_reply_to":"7a740942_ee908250","updated":"2015-12-11 18:33:16.000000000","message":"Oh, sorry about that. It looks like because this method is private we don\u0027t get to see the nice markup anyway:\n\nhttp://docs-draft.openstack.org/30/200630/12/check/gate-nova-docs/1b2c5e4//doc/build/html/api/nova.virt.hardware.html#module-nova.virt.hardware\n\nThe existing docstrings don\u0027t need to be changed. I noticed one isn\u0027t using :raises: and another is, but they\u0027re all private methods","commit_id":"05dd71b388e6db2d5b54ef58aa3f5283735cc0a9"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c0f08c56031f700aed9c426d11da18e6ec63b184","unresolved":false,"context_lines":[{"line_number":637,"context_line":"    :param host_cell: host cell to fit the instance cell onto"},{"line_number":638,"context_line":"    :param inst_cell: instance cell we want to fit"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    :raises: exception.MemoryPageSizeNotSupported if custom page"},{"line_number":641,"context_line":"             size not supported in host cell."},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    :returns: The page size able to be handled by host_cell"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_e9f4fccf","line":640,"updated":"2015-12-11 09:55:00.000000000","message":"No, no this tag is to indicate that an exception MemoryPageSizeNotSupported can be raised from this method. This method will not raise any expected exception since you catch it.","commit_id":"f6c62d03674fb6805a0e8d3231291b7b4ac12721"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"43ded429e8873738b32acd98663aec720e588c42","unresolved":false,"context_lines":[{"line_number":637,"context_line":"    :param host_cell: host cell to fit the instance cell onto"},{"line_number":638,"context_line":"    :param inst_cell: instance cell we want to fit"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    :raises: exception.MemoryPageSizeNotSupported if custom page"},{"line_number":641,"context_line":"             size not supported in host cell."},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    :returns: The page size able to be handled by host_cell"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_4523a958","line":640,"in_reply_to":"7a740942_2970c4db","updated":"2015-12-11 13:15:54.000000000","message":"Arf, my mistake seems to be reasonable to have this tag here.","commit_id":"f6c62d03674fb6805a0e8d3231291b7b4ac12721"},{"author":{"_account_id":14447,"name":"lyanchih","email":"lyan.h@inwinstack.com","username":"lyanchih"},"change_message_id":"90188fd15f94d419984190a3d6f9a0661e3987a5","unresolved":false,"context_lines":[{"line_number":637,"context_line":"    :param host_cell: host cell to fit the instance cell onto"},{"line_number":638,"context_line":"    :param inst_cell: instance cell we want to fit"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    :raises: exception.MemoryPageSizeNotSupported if custom page"},{"line_number":641,"context_line":"             size not supported in host cell."},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"    :returns: The page size able to be handled by host_cell"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_2970c4db","line":640,"in_reply_to":"7a740942_e9f4fccf","updated":"2015-12-11 10:06:46.000000000","message":"This exception didn\u0027t been catch in this function. Did you misunderstand because of review\u0027s skip lines?","commit_id":"f6c62d03674fb6805a0e8d3231291b7b4ac12721"}]}
