)]}'
{"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"35075f7e0a0862172e1d2ebd697ceb3fb70090f5","unresolved":false,"context_lines":[{"line_number":1605,"context_line":"            utils.convert_version_to_int("},{"line_number":1606,"context_line":"                libvirt_driver.MIN_QEMU_NUMA_HUGEPAGE_VERSION),"},{"line_number":1607,"context_line":"            host.HV_DRIVER_QEMU,"},{"line_number":1608,"context_line":"            arch.S390,"},{"line_number":1609,"context_line":"            exception.NUMATopologyUnsupported,"},{"line_number":1610,"context_line":"            None)"},{"line_number":1611,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_4d49e330","line":1608,"updated":"2015-11-17 04:08:21.000000000","message":"This looks like an unrelated change.  Your commit message or bug doesn\u0027t give detail on why S390 is now unsupported.","commit_id":"c3f8302f605920d0188c88af463d379e251e6abf"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"e17a92535a4b0e4ef1b6af0d6ea5925cd624220a","unresolved":false,"context_lines":[{"line_number":1605,"context_line":"            utils.convert_version_to_int("},{"line_number":1606,"context_line":"                libvirt_driver.MIN_QEMU_NUMA_HUGEPAGE_VERSION),"},{"line_number":1607,"context_line":"            host.HV_DRIVER_QEMU,"},{"line_number":1608,"context_line":"            arch.S390,"},{"line_number":1609,"context_line":"            exception.NUMATopologyUnsupported,"},{"line_number":1610,"context_line":"            None)"},{"line_number":1611,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_7857c302","line":1608,"in_reply_to":"ba8a016a_4d49e330","updated":"2015-11-17 04:45:19.000000000","message":"True. I thought having the PPC64 there before was arbitrary. \nHence, I made a arbitrary choice for the architecture here that is not a part of the included list of archs that support NUMA. Can you suggest what I should do now to retain this unit test?","commit_id":"c3f8302f605920d0188c88af463d379e251e6abf"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"94e0702de546762cdece0537049c2998040235a8","unresolved":false,"context_lines":[{"line_number":1614,"context_line":""},{"line_number":1615,"context_line":"        self._test_get_guest_config_numa_unsupported("},{"line_number":1616,"context_line":"            utils.convert_version_to_int("},{"line_number":1617,"context_line":"                libvirt_driver.MIN_LIBVIRT_NUMA_VERSION),"},{"line_number":1618,"context_line":"            utils.convert_version_to_int("},{"line_number":1619,"context_line":"                libvirt_driver.MIN_QEMU_NUMA_HUGEPAGE_VERSION),"},{"line_number":1620,"context_line":"            host.HV_DRIVER_QEMU,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a740942_f1cd7731","line":1617,"updated":"2015-12-08 15:01:18.000000000","message":"might be clearer to test \tMIN_LIBVIRT_NUMA_VERSION_PPC-1","commit_id":"c1af920abf2c1886be3ae0a6495160dce7bd0d68"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"77bbd172a070c772a07b94fc62db6aadb6638da8","unresolved":false,"context_lines":[{"line_number":4879,"context_line":""},{"line_number":4880,"context_line":"        return jsonutils.dumps(pci_info)"},{"line_number":4881,"context_line":""},{"line_number":4882,"context_line":"    def _has_numa_support(self):"},{"line_number":4883,"context_line":"        # This means that the host can support LibvirtConfigGuestNUMATune"},{"line_number":4884,"context_line":"        # and the nodeset field in LibvirtConfigGuestMemoryBackingPage"},{"line_number":4885,"context_line":"        for ver in BAD_LIBVIRT_NUMA_VERSIONS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_ecf07993","line":4882,"range":{"start_line":4882,"start_character":4,"end_line":4882,"end_character":32},"updated":"2015-11-18 16:27:18.000000000","message":"So this method allows for both NUMA cell affinity and dedicated CPU pinning. As I understand from some IRC convos, the CPU pinning does not quite work as expected with Power since libvirt will report less cores than are actually available.\n\nCould you comment on this a bit.\n\nIf there is no proper support for CPU pinning for Power, then with the current implementation this would affect NUMA cell pinning to (since we just pin to a set of all CPUs of a cell which may be wrong for Power).\n\nWe\u0027d basically be enabling a feature that we know is broken if my understanding above is correct. Why would we want to do this?","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"b7b14ac2225939d9f6dd737f8653018f7b12603f","unresolved":false,"context_lines":[{"line_number":4879,"context_line":""},{"line_number":4880,"context_line":"        return jsonutils.dumps(pci_info)"},{"line_number":4881,"context_line":""},{"line_number":4882,"context_line":"    def _has_numa_support(self):"},{"line_number":4883,"context_line":"        # This means that the host can support LibvirtConfigGuestNUMATune"},{"line_number":4884,"context_line":"        # and the nodeset field in LibvirtConfigGuestMemoryBackingPage"},{"line_number":4885,"context_line":"        for ver in BAD_LIBVIRT_NUMA_VERSIONS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b4a338ff","line":4882,"in_reply_to":"9a8ffd7b_4624d4c3","updated":"2015-11-30 09:55:48.000000000","message":"Done","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"a7679d061701dd9a70b10d8f09447021e0b6a31a","unresolved":false,"context_lines":[{"line_number":4879,"context_line":""},{"line_number":4880,"context_line":"        return jsonutils.dumps(pci_info)"},{"line_number":4881,"context_line":""},{"line_number":4882,"context_line":"    def _has_numa_support(self):"},{"line_number":4883,"context_line":"        # This means that the host can support LibvirtConfigGuestNUMATune"},{"line_number":4884,"context_line":"        # and the nodeset field in LibvirtConfigGuestMemoryBackingPage"},{"line_number":4885,"context_line":"        for ver in BAD_LIBVIRT_NUMA_VERSIONS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_4624d4c3","line":4882,"in_reply_to":"ba8a016a_ae0b1023","updated":"2015-11-27 15:05:30.000000000","message":"Thanks for the explanation - yeah it is clear - would still probably deserve at least a releasenote (not sure a code comment would make sense here)","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"9de405181c5518b94521b0f3c5e906ee0f1d1c41","unresolved":false,"context_lines":[{"line_number":4879,"context_line":""},{"line_number":4880,"context_line":"        return jsonutils.dumps(pci_info)"},{"line_number":4881,"context_line":""},{"line_number":4882,"context_line":"    def _has_numa_support(self):"},{"line_number":4883,"context_line":"        # This means that the host can support LibvirtConfigGuestNUMATune"},{"line_number":4884,"context_line":"        # and the nodeset field in LibvirtConfigGuestMemoryBackingPage"},{"line_number":4885,"context_line":"        for ver in BAD_LIBVIRT_NUMA_VERSIONS:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_ae0b1023","line":4882,"in_reply_to":"ba8a016a_ecf07993","updated":"2015-11-19 14:18:15.000000000","message":"Hi Nikola,\n\nThanks for remembering our IRC convos.\nLet me attempt an explanation here. Power has Fat cores. It can support upto 8 simultaneous threads to execute at once on a given core. AFAIK, openstack is presently using thread based scheduling - that is - we schedule all vcpus on pcpus which are essentially processor threads and are exposed via libvirt. However, power uses core based scheduling which means, the operating system has visibility only to the cores and not the threads.\n\nThe host scheduling of the guests happen at the core level(as only primary\nthread is online). The kvm scheduler exploits as many threads of the core\nas needed by guest. The KVM-PPC scheduler allows guests to exploit all the offline threads, by bringing them online when needed.\n(Kernel patches on split-core http://www.spinics.net/lists/kvm-ppc/msg09121.html)\n\nHowever, the admin can subdivide a core into sub-cores upto the level of each core having 2 physical threads. \n\nSo, In a socket with 5 physical cores we would be able to  utilize a maximum of 5 (number of cores in the socket)*4 (number of sub-cores) \u003d 20 pcpus as opposed to 40 with the current implementation in Openstack without specifying the guest topology by default. This is the problem I wanted to solve.\n\nThe net is, NUMA affinity/cpu pinning are sub-optimal on power at the moment with the present implementation in openstack when we don\u0027t specify the guest topology explicitly but it is definitely not broken.\n\nI hope this explains. Thanks. Sudipto","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"7ce3cf3a6e111a0f30a597ad816fe111f8ae505e","unresolved":false,"context_lines":[{"line_number":4898,"context_line":""},{"line_number":4899,"context_line":"        return ((caps.host.cpu.arch in supported_archs) and"},{"line_number":4900,"context_line":"                self._host.has_min_version(MIN_LIBVIRT_NUMA_VERSION,"},{"line_number":4901,"context_line":"                                           MIN_QEMU_NUMA_HUGEPAGE_VERSION,"},{"line_number":4902,"context_line":"                                           host.HV_DRIVER_QEMU))"},{"line_number":4903,"context_line":""},{"line_number":4904,"context_line":"    def _has_hugepage_support(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_f8c6f766","line":4901,"updated":"2015-11-18 15:21:01.000000000","message":"Are MIN_LIBVIRT_NUMA_VERSION and MIN_QEMU_NUMA_HUGEPAGE_VERSION still accurate for ppc64?","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"9de405181c5518b94521b0f3c5e906ee0f1d1c41","unresolved":false,"context_lines":[{"line_number":4898,"context_line":""},{"line_number":4899,"context_line":"        return ((caps.host.cpu.arch in supported_archs) and"},{"line_number":4900,"context_line":"                self._host.has_min_version(MIN_LIBVIRT_NUMA_VERSION,"},{"line_number":4901,"context_line":"                                           MIN_QEMU_NUMA_HUGEPAGE_VERSION,"},{"line_number":4902,"context_line":"                                           host.HV_DRIVER_QEMU))"},{"line_number":4903,"context_line":""},{"line_number":4904,"context_line":"    def _has_hugepage_support(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_6e40c834","line":4901,"in_reply_to":"ba8a016a_8cb3ede8","updated":"2015-11-19 14:18:15.000000000","message":"Yeah libvirt \u003e  MIN_LIBVIRT_NUMA_VERSION and QEMU \u003e MIN_QEMU_NUMA_HUGEPAGE_VERSION is definitely supported on Power.","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":14131,"name":"shaohef","email":"shaohe.feng@intel.com","username":"shaohefeng"},"change_message_id":"eea00e3ec86d4cabd5327cd7d922e9a6eb9e2dc9","unresolved":false,"context_lines":[{"line_number":4898,"context_line":""},{"line_number":4899,"context_line":"        return ((caps.host.cpu.arch in supported_archs) and"},{"line_number":4900,"context_line":"                self._host.has_min_version(MIN_LIBVIRT_NUMA_VERSION,"},{"line_number":4901,"context_line":"                                           MIN_QEMU_NUMA_HUGEPAGE_VERSION,"},{"line_number":4902,"context_line":"                                           host.HV_DRIVER_QEMU))"},{"line_number":4903,"context_line":""},{"line_number":4904,"context_line":"    def _has_hugepage_support(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba8a016a_8cb3ede8","line":4901,"in_reply_to":"ba8a016a_f8c6f766","updated":"2015-11-18 16:24:52.000000000","message":"Yes. need to check the  NUMA　support　version.","commit_id":"360a8613c5b5948b446b743728c8bcddeef1fadc"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"7e8178dba44c2305a9c386d1ab4c8e7c514cfa85","unresolved":false,"context_lines":[{"line_number":4919,"context_line":"                           arch.PPC64LE): MIN_LIBVIRT_NUMA_VERSION_PPC}"},{"line_number":4920,"context_line":"        caps \u003d self._host.get_capabilities()"},{"line_number":4921,"context_line":"        is_supported \u003d False"},{"line_number":4922,"context_line":"        for archs, libvirt_ver in support_matrix.iteritems():"},{"line_number":4923,"context_line":"            if ((caps.host.cpu.arch in archs) and"},{"line_number":4924,"context_line":"                    self._host.has_min_version(libvirt_ver,"},{"line_number":4925,"context_line":"                                               MIN_QEMU_NUMA_HUGEPAGE_VERSION,"}],"source_content_type":"text/x-python","patch_set":20,"id":"7af24918_58e74ce4","line":4922,"updated":"2016-03-01 17:37:59.000000000","message":"ugg, new six hacking rule","commit_id":"b65e25b5f837b15c55774c30a54f6e1385d19afd"}],"releasenotes/notes/1516578-628b417b372f4f0f.yaml":[{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"2cdd6d630c7805e0efaf78f6b2f8958ea3c46b4f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This fix enables NUMA support on PowerPC architecture"},{"line_number":5,"context_line":"    for hosts that support the Libvirt driver. The Openstack"},{"line_number":6,"context_line":"    NUMA cell affinity and dedicated cpu pinning"},{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a8ffd7b_ac8e5125","line":4,"updated":"2015-12-01 10:00:42.000000000","message":"Check the generated page:\nhttp://docs-draft.openstack.org/65/245765/7/check/gate-nova-releasenotes/085659d//releasenotes/build/html/unreleased.html#id1\n\n\nThis does not work.\n\nYou need to write something like:\n\nEnabled ...\n\nThis fixed bug #1234...\n\nAnd if you say \"This fix\", it\u0027s not a feature, isn\u0027t it?","commit_id":"b31848c1a222ea983e51620a0757194ced6ddf54"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"84135db5e2764ec66dec7e6d973af02f9a4cbd65","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This fix enables NUMA support on PowerPC architecture"},{"line_number":5,"context_line":"    for hosts that support the Libvirt driver. The Openstack"},{"line_number":6,"context_line":"    NUMA cell affinity and dedicated cpu pinning"},{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a8ffd7b_0cc19d2e","line":4,"in_reply_to":"9a8ffd7b_ac8e5125","updated":"2015-12-01 10:02:08.000000000","message":"Yeah, this totally sounds like a feature (should have a blueprint really). I would go for:\n\nAdded NUMA support on...","commit_id":"b31848c1a222ea983e51620a0757194ced6ddf54"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"13bea556bb6faba90d891bb0ea8a82ef7451e045","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Enables NUMA support on PowerPC architecture"},{"line_number":5,"context_line":"    for hosts that support the Libvirt driver. The Openstack"},{"line_number":6,"context_line":"    NUMA cell affinity and dedicated cpu pinning"},{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."},{"line_number":8,"context_line":"    PowerPC based hosts use core based scheduling for processes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9a8ffd7b_4b8222ca","line":5,"updated":"2015-12-01 12:34:14.000000000","message":"Convention: Openstack -\u003e OpenStack","commit_id":"6771ad0142ac8a51febf3776a7117239aba48182"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"dcc22d20ffeb64fce95d514e150dd49b7f56a222","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Enables NUMA support on PowerPC architecture"},{"line_number":5,"context_line":"    for hosts that support the Libvirt driver. The Openstack"},{"line_number":6,"context_line":"    NUMA cell affinity and dedicated cpu pinning"},{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."},{"line_number":8,"context_line":"    PowerPC based hosts use core based scheduling for processes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9a8ffd7b_0d18ad83","line":5,"range":{"start_line":4,"start_character":4,"end_line":5,"end_character":46},"updated":"2015-12-01 13:18:51.000000000","message":"Rest of the text should really be phrased as a (big?) caveat to the first line - this way it\u0027s unclear if it\u0027s just some implementation details. It should read as \"PPC supported BUT!\"\n\nAlso \"Enables NUMA support\" is too vague to be useful - this is related to the libvirt driver specifically and the fact that it will now start reporting NUMA topology","commit_id":"6771ad0142ac8a51febf3776a7117239aba48182"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"dcc22d20ffeb64fce95d514e150dd49b7f56a222","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Enables NUMA support on PowerPC architecture"},{"line_number":5,"context_line":"    for hosts that support the Libvirt driver. The Openstack"},{"line_number":6,"context_line":"    NUMA cell affinity and dedicated cpu pinning"},{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."},{"line_number":8,"context_line":"    PowerPC based hosts use core based scheduling for processes."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9a8ffd7b_8d6d7d34","line":5,"in_reply_to":"9a8ffd7b_4b8222ca","updated":"2015-12-01 13:18:51.000000000","message":"It\u0027s Nova implementation and Nova release notes. We should have no mention of OpenStack here","commit_id":"6771ad0142ac8a51febf3776a7117239aba48182"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"13bea556bb6faba90d891bb0ea8a82ef7451e045","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."},{"line_number":8,"context_line":"    PowerPC based hosts use core based scheduling for processes."},{"line_number":9,"context_line":"    Due to this, the cores on the PowerPC architecture are treated as"},{"line_number":10,"context_line":"    threads by Openstack. Since cores are always less than or equal"},{"line_number":11,"context_line":"    to the threads on a system, this leads to non-optimal resource usage"},{"line_number":12,"context_line":"    while pinning."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9a8ffd7b_0b541a52","line":10,"updated":"2015-12-01 12:34:14.000000000","message":"Ditto","commit_id":"6771ad0142ac8a51febf3776a7117239aba48182"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"11aed766783ba7524e85e68731c933865b3cbc55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Enables NUMA topology reporting on PowerPC architecture"},{"line_number":5,"context_line":"    from the libvirt driver in Nova but with a caveat as mentioned below."},{"line_number":6,"context_line":"    NUMA cell affinity and dedicated cpu pinning"},{"line_number":7,"context_line":"    code assumes that the host operating system is exposed to threads."},{"line_number":8,"context_line":"    PowerPC based hosts use core based scheduling for processes."},{"line_number":9,"context_line":"    Due to this, the cores on the PowerPC architecture are treated as"},{"line_number":10,"context_line":"    threads. Since cores are always less than or equal"},{"line_number":11,"context_line":"    to the threads on a system, this leads to non-optimal resource usage"},{"line_number":12,"context_line":"    while pinning."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"9a8ffd7b_52b12500","line":12,"range":{"start_line":4,"start_character":4,"end_line":12,"end_character":18},"updated":"2015-12-02 15:00:32.000000000","message":"OK this is understandable enough for me. It\u0027s probably clear to people who actually want to run this on PPC too.","commit_id":"98ef8106c1abd45b00525933befa00bc12efa8b9"}]}
