)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"40d4acd150beb91d39c144e93747edd0f67a753a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch fixes two problems:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"1. \u0027require\u0027 CPU allocation thread policy is guarantee"},{"line_number":12,"context_line":"that no vCPUs from other guests wouldn\u0027t be able to be"},{"line_number":13,"context_line":"placed on the cores of booted VM (In this case core is"},{"line_number":14,"context_line":"a set of sibling vCPUs)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"But we still able to boot VMs with \u0027dedicated\u0027 CPU"},{"line_number":17,"context_line":"allocation policy on these cores."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a629dbe_77303e02","line":14,"range":{"start_line":11,"start_character":3,"end_line":14,"end_character":24},"updated":"2016-11-08 18:20:37.000000000","message":"I disagree.  \u0027require\u0027 simply means \"I want my instance cores to be placed on hyperthread siblings.\"  There is nothing described at http://docs.openstack.org/admin-guide/compute-flavors.html about preventing other instances from running on any leftover siblings. (And really, \"require\" only makes sense if the number of vCPUs in your flavor is a multiple of the number of threads per core, in which case there will be no \"leftover\" siblings.)","commit_id":"6fff42fd8c5723bb5fc4117e40740a24711e9067"}],"nova/tests/unit/objects/test_numa.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"c9b50684025967b99b9474af15d3198a67ed8a52","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.assertRaises(exception.CPUPinningInvalid,"},{"line_number":142,"context_line":"                          numacell.pin_cpus_with_siblings,"},{"line_number":143,"context_line":"                          set([2]))"},{"line_number":144,"context_line":"        self.assertEqual(set([1, 3, 4]), numacell.free_cpus)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_pages_topology_wipe(self):"},{"line_number":147,"context_line":"        pages_topology \u003d objects.NUMAPagesTopology("}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_3c8f6024","line":144,"updated":"2016-12-09 16:57:43.000000000","message":"just wondering why you\u0027re checking free_cpus again...is this to make sure it didn\u0027t get changed by the two exception cases?","commit_id":"c3f6f717b4949e46b31a10a250c00674beeca29e"},{"author":{"_account_id":9569,"name":"Sergey Nikitin","email":"nikitinserv@gmail.com","username":"snikitin"},"change_message_id":"7720519cd8990d74d1e2631ffa35ec7a1e767a71","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.assertRaises(exception.CPUPinningInvalid,"},{"line_number":142,"context_line":"                          numacell.pin_cpus_with_siblings,"},{"line_number":143,"context_line":"                          set([2]))"},{"line_number":144,"context_line":"        self.assertEqual(set([1, 3, 4]), numacell.free_cpus)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_pages_topology_wipe(self):"},{"line_number":147,"context_line":"        pages_topology \u003d objects.NUMAPagesTopology("}],"source_content_type":"text/x-python","patch_set":6,"id":"1a6eadb0_1ae59d36","line":144,"in_reply_to":"3a71b18c_3c8f6024","updated":"2016-12-13 07:23:54.000000000","message":"you are right. here should be \u0027pinned_cpu\u0027","commit_id":"c3f6f717b4949e46b31a10a250c00674beeca29e"}],"nova/virt/hardware.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"40d4acd150beb91d39c144e93747edd0f67a753a","unresolved":false,"context_lines":[{"line_number":1428,"context_line":"                            memory_usage + sign * instancecell.memory)"},{"line_number":1429,"context_line":"                    cpu_usage_diff \u003d len(instancecell.cpuset)"},{"line_number":1430,"context_line":""},{"line_number":1431,"context_line":"                    # NOTE(snikitin): \u0027require\u0027 or \u0027isolate\u0027 CPU allocation"},{"line_number":1432,"context_line":"                    # thread policy makes us to mark each CPU in sibling group"},{"line_number":1433,"context_line":"                    # as \u0027used\u0027 if even one of them is really used by VM."},{"line_number":1434,"context_line":"                    # We have to do it to guarantee that no other VM with any"},{"line_number":1435,"context_line":"                    # CPU policy/CPU thread policy wouldn\u0027t use these sibling"},{"line_number":1436,"context_line":"                    # CPUs."}],"source_content_type":"text/x-python","patch_set":3,"id":"9a629dbe_bad39b37","line":1433,"range":{"start_line":1431,"start_character":33,"end_line":1433,"end_character":73},"updated":"2016-11-08 18:20:37.000000000","message":"I do not believe that this is true for \u0027require\u0027.  See my other comment for rationale.","commit_id":"6fff42fd8c5723bb5fc4117e40740a24711e9067"}]}
