)]}'
{"doc/source/user/flavors.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":702,"context_line":".. _osc-placement plugin: https://docs.openstack.org/osc-placement/latest/index.html"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"High Precision Event Timer (HPET)"},{"line_number":705,"context_line":"  The HPET timer can be activated in libvirt driver for x86 guests. By default"},{"line_number":706,"context_line":"  it remains turned off."},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"  .. code:: console"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_67f29171","line":705,"range":{"start_line":705,"start_character":9,"end_line":705,"end_character":16},"updated":"2018-10-02 18:27:19.000000000","message":"redundant","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":702,"context_line":".. _osc-placement plugin: https://docs.openstack.org/osc-placement/latest/index.html"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"High Precision Event Timer (HPET)"},{"line_number":705,"context_line":"  The HPET timer can be activated in libvirt driver for x86 guests. By default"},{"line_number":706,"context_line":"  it remains turned off."},{"line_number":707,"context_line":""},{"line_number":708,"context_line":"  .. code:: console"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3f79a3b5_39202749","line":705,"range":{"start_line":705,"start_character":9,"end_line":705,"end_character":16},"in_reply_to":"3f79a3b5_67f29171","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"}],"nova/objects/image_meta.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":330,"context_line":"        \u0027hw_rng_model\u0027: fields.RNGModelField(),"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        # boolean \u0027true\u0027 or \u0027false\u0027 to enable HPET"},{"line_number":333,"context_line":"        \u0027hw_time_hpet\u0027: fields.FlexibleBooleanField(),"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"        # number of serial ports to create"},{"line_number":336,"context_line":"        \u0027hw_serial_port_count\u0027: fields.IntegerField(),"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_955ae982","line":333,"range":{"start_line":333,"start_character":31,"end_line":333,"end_character":51},"updated":"2018-11-19 14:56:10.000000000","message":"OK this already handles things like yes/no/true/false/1/0 for us:\n\nhttp://git.openstack.org/cgit/openstack/oslo.versionedobjects/tree/oslo_versionedobjects/fields.py#n457","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":3678,"context_line":"                    self.assertIsInstance(cfg.clock.timers[2],"},{"line_number":3679,"context_line":"                                          vconfig.LibvirtConfigGuestTimer)"},{"line_number":3680,"context_line":"                    self.assertEqual(\u0027hpet\u0027, cfg.clock.timers[2].name)"},{"line_number":3681,"context_line":"                    self.assertFalse(cfg.clock.timers[2].present)"},{"line_number":3682,"context_line":"                else:"},{"line_number":3683,"context_line":"                    self.assertEqual(2, len(cfg.clock.timers))"},{"line_number":3684,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_151d7977","line":3681,"range":{"start_line":3681,"start_character":20,"end_line":3681,"end_character":65},"updated":"2018-11-19 14:56:10.000000000","message":"OK this is unconditionally False because hw_time_hpet\u003dfalse in the image metadata. The \"expect_hpet\" is a bit confusing since we always expect hpet to be false in this test, but I know you\u0027re doing this based on arch as well.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"56002a49c366293a73a27874ff6c205a82716311","unresolved":false,"context_lines":[{"line_number":3678,"context_line":"                    self.assertIsInstance(cfg.clock.timers[2],"},{"line_number":3679,"context_line":"                                          vconfig.LibvirtConfigGuestTimer)"},{"line_number":3680,"context_line":"                    self.assertEqual(\u0027hpet\u0027, cfg.clock.timers[2].name)"},{"line_number":3681,"context_line":"                    self.assertFalse(cfg.clock.timers[2].present)"},{"line_number":3682,"context_line":"                else:"},{"line_number":3683,"context_line":"                    self.assertEqual(2, len(cfg.clock.timers))"},{"line_number":3684,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_5897a8eb","line":3681,"range":{"start_line":3681,"start_character":20,"end_line":3681,"end_character":65},"in_reply_to":"3f79a3b5_151d7977","updated":"2018-11-19 19:40:11.000000000","message":"expect_hpet is evaluated here since only for x86 arch an additioinal HPET timer is added. timer.present is True/False based on hw_time_hpet, but whether the hpet timer being added is based on arch.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"67e6c20ae067fa277493a26d2e1e8ce8eb286109","unresolved":false,"context_lines":[{"line_number":5205,"context_line":""},{"line_number":5206,"context_line":"        self._set_features(guest, instance.os_type, caps, virt_type,"},{"line_number":5207,"context_line":"                           image_meta, flavor)"},{"line_number":5208,"context_line":"        hpet \u003d flavor.extra_specs.get(\"hw:hpet\", False)"},{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_9275fb35","line":5208,"range":{"start_line":5208,"start_character":8,"end_line":5208,"end_character":55},"updated":"2018-09-28 07:33:54.000000000","message":"this might need some doc update or at least reno\notherwise no one knows this change","commit_id":"84df3bfc7c9bd319881acb95cc88066574a6e300"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"53b919c714c05beee4739c32dd31067aacae92eb","unresolved":false,"context_lines":[{"line_number":5205,"context_line":""},{"line_number":5206,"context_line":"        self._set_features(guest, instance.os_type, caps, virt_type,"},{"line_number":5207,"context_line":"                           image_meta, flavor)"},{"line_number":5208,"context_line":"        hpet \u003d flavor.extra_specs.get(\"hw:hpet\", False)"},{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a06bcced","line":5208,"range":{"start_line":5208,"start_character":8,"end_line":5208,"end_character":55},"in_reply_to":"3f79a3b5_9275fb35","updated":"2018-10-01 19:39:32.000000000","message":"Done","commit_id":"84df3bfc7c9bd319881acb95cc88066574a6e300"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"97033e29d0cef280952609f2130eef3008a3665e","unresolved":false,"context_lines":[{"line_number":5205,"context_line":""},{"line_number":5206,"context_line":"        self._set_features(guest, instance.os_type, caps, virt_type,"},{"line_number":5207,"context_line":"                           image_meta, flavor)"},{"line_number":5208,"context_line":"        hpet \u003d flavor.extra_specs.get(\"hw:hpet\", False)"},{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d9870f12","line":5208,"range":{"start_line":5208,"start_character":8,"end_line":5208,"end_character":55},"in_reply_to":"3f79a3b5_9275fb35","updated":"2018-09-28 16:15:22.000000000","message":"Should be documented under nova/doc/source/user/flavors.rst in the \"Extra Specs\" section, as well as with a release note.  (https://docs.openstack.org/reno/latest/user/usage.html#creating-new-release-notes)\n\nYou can see examples of release notes in \"nova/releasenotes/notes/*\"","commit_id":"84df3bfc7c9bd319881acb95cc88066574a6e300"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"53b919c714c05beee4739c32dd31067aacae92eb","unresolved":false,"context_lines":[{"line_number":5205,"context_line":""},{"line_number":5206,"context_line":"        self._set_features(guest, instance.os_type, caps, virt_type,"},{"line_number":5207,"context_line":"                           image_meta, flavor)"},{"line_number":5208,"context_line":"        hpet \u003d flavor.extra_specs.get(\"hw:hpet\", False)"},{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_8066d027","line":5208,"range":{"start_line":5208,"start_character":8,"end_line":5208,"end_character":55},"in_reply_to":"3f79a3b5_d9870f12","updated":"2018-10-01 19:39:32.000000000","message":"Done","commit_id":"84df3bfc7c9bd319881acb95cc88066574a6e300"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"67e6c20ae067fa277493a26d2e1e8ce8eb286109","unresolved":false,"context_lines":[{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"},{"line_number":5212,"context_line":"            LOG.warning(\u0027Extra spec hw:hpet is not a boolean, HPET \u0027"},{"line_number":5213,"context_line":"                        \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"},{"line_number":5216,"context_line":"                        hpet)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_727a9f25","line":5213,"range":{"start_line":5212,"start_character":12,"end_line":5213,"end_character":46},"updated":"2018-09-28 07:33:54.000000000","message":"a debug level message should be enough\n\nthe flavor should be created by admin and in turn some check already done at that time..","commit_id":"84df3bfc7c9bd319881acb95cc88066574a6e300"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"53b919c714c05beee4739c32dd31067aacae92eb","unresolved":false,"context_lines":[{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"},{"line_number":5212,"context_line":"            LOG.warning(\u0027Extra spec hw:hpet is not a boolean, HPET \u0027"},{"line_number":5213,"context_line":"                        \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"},{"line_number":5216,"context_line":"                        hpet)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_e065441e","line":5213,"range":{"start_line":5212,"start_character":12,"end_line":5213,"end_character":46},"in_reply_to":"3f79a3b5_727a9f25","updated":"2018-10-01 19:39:32.000000000","message":"Done","commit_id":"84df3bfc7c9bd319881acb95cc88066574a6e300"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":4556,"context_line":"        guest.set_clock(clk)"},{"line_number":4557,"context_line":""},{"line_number":4558,"context_line":"        if virt_type \u003d\u003d \"kvm\":"},{"line_number":4559,"context_line":"            self._set_kvm_timers(clk, os_type, image_meta, hpet)"},{"line_number":4560,"context_line":""},{"line_number":4561,"context_line":"    def _set_kvm_timers(self, clk, os_type, image_meta, hpet\u003dFalse):"},{"line_number":4562,"context_line":"        # TODO(berrange) One day this should be per-guest"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_279d7908","line":4559,"range":{"start_line":4559,"start_character":59,"end_line":4559,"end_character":63},"updated":"2018-10-02 18:27:19.000000000","message":"name kwargs","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":4556,"context_line":"        guest.set_clock(clk)"},{"line_number":4557,"context_line":""},{"line_number":4558,"context_line":"        if virt_type \u003d\u003d \"kvm\":"},{"line_number":4559,"context_line":"            self._set_kvm_timers(clk, os_type, image_meta, hpet)"},{"line_number":4560,"context_line":""},{"line_number":4561,"context_line":"    def _set_kvm_timers(self, clk, os_type, image_meta, hpet\u003dFalse):"},{"line_number":4562,"context_line":"        # TODO(berrange) One day this should be per-guest"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_05729c4a","line":4559,"range":{"start_line":4559,"start_character":59,"end_line":4559,"end_character":63},"in_reply_to":"3f79a3b5_279d7908","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":4573,"context_line":"        clk.add_timer(tmrtc)"},{"line_number":4574,"context_line":""},{"line_number":4575,"context_line":"        guestarch \u003d libvirt_utils.get_arch(image_meta)"},{"line_number":4576,"context_line":"        if guestarch in (fields.Architecture.I686,"},{"line_number":4577,"context_line":"                         fields.Architecture.X86_64):"},{"line_number":4578,"context_line":"            # NOTE(rfolco): HPET is a hardware timer for x86 arch."},{"line_number":4579,"context_line":"            # qemu -no-hpet is not supported on non-x86 targets."},{"line_number":4580,"context_line":"            tmhpet \u003d vconfig.LibvirtConfigGuestTimer()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_07687df1","line":4577,"range":{"start_line":4576,"start_character":0,"end_line":4577,"end_character":53},"updated":"2018-10-02 18:27:19.000000000","message":"So because of this condition, even if I spell it right, hw:hpet\u003dTrue won\u0027t result in HPET being turned on. I think that warrants a log message akin to what you\u0027ve got on L5212.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":4573,"context_line":"        clk.add_timer(tmrtc)"},{"line_number":4574,"context_line":""},{"line_number":4575,"context_line":"        guestarch \u003d libvirt_utils.get_arch(image_meta)"},{"line_number":4576,"context_line":"        if guestarch in (fields.Architecture.I686,"},{"line_number":4577,"context_line":"                         fields.Architecture.X86_64):"},{"line_number":4578,"context_line":"            # NOTE(rfolco): HPET is a hardware timer for x86 arch."},{"line_number":4579,"context_line":"            # qemu -no-hpet is not supported on non-x86 targets."},{"line_number":4580,"context_line":"            tmhpet \u003d vconfig.LibvirtConfigGuestTimer()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_e5f1a06b","line":4577,"range":{"start_line":4576,"start_character":0,"end_line":4577,"end_character":53},"in_reply_to":"3f79a3b5_07687df1","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"5e93c563cd969e4b6f4aa06ed8af1ff211f02b44","unresolved":false,"context_lines":[{"line_number":4573,"context_line":"        clk.add_timer(tmrtc)"},{"line_number":4574,"context_line":""},{"line_number":4575,"context_line":"        guestarch \u003d libvirt_utils.get_arch(image_meta)"},{"line_number":4576,"context_line":"        if guestarch in (fields.Architecture.I686,"},{"line_number":4577,"context_line":"                         fields.Architecture.X86_64):"},{"line_number":4578,"context_line":"            # NOTE(rfolco): HPET is a hardware timer for x86 arch."},{"line_number":4579,"context_line":"            # qemu -no-hpet is not supported on non-x86 targets."},{"line_number":4580,"context_line":"            tmhpet \u003d vconfig.LibvirtConfigGuestTimer()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_bd23d8bd","line":4577,"range":{"start_line":4576,"start_character":0,"end_line":4577,"end_character":53},"in_reply_to":"3f79a3b5_07687df1","updated":"2018-10-02 20:03:14.000000000","message":"Makes sense.  We\u0027ve been talking about doing some generic flavour/image validity checks, we could make those checks fail if someone asks for HPET with a non-x86 image.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"8f2f16b53164172975eddb55dc23d4d54ca90c3a","unresolved":false,"context_lines":[{"line_number":4573,"context_line":"        clk.add_timer(tmrtc)"},{"line_number":4574,"context_line":""},{"line_number":4575,"context_line":"        guestarch \u003d libvirt_utils.get_arch(image_meta)"},{"line_number":4576,"context_line":"        if guestarch in (fields.Architecture.I686,"},{"line_number":4577,"context_line":"                         fields.Architecture.X86_64):"},{"line_number":4578,"context_line":"            # NOTE(rfolco): HPET is a hardware timer for x86 arch."},{"line_number":4579,"context_line":"            # qemu -no-hpet is not supported on non-x86 targets."},{"line_number":4580,"context_line":"            tmhpet \u003d vconfig.LibvirtConfigGuestTimer()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_779c630c","line":4577,"range":{"start_line":4576,"start_character":0,"end_line":4577,"end_character":53},"in_reply_to":"3f79a3b5_bd23d8bd","updated":"2018-10-03 18:38:01.000000000","message":"If those checks are in the driver, that\u0027s a late fail. Using a trait and requiring it via the flavor would get you that filtering at the conductor while selecting destinations. This is exactly the sort of thing traits were designed to optimize.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":4573,"context_line":"        clk.add_timer(tmrtc)"},{"line_number":4574,"context_line":""},{"line_number":4575,"context_line":"        guestarch \u003d libvirt_utils.get_arch(image_meta)"},{"line_number":4576,"context_line":"        if guestarch in (fields.Architecture.I686,"},{"line_number":4577,"context_line":"                         fields.Architecture.X86_64):"},{"line_number":4578,"context_line":"            # NOTE(rfolco): HPET is a hardware timer for x86 arch."},{"line_number":4579,"context_line":"            # qemu -no-hpet is not supported on non-x86 targets."},{"line_number":4580,"context_line":"            tmhpet \u003d vconfig.LibvirtConfigGuestTimer()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_a56ac8e8","line":4577,"range":{"start_line":4576,"start_character":0,"end_line":4577,"end_character":53},"in_reply_to":"3f79a3b5_bd23d8bd","updated":"2018-10-04 13:47:31.000000000","message":"added TODO","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"},{"line_number":5212,"context_line":"            LOG.debug(\u0027Extra spec hw:hpet is not a boolean, HPET \u0027"},{"line_number":5213,"context_line":"                      \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_07415d63","line":5212,"range":{"start_line":5212,"start_character":16,"end_line":5212,"end_character":21},"updated":"2018-10-02 18:27:19.000000000","message":"IMO this should be at least warning, if not an actual failure condition.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"},{"line_number":5212,"context_line":"            LOG.debug(\u0027Extra spec hw:hpet is not a boolean, HPET \u0027"},{"line_number":5213,"context_line":"                      \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_65591059","line":5212,"range":{"start_line":5212,"start_character":16,"end_line":5212,"end_character":21},"in_reply_to":"3f79a3b5_07415d63","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"5e93c563cd969e4b6f4aa06ed8af1ff211f02b44","unresolved":false,"context_lines":[{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"},{"line_number":5212,"context_line":"            LOG.debug(\u0027Extra spec hw:hpet is not a boolean, HPET \u0027"},{"line_number":5213,"context_line":"                      \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_3d190887","line":5212,"range":{"start_line":5212,"start_character":16,"end_line":5212,"end_character":21},"in_reply_to":"3f79a3b5_07415d63","updated":"2018-10-02 20:03:14.000000000","message":"This could also be validated earlier as part of the overall flavor/image validation.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":5209,"context_line":"        try:"},{"line_number":5210,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"},{"line_number":5211,"context_line":"        except ValueError:"},{"line_number":5212,"context_line":"            LOG.debug(\u0027Extra spec hw:hpet is not a boolean, HPET \u0027"},{"line_number":5213,"context_line":"                      \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_254f988c","line":5212,"range":{"start_line":5212,"start_character":16,"end_line":5212,"end_character":21},"in_reply_to":"3f79a3b5_3d190887","updated":"2018-10-04 13:47:31.000000000","message":"added TIDI","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":5213,"context_line":"                      \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"},{"line_number":5216,"context_line":"                        hpet)"},{"line_number":5217,"context_line":""},{"line_number":5218,"context_line":"        storage_configs \u003d self._get_guest_storage_config(context,"},{"line_number":5219,"context_line":"                instance, image_meta, disk_info, rescue, block_device_info,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_079abd11","line":5216,"range":{"start_line":5216,"start_character":24,"end_line":5216,"end_character":28},"updated":"2018-10-02 18:27:19.000000000","message":"name kwargs","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":5213,"context_line":"                      \u0027remains turned off.\u0027)"},{"line_number":5214,"context_line":"            hpet \u003d False"},{"line_number":5215,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type,"},{"line_number":5216,"context_line":"                        hpet)"},{"line_number":5217,"context_line":""},{"line_number":5218,"context_line":"        storage_configs \u003d self._get_guest_storage_config(context,"},{"line_number":5219,"context_line":"                instance, image_meta, disk_info, rescue, block_device_info,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_a53888ec","line":5216,"range":{"start_line":5216,"start_character":24,"end_line":5216,"end_character":28},"in_reply_to":"3f79a3b5_079abd11","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6d0d6ff66a3f73ef680451b804acccd515796869","unresolved":false,"context_lines":[{"line_number":5209,"context_line":""},{"line_number":5210,"context_line":"        self._set_features(guest, instance.os_type, caps, virt_type,"},{"line_number":5211,"context_line":"                           image_meta, flavor)"},{"line_number":5212,"context_line":"        hpet \u003d flavor.extra_specs.get(\"hw:hpet\", False)"},{"line_number":5213,"context_line":"        # TODO(jackding): move this to flavor/image validition at launch"},{"line_number":5214,"context_line":"        try:"},{"line_number":5215,"context_line":"            hpet \u003d strutils.bool_from_string(hpet, strict\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_e12ddf45","line":5212,"updated":"2018-10-05 15:59:21.000000000","message":"OK, Jack, a few things you are going to need to do here.\n\n1) We have a new COMPUTE_TIME_HPET trait proposed to the os-traits library here:\n\nhttps://review.openstack.org/#/c/608258/\n\nOnce that merges, we will make an os-traits library release and you\u0027ll want to increase the os-traits library dependency version for Nova accordingly (here: https://github.com/openstack/nova/blob/e37de17701168054484218e9618ed1cd21784047/requirements.txt#L58)\n\n2) You will want to examine the list of required *traits* and not a new hw:hpet flavor extra spec key. You can see the scheduler utils code for getting the flavor (and image) required traits list:\n\nhttps://github.com/openstack/nova/blob/e37de17701168054484218e9618ed1cd21784047/nova/scheduler/utils.py#L166-L168\n\n3) You will want to look at the *image\u0027s* required traits as well as the flavor. It is going to be our recommendation to users that they decorate the *image* (not the flavor) with the COMPUTE_TIME_HPET trait because whether or not an HPET is supported/required by a guest is dependent on the guest architecture.","commit_id":"f7b35948da76288f45d58196c460ab18e06864a5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":4552,"context_line":"            clk.offset \u003d \u0027utc\u0027"},{"line_number":4553,"context_line":"        guest.set_clock(clk)"},{"line_number":4554,"context_line":""},{"line_number":4555,"context_line":"        if virt_type \u003d\u003d \"kvm\":"},{"line_number":4556,"context_line":"            self._set_kvm_timers(clk, os_type, image_meta)"},{"line_number":4557,"context_line":""},{"line_number":4558,"context_line":"    def _set_kvm_timers(self, clk, os_type, image_meta):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_b5b9257c","line":4555,"range":{"start_line":4555,"start_character":8,"end_line":4555,"end_character":30},"updated":"2018-11-19 14:56:10.000000000","message":"Hmm, the spec says hypervisor_type\u003dqemu which would be kvm or qemu, but we\u0027ll only set hpet if running kvm - is that OK? Or should we also be able to set hpet with qemu as the virt_type?","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"29b60eb830b41353841d72cb7e98e7965d863270","unresolved":false,"context_lines":[{"line_number":4552,"context_line":"            clk.offset \u003d \u0027utc\u0027"},{"line_number":4553,"context_line":"        guest.set_clock(clk)"},{"line_number":4554,"context_line":""},{"line_number":4555,"context_line":"        if virt_type \u003d\u003d \"kvm\":"},{"line_number":4556,"context_line":"            self._set_kvm_timers(clk, os_type, image_meta)"},{"line_number":4557,"context_line":""},{"line_number":4558,"context_line":"    def _set_kvm_timers(self, clk, os_type, image_meta):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_9f5d227d","line":4555,"range":{"start_line":4555,"start_character":8,"end_line":4555,"end_character":30},"in_reply_to":"3f79a3b5_2406451b","updated":"2018-11-19 19:44:25.000000000","message":"tsc as default timer for qemu is probably more efficient than hpet. Since not a lot users are using hpet I prefer to keep changes minimal.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"affaa86e5b1dfb2c57bac08b7695fe8f97df64f4","unresolved":false,"context_lines":[{"line_number":4552,"context_line":"            clk.offset \u003d \u0027utc\u0027"},{"line_number":4553,"context_line":"        guest.set_clock(clk)"},{"line_number":4554,"context_line":""},{"line_number":4555,"context_line":"        if virt_type \u003d\u003d \"kvm\":"},{"line_number":4556,"context_line":"            self._set_kvm_timers(clk, os_type, image_meta)"},{"line_number":4557,"context_line":""},{"line_number":4558,"context_line":"    def _set_kvm_timers(self, clk, os_type, image_meta):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_2406451b","line":4555,"range":{"start_line":4555,"start_character":8,"end_line":4555,"end_character":30},"in_reply_to":"3f79a3b5_b5b9257c","updated":"2018-11-19 18:07:10.000000000","message":"This is an interesting point, why are we only setting up timers (and turning off HPET by default) for KVM-based instances?  This seems to be an ancient check dating back to the F release in 2012.\n\nChecking in a \"qemu\" environment, the libvirt XML just says \"\u003cclock offset\u003d\u0027utc\u0027/\u003e\" and the qemu commandline has \"-rtc base\u003dutc\".  Within the guest, we see the following under /sys/devices/system/clocksource/clocksource0/:\n\navailable_clocksource: tsc hpet acpi_pm\ncurrent_clocksource: tsc\n\nSo the HPET seems to be available by default for qemu guests.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":4581,"context_line":"            clk.add_timer(tmhpet)"},{"line_number":4582,"context_line":"        else:"},{"line_number":4583,"context_line":"            if hpet:"},{"line_number":4584,"context_line":"                LOG.warning(\u0027HPET is not turned on for non-x86 guests.\u0027)"},{"line_number":4585,"context_line":""},{"line_number":4586,"context_line":"        # Provide Windows guests with the paravirtualized hyperv timer source."},{"line_number":4587,"context_line":"        # This is the windows equiv of kvm-clock, allowing Windows"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_55e2119e","line":4584,"range":{"start_line":4584,"start_character":16,"end_line":4584,"end_character":72},"updated":"2018-11-19 14:56:10.000000000","message":"nit: might be good to include the image id in this warning so operators/admins can cleanup the image or restrict it to the correct host aggregate.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"56002a49c366293a73a27874ff6c205a82716311","unresolved":false,"context_lines":[{"line_number":4581,"context_line":"            clk.add_timer(tmhpet)"},{"line_number":4582,"context_line":"        else:"},{"line_number":4583,"context_line":"            if hpet:"},{"line_number":4584,"context_line":"                LOG.warning(\u0027HPET is not turned on for non-x86 guests.\u0027)"},{"line_number":4585,"context_line":""},{"line_number":4586,"context_line":"        # Provide Windows guests with the paravirtualized hyperv timer source."},{"line_number":4587,"context_line":"        # This is the windows equiv of kvm-clock, allowing Windows"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_ab8a280f","line":4584,"range":{"start_line":4584,"start_character":16,"end_line":4584,"end_character":72},"in_reply_to":"3f79a3b5_55e2119e","updated":"2018-11-19 19:40:11.000000000","message":"Done","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":5206,"context_line":""},{"line_number":5207,"context_line":"        self._set_features(guest, instance.os_type, caps, virt_type,"},{"line_number":5208,"context_line":"                           image_meta, flavor)"},{"line_number":5209,"context_line":""},{"line_number":5210,"context_line":"        self._set_clock(guest, instance.os_type, image_meta, virt_type)"},{"line_number":5211,"context_line":""},{"line_number":5212,"context_line":"        storage_configs \u003d self._get_guest_storage_config(context,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f79a3b5_d5f5c153","line":5209,"updated":"2018-11-19 14:56:10.000000000","message":"Remove this unrelated change.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"}],"releasenotes/notes/bp-support-hpet-on-guest-2292b2b863c4d9ef.yaml":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","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":"    Add support for the High Precision Event Timer (HPET) for x86 guests in"},{"line_number":5,"context_line":"    libvirt driver. The timer can be set by a flavor extra spec \u0027hw:hpet\u0027."},{"line_number":6,"context_line":"    By default it remains turned off. When it is turned on the HPET timer is"},{"line_number":7,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_07363d03","line":4,"range":{"start_line":4,"start_character":73,"end_line":4,"end_character":75},"updated":"2018-10-02 18:27:19.000000000","message":"in the","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","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":"    Add support for the High Precision Event Timer (HPET) for x86 guests in"},{"line_number":5,"context_line":"    libvirt driver. The timer can be set by a flavor extra spec \u0027hw:hpet\u0027."},{"line_number":6,"context_line":"    By default it remains turned off. When it is turned on the HPET timer is"},{"line_number":7,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_7706a31d","line":4,"range":{"start_line":4,"start_character":73,"end_line":4,"end_character":75},"in_reply_to":"3f79a3b5_07363d03","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests in"},{"line_number":5,"context_line":"    libvirt driver. The timer can be set by a flavor extra spec \u0027hw:hpet\u0027."},{"line_number":6,"context_line":"    By default it remains turned off. When it is turned on the HPET timer is"},{"line_number":7,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_c72365bd","line":6,"range":{"start_line":6,"start_character":66,"end_line":6,"end_character":73},"updated":"2018-10-02 18:27:19.000000000","message":"redundant.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests in"},{"line_number":5,"context_line":"    libvirt driver. The timer can be set by a flavor extra spec \u0027hw:hpet\u0027."},{"line_number":6,"context_line":"    By default it remains turned off. When it is turned on the HPET timer is"},{"line_number":7,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_d716974a","line":6,"range":{"start_line":6,"start_character":66,"end_line":6,"end_character":73},"in_reply_to":"3f79a3b5_c72365bd","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"bc346833eb242166aea29e360acda6878fc1f4b8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests in"},{"line_number":5,"context_line":"    libvirt driver. The timer can be set by a flavor extra spec \u0027hw:hpet\u0027."},{"line_number":6,"context_line":"    By default it remains turned off. When it is turned on the HPET timer is"},{"line_number":7,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_671cd176","line":7,"updated":"2018-10-02 18:27:19.000000000","message":"Consider adding a link to the doc.\n\nIf not, you should probably at least explain that the value is boolean.","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"04ddeb5ef422768b2351e31df53c99c6255ccb4b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests in"},{"line_number":5,"context_line":"    libvirt driver. The timer can be set by a flavor extra spec \u0027hw:hpet\u0027."},{"line_number":6,"context_line":"    By default it remains turned off. When it is turned on the HPET timer is"},{"line_number":7,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"3f79a3b5_5703670c","line":7,"in_reply_to":"3f79a3b5_671cd176","updated":"2018-10-04 13:47:31.000000000","message":"Done","commit_id":"37d5b15fb5048a87af5f81bb6b287ad1fd31a7a5"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f82e315906fee6ce26f9dfe987457cfdf7401953","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by a boolean \u0027hw:hpet\u0027 in"},{"line_number":6,"context_line":"    flavor extra spec. By default \u0027hw:hpet\u0027 is set to False so that HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3f79a3b5_575cae7f","line":6,"range":{"start_line":5,"start_character":44,"end_line":6,"end_character":22},"updated":"2018-10-04 15:55:54.000000000","message":"s/set by a boolean \u0027hw:hpet\u0027 in flavor extra spec/by setting a ``hw:hpet\u003dtrue`` flavor extra spec key/value pair.","commit_id":"da05d5bbea911c7d037eb9fe040c9fb3021428ca"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"eec24bde8bda09b4cada3a78b19283b3694e801a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by a boolean \u0027hw:hpet\u0027 in"},{"line_number":6,"context_line":"    flavor extra spec. By default \u0027hw:hpet\u0027 is set to False so that HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3f79a3b5_7a899123","line":6,"range":{"start_line":5,"start_character":44,"end_line":6,"end_character":22},"in_reply_to":"3f79a3b5_575cae7f","updated":"2018-10-04 16:22:39.000000000","message":"Done","commit_id":"da05d5bbea911c7d037eb9fe040c9fb3021428ca"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f82e315906fee6ce26f9dfe987457cfdf7401953","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by a boolean \u0027hw:hpet\u0027 in"},{"line_number":6,"context_line":"    flavor extra spec. By default \u0027hw:hpet\u0027 is set to False so that HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3f79a3b5_d74f5ebd","line":8,"range":{"start_line":6,"start_character":23,"end_line":8,"end_character":12},"updated":"2018-10-04 15:55:54.000000000","message":"No... by default, there is no \"hw:hpet\" extra spec key. It\u0027s not that \"by default \"hw:hpet\" is set to False\".","commit_id":"da05d5bbea911c7d037eb9fe040c9fb3021428ca"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"eec24bde8bda09b4cada3a78b19283b3694e801a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by a boolean \u0027hw:hpet\u0027 in"},{"line_number":6,"context_line":"    flavor extra spec. By default \u0027hw:hpet\u0027 is set to False so that HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"3f79a3b5_1a7e5d1b","line":8,"range":{"start_line":6,"start_character":23,"end_line":8,"end_character":12},"in_reply_to":"3f79a3b5_d74f5ebd","updated":"2018-10-04 16:22:39.000000000","message":"Done","commit_id":"da05d5bbea911c7d037eb9fe040c9fb3021428ca"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","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":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_f5fa3d10","line":2,"updated":"2018-11-19 14:56:10.000000000","message":"I\u0027d like to see the corresponding glance docs change for https://docs.openstack.org/glance/latest/admin/useful-image-properties.html which depends on this nova change before we merge the nova change, so that we don\u0027t forget about the glance image property docs.","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"56002a49c366293a73a27874ff6c205a82716311","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":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_dfe63adc","line":2,"in_reply_to":"3f79a3b5_f5fa3d10","updated":"2018-11-19 19:40:11.000000000","message":"glance doc changes proposed: https://review.openstack.org/#/c/618812/","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","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":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"},{"line_number":6,"context_line":"    ``hw_time_hpet`` image property key/value pair. By default HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_95442978","line":4,"updated":"2018-11-19 14:56:10.000000000","message":"Should probably also mention something about the virt type since that also determines if this is used (currently it will only work if [libvirt]/virt_type\u003dkvm).","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"56002a49c366293a73a27874ff6c205a82716311","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":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"},{"line_number":6,"context_line":"    ``hw_time_hpet`` image property key/value pair. By default HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_3f396ea1","line":4,"in_reply_to":"3f79a3b5_95442978","updated":"2018-11-19 19:40:11.000000000","message":"Done","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"},{"line_number":6,"context_line":"    ``hw_time_hpet`` image property key/value pair. By default HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_15aa591a","line":5,"range":{"start_line":5,"start_character":48,"end_line":5,"end_character":53},"updated":"2018-11-19 14:56:10.000000000","message":"typo","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"56002a49c366293a73a27874ff6c205a82716311","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"},{"line_number":6,"context_line":"    ``hw_time_hpet`` image property key/value pair. By default HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_aefa360d","line":5,"range":{"start_line":5,"start_character":48,"end_line":5,"end_character":53},"in_reply_to":"3f79a3b5_15aa591a","updated":"2018-11-19 19:40:11.000000000","message":"Done","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"27dd3639ac5800fe7a7571cccd5b563888895662","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"},{"line_number":6,"context_line":"    ``hw_time_hpet`` image property key/value pair. By default HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_d5a38143","line":6,"range":{"start_line":6,"start_character":6,"end_line":6,"end_character":18},"updated":"2018-11-19 14:56:10.000000000","message":"hw_time_hpet\u003dTrue?","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":28433,"name":"Jack Ding","email":"jackding@gmail.com","username":"jackding"},"change_message_id":"56002a49c366293a73a27874ff6c205a82716311","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver. The timer can be set by by setting a"},{"line_number":6,"context_line":"    ``hw_time_hpet`` image property key/value pair. By default HPET"},{"line_number":7,"context_line":"    remains turned off. When it is turned on the HPET is activated in"},{"line_number":8,"context_line":"    libvirt."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"3f79a3b5_4e012203","line":6,"range":{"start_line":6,"start_character":6,"end_line":6,"end_character":18},"in_reply_to":"3f79a3b5_d5a38143","updated":"2018-11-19 19:40:11.000000000","message":"Done","commit_id":"83fa3c855524179c068ae3e0774aa4a90636d755"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a17888685ea1a6bb9c779d30e796eb656c078bef","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver when hypervisor_type is qemumer can be set"},{"line_number":6,"context_line":"    by setting a ``hw_time_hpet\u003dTrue`` image property key/value pair. By"},{"line_number":7,"context_line":"    default HPET remains turned off. When it is turned on the HPET is"},{"line_number":8,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_dc0aacce","line":5,"range":{"start_line":5,"start_character":31,"end_line":5,"end_character":46},"updated":"2018-11-20 22:38:15.000000000","message":"Is hypervisor_type the correct thing to mention here? I was thinking the [libvirt]/virt_type config option, but maybe you\u0027re going for the hypervisor_type image property? If so, let\u0027s qualify that by saying, \"in the libvirt driver when image property ``hypervisor_type\u003dqemu`` is set.","commit_id":"eccb630a8883e554ee0fd75d8d869dcdd685a483"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a17888685ea1a6bb9c779d30e796eb656c078bef","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add support for the High Precision Event Timer (HPET) for x86 guests"},{"line_number":5,"context_line":"    in the libvirt driver when hypervisor_type is qemumer can be set"},{"line_number":6,"context_line":"    by setting a ``hw_time_hpet\u003dTrue`` image property key/value pair. By"},{"line_number":7,"context_line":"    default HPET remains turned off. When it is turned on the HPET is"},{"line_number":8,"context_line":"    activated in libvirt."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"3f79a3b5_fcfd28b8","line":5,"range":{"start_line":5,"start_character":50,"end_line":5,"end_character":57},"updated":"2018-11-20 22:38:15.000000000","message":"typo - I think you meant: \"qemu. The timer can be set...\"","commit_id":"eccb630a8883e554ee0fd75d8d869dcdd685a483"}]}
