)]}'
{"nova/virt/hardware.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f699dd1faf627d65b6595f3beac830497ddcaf48","unresolved":false,"context_lines":[{"line_number":688,"context_line":"    placement."},{"line_number":689,"context_line":"    \"\"\""},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"    LOG.debug(\u0027Packing: \u0027"},{"line_number":692,"context_line":"             \u0027    available_siblings: %s\u0027"},{"line_number":693,"context_line":"             \u0027    instance_cell: %s\u0027"},{"line_number":694,"context_line":"             \u0027    host_cell_id: %s\u0027"},{"line_number":695,"context_line":"             \u0027    threads_per_core: %s\u0027 % (available_siblings,"},{"line_number":696,"context_line":"                                           instance_cell, host_cell_id,"},{"line_number":697,"context_line":"                                           threads_per_core))"},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"    # We build up a data structure that answers the question: \u0027Given the"},{"line_number":700,"context_line":"    # number of threads I want to pack, give me a list of all the available"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_310d2b38","line":697,"range":{"start_line":691,"start_character":0,"end_line":697,"end_character":61},"updated":"2016-08-09 13:18:33.000000000","message":"This is helpful, but it belongs in a separate commit message","commit_id":"5dc4d63755b8aac78dc1fd8f4bc3545c1a187b5c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f699dd1faf627d65b6595f3beac830497ddcaf48","unresolved":false,"context_lines":[{"line_number":703,"context_line":"    for sib in available_siblings:"},{"line_number":704,"context_line":"        for threads_no in range(1, len(sib) + 1):"},{"line_number":705,"context_line":"            sibling_sets[threads_no].append(sib)"},{"line_number":706,"context_line":"    LOG.debug(\u0027Built sibling_sets: %s\u0027 % sibling_sets)"},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"    pinning \u003d None"},{"line_number":709,"context_line":"    threads_no \u003d 1"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_710fa32e","line":706,"range":{"start_line":706,"start_character":0,"end_line":706,"end_character":54},"updated":"2016-08-09 13:18:33.000000000","message":"ditto","commit_id":"5dc4d63755b8aac78dc1fd8f4bc3545c1a187b5c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f699dd1faf627d65b6595f3beac830497ddcaf48","unresolved":false,"context_lines":[{"line_number":756,"context_line":"        # If policy is prefer, we\u0027re allowed to place a vCPU on an orphaned"},{"line_number":757,"context_line":"        # thread, therefore the below logic doesn\u0027t apply with threads_no is 1"},{"line_number":758,"context_line":"        # and policy is prefer."},{"line_number":759,"context_line":"        if (instance_cell.cpu_thread_policy in (None,"},{"line_number":760,"context_line":"                fields.CPUThreadAllocationPolicy.PREFER)):"},{"line_number":761,"context_line":"            usable_cores \u003d sorted(sibling_set, reverse\u003dTrue)"},{"line_number":762,"context_line":"            if sum(map(len, usable_cores)) \u003c len(instance_cores):"},{"line_number":763,"context_line":"                return"},{"line_number":764,"context_line":"        else:"},{"line_number":765,"context_line":"            if threads_no * len(sibling_set) \u003c len(instance_cores):"},{"line_number":766,"context_line":"                return"},{"line_number":767,"context_line":"            usable_cores \u003d map(lambda s: list(s)[:threads_no], sibling_set)"},{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        LOG.debug(\u0027Usable cores: %s\u0027 % usable_cores)"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"        pinning \u003d zip(sorted(instance_cores),"},{"line_number":772,"context_line":"                      itertools.chain(*usable_cores))"},{"line_number":773,"context_line":"        LOG.debug(\u0027Found pinning %s\u0027 % pinning)"},{"line_number":774,"context_line":"        return pinning"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"    if (instance_cell.cpu_thread_policy \u003d\u003d"},{"line_number":777,"context_line":"            fields.CPUThreadAllocationPolicy.REQUIRE):"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_719fa350","line":774,"range":{"start_line":759,"start_character":0,"end_line":774,"end_character":22},"updated":"2016-08-09 13:18:33.000000000","message":"I don\u0027t think this should be modified - instead, the main block of code below should be changed and this block kept nice and simple. The fact that variables from the outer scope are being used here (e.g. instance_cell) is an indicator of this, IMO.","commit_id":"5dc4d63755b8aac78dc1fd8f4bc3545c1a187b5c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f699dd1faf627d65b6595f3beac830497ddcaf48","unresolved":false,"context_lines":[{"line_number":807,"context_line":"        # instances among physical cores"},{"line_number":808,"context_line":"        for threads_no, sibling_set in sorted("},{"line_number":809,"context_line":"                (t for t in sibling_sets.items()), reverse\u003dTrue):"},{"line_number":810,"context_line":"            LOG.debug(\u0027Trying: \u0027"},{"line_number":811,"context_line":"                     \u0027    threads_no: %s\u0027"},{"line_number":812,"context_line":"                     \u0027    sibling_set: %s\u0027 % (threads_no, sibling_sets))"},{"line_number":813,"context_line":""},{"line_number":814,"context_line":"            # NOTE(sfinucan): The key difference between the require and"},{"line_number":815,"context_line":"            # prefer policies is that require will not settle for non-siblings"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_b1c0fb2b","line":812,"range":{"start_line":810,"start_character":0,"end_line":812,"end_character":72},"updated":"2016-08-09 13:18:33.000000000","message":"Same for all of these. Can we make a new commit with these helpful messages?","commit_id":"5dc4d63755b8aac78dc1fd8f4bc3545c1a187b5c"}]}
