)]}'
{"doc/source/admin/virtual-persistent-memory.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"can provide virtual devices."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"PMEM must be partitioned into `PMEM namespaces`_ for applications to use."},{"line_number":10,"context_line":"This vPMEM feature only use PMEM namespaces in ``devdax`` mode as QEMU"},{"line_number":11,"context_line":"`vPMEM backends`_. If you want to dive into related notions, the document"},{"line_number":12,"context_line":"`NVDIMM Linux kernel document`_ is recommended."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_f4eecf86","line":10,"range":{"start_line":10,"start_character":24,"end_line":10,"end_character":27},"updated":"2019-09-09 22:41:57.000000000","message":"uses","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":7,"context_line":"can provide virtual devices."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"PMEM must be partitioned into `PMEM namespaces`_ for applications to use."},{"line_number":10,"context_line":"This vPMEM feature only use PMEM namespaces in ``devdax`` mode as QEMU"},{"line_number":11,"context_line":"`vPMEM backends`_. If you want to dive into related notions, the document"},{"line_number":12,"context_line":"`NVDIMM Linux kernel document`_ is recommended."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_55a34b50","line":10,"range":{"start_line":10,"start_character":24,"end_line":10,"end_character":27},"in_reply_to":"5faad753_f4eecf86","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"`NVDIMM Linux kernel document`_ is recommended."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"To enable vPMEMs, follow the steps below:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#. `Dependencies`_"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"#. `Configure PMEM namespaces (Compute)`_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_b4005736","line":15,"updated":"2019-09-09 22:41:57.000000000","message":"We get these links for free in the table of contents; just eliminate L16-22.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":12,"context_line":"`NVDIMM Linux kernel document`_ is recommended."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"To enable vPMEMs, follow the steps below:"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"#. `Dependencies`_"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"#. `Configure PMEM namespaces (Compute)`_"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_356c8f07","line":15,"in_reply_to":"5faad753_b4005736","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Dependencies"},{"line_number":26,"context_line":"------------"},{"line_number":27,"context_line":"To support vPMEM feature, there are several dependencies,"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Kernel version \u003e\u003d 4.18"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_54ab231c","line":27,"range":{"start_line":27,"start_character":3,"end_line":27,"end_character":10},"updated":"2019-09-09 22:41:57.000000000","message":"support the","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Dependencies"},{"line_number":26,"context_line":"------------"},{"line_number":27,"context_line":"To support vPMEM feature, there are several dependencies,"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Kernel version \u003e\u003d 4.18"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_157393e9","line":27,"range":{"start_line":27,"start_character":3,"end_line":27,"end_character":10},"in_reply_to":"5faad753_54ab231c","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"Dependencies"},{"line_number":26,"context_line":"------------"},{"line_number":27,"context_line":"To support vPMEM feature, there are several dependencies,"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"* Kernel version \u003e\u003d 4.18"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_f471efe1","line":28,"updated":"2019-09-09 22:41:57.000000000","message":"Isn\u0027t there also a hardware dependency?","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* `ndctl`_ version \u003e\u003d 62"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The vPMEM feature had been verified under the software versions listed above."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Configure PMEM namespaces (Compute)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_f4bc8f6a","line":45,"range":{"start_line":45,"start_character":18,"end_line":45,"end_character":21},"updated":"2019-09-09 22:41:57.000000000","message":"has","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* `ndctl`_ version \u003e\u003d 62"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"The vPMEM feature had been verified under the software versions listed above."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Configure PMEM namespaces (Compute)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_5013590e","line":45,"range":{"start_line":45,"start_character":18,"end_line":45,"end_character":21},"in_reply_to":"5faad753_f4bc8f6a","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"#. Create PMEM namespaces as `vPMEM backends`_ using `ndctl`_ utility"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. code-block:: console"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    $ sudo ndctl create-namespace -s 6G -m devdax -M mem -n ns3"},{"line_number":56,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_945f5b40","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":23},"updated":"2019-09-09 22:41:57.000000000","message":"indent this...","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"#. Create PMEM namespaces as `vPMEM backends`_ using `ndctl`_ utility"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. code-block:: console"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    $ sudo ndctl create-namespace -s 6G -m devdax -M mem -n ns3"},{"line_number":56,"context_line":"    {"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_300edde5","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":23},"in_reply_to":"5faad753_945f5b40","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"numa_node\":1"},{"line_number":76,"context_line":"    }"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Then list available PMEM namespaces on host:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. code-block:: console"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    $ ndctl list -X"},{"line_number":83,"context_line":"    ["}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_5459e357","line":80,"range":{"start_line":78,"start_character":0,"end_line":80,"end_character":23},"updated":"2019-09-09 22:41:57.000000000","message":"...and this...","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        \"numa_node\":1"},{"line_number":76,"context_line":"    }"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"Then list available PMEM namespaces on host:"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":".. code-block:: console"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    $ ndctl list -X"},{"line_number":83,"context_line":"    ["}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_10f5e1cb","line":80,"range":{"start_line":78,"start_character":0,"end_line":80,"end_character":23},"in_reply_to":"5faad753_5459e357","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        ......"},{"line_number":106,"context_line":"    ]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"#. Specify which PMEM namespaces the instances would get."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"   Edit :oslo.config:option:`libvirt.pmem_namespaces`:"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_14312b0c","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":57},"updated":"2019-09-09 22:41:57.000000000","message":"...so that this renders properly as 2","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        ......"},{"line_number":106,"context_line":"    ]"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"#. Specify which PMEM namespaces the instances would get."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"   Edit :oslo.config:option:`libvirt.pmem_namespaces`:"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_5407a31d","line":108,"range":{"start_line":108,"start_character":47,"end_line":108,"end_character":52},"updated":"2019-09-09 22:41:57.000000000","message":"can","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"      [libvirt]"},{"line_number":115,"context_line":"      # pmem_namespaces\u003d$LABEL:$NSNAME[|$NSNAME][,$LABEL:$NSNAME[|$NSNAME]]"},{"line_number":116,"context_line":"      pmem_namespaces \u003d 6GB:ns0|ns1|ns2,SMALL:ns3"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   Configured PMEM namespaces must be created on host manually. $LABEL here"},{"line_number":119,"context_line":"   is used to generate resource class CUSTOM_PMEM_NAMESPACE_$LABEL."}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_afc23e84","line":116,"range":{"start_line":116,"start_character":6,"end_line":116,"end_character":49},"updated":"2019-09-09 22:41:57.000000000","message":"Please make the example consistent throughout. Specifically:\n\nIt\u0027s confusing that `ns3` is 6GB in size, but `ns3` is used for `SMALL`, and ns0-2 are labeled `6GB`.\n\nPlease have the output of ndctl -X (L82) include at least an abbreviated version of all the namespaces used in the example. Use \u0027...\u0027 to elide most of the content, like:\n\n {\n     ...\n     \"size\":1048576,\n     ...\n     \"name\":ns0,\n     ...\n },\n etc.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":113,"context_line":""},{"line_number":114,"context_line":"      [libvirt]"},{"line_number":115,"context_line":"      # pmem_namespaces\u003d$LABEL:$NSNAME[|$NSNAME][,$LABEL:$NSNAME[|$NSNAME]]"},{"line_number":116,"context_line":"      pmem_namespaces \u003d 6GB:ns0|ns1|ns2,SMALL:ns3"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   Configured PMEM namespaces must be created on host manually. $LABEL here"},{"line_number":119,"context_line":"   is used to generate resource class CUSTOM_PMEM_NAMESPACE_$LABEL."}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_d04429ba","line":116,"range":{"start_line":116,"start_character":6,"end_line":116,"end_character":49},"in_reply_to":"5faad753_afc23e84","updated":"2019-09-18 06:13:40.000000000","message":"\u0027SMALL\u0027 and \u00276GB\u0027 are both $LABEL configured, they are just a string which help to distinguish different vpmem resources (not very related to real size), but I believe admin will not configure the namespaces like this to confuse themselfs.\n\n\nSo I will create ns3 with a different size.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      # pmem_namespaces\u003d$LABEL:$NSNAME[|$NSNAME][,$LABEL:$NSNAME[|$NSNAME]]"},{"line_number":116,"context_line":"      pmem_namespaces \u003d 6GB:ns0|ns1|ns2,SMALL:ns3"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   Configured PMEM namespaces must be created on host manually. $LABEL here"},{"line_number":119,"context_line":"   is used to generate resource class CUSTOM_PMEM_NAMESPACE_$LABEL."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_0f283284","line":119,"range":{"start_line":118,"start_character":64,"end_line":119,"end_character":67},"updated":"2019-09-09 22:41:57.000000000","message":"It needs to be explained more clearly that the conf syntax is allowing the admin to associate one or more namespace \"name\"s with an arbitrary \"label\" that can subsequently be used in a flavor to request one of those namespaces.\n\nI think the detail about CUSTOM_PMEM_NAMESPACE_$LABEL can wait until later when you talk about checking allocations/inventories (L162+).","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":115,"context_line":"      # pmem_namespaces\u003d$LABEL:$NSNAME[|$NSNAME][,$LABEL:$NSNAME[|$NSNAME]]"},{"line_number":116,"context_line":"      pmem_namespaces \u003d 6GB:ns0|ns1|ns2,SMALL:ns3"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"   Configured PMEM namespaces must be created on host manually. $LABEL here"},{"line_number":119,"context_line":"   is used to generate resource class CUSTOM_PMEM_NAMESPACE_$LABEL."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_76ba0edf","line":119,"range":{"start_line":118,"start_character":64,"end_line":119,"end_character":67},"in_reply_to":"5faad753_0f283284","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    Restart ``nova-compute`` service, then Nova will invoke `ndctl`_ to identify"},{"line_number":124,"context_line":"    those PMEM namespaces configured, and report vPMEM resources to placement."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Configure a flavor (Controller)"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_f43fafd3","line":124,"range":{"start_line":123,"start_character":0,"end_line":124,"end_character":78},"updated":"2019-09-09 22:41:57.000000000","message":"I think these need one less leading space to render properly under 3.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    those PMEM namespaces configured, and report vPMEM resources to placement."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Configure a flavor (Controller)"},{"line_number":128,"context_line":"-------------------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Configure a flavor to request one 6GB vPMEM:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_6f60c6cf","line":127,"range":{"start_line":127,"start_character":20,"end_line":127,"end_character":30},"updated":"2019-09-09 22:41:57.000000000","message":"This isn\u0027t really a controller thing. I would just s/ (Controller)//.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    those PMEM namespaces configured, and report vPMEM resources to placement."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Configure a flavor (Controller)"},{"line_number":128,"context_line":"-------------------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Configure a flavor to request one 6GB vPMEM:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_d6be62fe","line":127,"range":{"start_line":127,"start_character":20,"end_line":127,"end_character":30},"in_reply_to":"5faad753_6f60c6cf","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Configure a flavor (Controller)"},{"line_number":128,"context_line":"-------------------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Configure a flavor to request one 6GB vPMEM:"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":".. code-block:: console"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_f4180f82","line":130,"range":{"start_line":130,"start_character":30,"end_line":130,"end_character":44},"updated":"2019-09-09 22:41:57.000000000","message":"and you\u0027re configuring a second flavor to request one 6GB and one SMALL.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Configure a flavor (Controller)"},{"line_number":128,"context_line":"-------------------------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"Configure a flavor to request one 6GB vPMEM:"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":".. code-block:: console"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_d676623f","line":130,"range":{"start_line":130,"start_character":30,"end_line":130,"end_character":44},"in_reply_to":"5faad753_f4180f82","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":".. code-block:: console"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    # openstack flavor set --property hw:pmem\u003d\u0027$LABEL,$LABEL[,$LABEL]\u0027"},{"line_number":135,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB\u0027 my_flavor"},{"line_number":136,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_341f876d","line":134,"range":{"start_line":134,"start_character":4,"end_line":134,"end_character":70},"updated":"2019-09-09 22:41:57.000000000","message":"Because you\u0027re using the `console` format, this renders too similar to the subsequent lines and is confusing.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":".. code-block:: console"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    # openstack flavor set --property hw:pmem\u003d\u0027$LABEL,$LABEL[,$LABEL]\u0027"},{"line_number":135,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB\u0027 my_flavor"},{"line_number":136,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_f6ecbef4","line":134,"range":{"start_line":134,"start_character":4,"end_line":134,"end_character":70},"in_reply_to":"5faad753_341f876d","updated":"2019-09-18 06:13:40.000000000","message":"add a note here","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    # openstack flavor set --property hw:pmem\u003d\u0027$LABEL,$LABEL[,$LABEL]\u0027"},{"line_number":135,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB\u0027 my_flavor"},{"line_number":136,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"If NUMA topology is specified, all vPMEM devices will be put on guest"},{"line_number":139,"context_line":"NUMA node 0, otherwise one NUMA node will be generated automaticly for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_2fa08ef4","line":136,"updated":"2019-09-09 22:41:57.000000000","message":"It would be useful to include an example with more than one of a particular label. Otherwise the admin will wonder whether they need to say\n\n hw:pmem\u003d\u00276GB,SMALL:2\u0027\n\nor something.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    # openstack flavor set --property hw:pmem\u003d\u0027$LABEL,$LABEL[,$LABEL]\u0027"},{"line_number":135,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB\u0027 my_flavor"},{"line_number":136,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"If NUMA topology is specified, all vPMEM devices will be put on guest"},{"line_number":139,"context_line":"NUMA node 0, otherwise one NUMA node will be generated automaticly for"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_b6bc06bc","line":136,"in_reply_to":"5faad753_2fa08ef4","updated":"2019-09-18 06:13:40.000000000","message":"add one more example with:\n  hw:pmem\u003d\u00276GB,6GB\u0027","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"If NUMA topology is specified, all vPMEM devices will be put on guest"},{"line_number":139,"context_line":"NUMA node 0, otherwise one NUMA node will be generated automaticly for"},{"line_number":140,"context_line":"guest by Nova."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_2f3c0e92","line":139,"range":{"start_line":139,"start_character":55,"end_line":139,"end_character":66},"updated":"2019-09-09 22:41:57.000000000","message":"automatically","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"If NUMA topology is specified, all vPMEM devices will be put on guest"},{"line_number":139,"context_line":"NUMA node 0, otherwise one NUMA node will be generated automaticly for"},{"line_number":140,"context_line":"guest by Nova."},{"line_number":141,"context_line":""},{"line_number":142,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_56b112e1","line":139,"range":{"start_line":139,"start_character":55,"end_line":139,"end_character":66},"in_reply_to":"5faad753_2f3c0e92","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Create instance with virtual persistent memory"},{"line_number":144,"context_line":"-----------------------------------------------"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The ``nova-scheduler`` selects a destination host that has vPMEM"},{"line_number":147,"context_line":"available by calling the Placement API for a specific vPMEM resource class"},{"line_number":148,"context_line":"``CUSTOM_PMEM_NAMESPACE_$LABEL`` provided by compute nodes."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":".. code-block:: console"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_4f35cad9","line":148,"range":{"start_line":146,"start_character":0,"end_line":148,"end_character":59},"updated":"2019-09-09 22:41:57.000000000","message":"Again, I think the reader doesn\u0027t need to know this yet. All we care about at this point is that we\u0027re requesting a server using the flavor we configured per the previous section.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":143,"context_line":"Create instance with virtual persistent memory"},{"line_number":144,"context_line":"-----------------------------------------------"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"The ``nova-scheduler`` selects a destination host that has vPMEM"},{"line_number":147,"context_line":"available by calling the Placement API for a specific vPMEM resource class"},{"line_number":148,"context_line":"``CUSTOM_PMEM_NAMESPACE_$LABEL`` provided by compute nodes."},{"line_number":149,"context_line":""},{"line_number":150,"context_line":".. code-block:: console"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_36cd765d","line":148,"range":{"start_line":146,"start_character":0,"end_line":148,"end_character":59},"in_reply_to":"5faad753_4f35cad9","updated":"2019-09-18 06:13:40.000000000","message":"will drop this","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":".. note::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    If you want to use vPMEM inside virtual machine, the guest kernel is recommended"},{"line_number":158,"context_line":"    \u003e\u003d 4.18, PMEM related module should be loaded, and `ndctl`_ utility should also"},{"line_number":159,"context_line":"    be installed."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Checking allocations and inventories for vPMEMs"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_af66beec","line":159,"range":{"start_line":157,"start_character":0,"end_line":159,"end_character":17},"updated":"2019-09-09 22:41:57.000000000","message":"Suggest reword (assuming I\u0027m getting the technical details right):\n\nUsing vPMEM inside a virtual machine requires the following:\n* Guest kernel version 4.18 or higher;\n* The dax_pmem, nd_pmem, device_dax, and nd_btt kernel modules;\n* The `ndctl`_ utility.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":".. note::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    If you want to use vPMEM inside virtual machine, the guest kernel is recommended"},{"line_number":158,"context_line":"    \u003e\u003d 4.18, PMEM related module should be loaded, and `ndctl`_ utility should also"},{"line_number":159,"context_line":"    be installed."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"Checking allocations and inventories for vPMEMs"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_363b3639","line":159,"range":{"start_line":157,"start_character":0,"end_line":159,"end_character":17},"in_reply_to":"5faad753_af66beec","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":177,"context_line":"     +--------------------------------------+------------+------------+"},{"line_number":178,"context_line":"     | uuid                                 | name       | generation |"},{"line_number":179,"context_line":"     +--------------------------------------+------------+------------+"},{"line_number":180,"context_line":"     | 1bc545f9-891f-4930-ab2b-88a56078f4be | jfz1r05h20 |         47 |"},{"line_number":181,"context_line":"     | 7d994aef-680d-43d4-9325-a67c807e648e | jfz1r05h21 |         67 |"},{"line_number":182,"context_line":"     --------------------------------------+------------+------------+"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_ef459618","line":180,"range":{"start_line":180,"start_character":46,"end_line":180,"end_character":56},"updated":"2019-09-09 22:41:57.000000000","message":"suggest using more readable host names","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":177,"context_line":"     +--------------------------------------+------------+------------+"},{"line_number":178,"context_line":"     | uuid                                 | name       | generation |"},{"line_number":179,"context_line":"     +--------------------------------------+------------+------------+"},{"line_number":180,"context_line":"     | 1bc545f9-891f-4930-ab2b-88a56078f4be | jfz1r05h20 |         47 |"},{"line_number":181,"context_line":"     | 7d994aef-680d-43d4-9325-a67c807e648e | jfz1r05h21 |         67 |"},{"line_number":182,"context_line":"     --------------------------------------+------------+------------+"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_b92cf999","line":180,"range":{"start_line":180,"start_character":46,"end_line":180,"end_character":56},"in_reply_to":"5faad753_ef459618","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":181,"context_line":"     | 7d994aef-680d-43d4-9325-a67c807e648e | jfz1r05h21 |         67 |"},{"line_number":182,"context_line":"     --------------------------------------+------------+------------+"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"#. Check the inventory of each resource provider to see resource classes"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"   .. code-block:: console"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_af70fe73","line":184,"updated":"2019-09-09 22:41:57.000000000","message":"This is where it would be appropriate to introduce and explain how the labels correspond to resource class names.","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":181,"context_line":"     | 7d994aef-680d-43d4-9325-a67c807e648e | jfz1r05h21 |         67 |"},{"line_number":182,"context_line":"     --------------------------------------+------------+------------+"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"#. Check the inventory of each resource provider to see resource classes"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"   .. code-block:: console"},{"line_number":187,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_f644beb9","line":184,"in_reply_to":"5faad753_af70fe73","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c4cad85c031a599102f11751b8adfaa1f7c8ffe3","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Caveats"},{"line_number":249,"context_line":"-------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"There are some bugs to be fix [#]_."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1841727"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_2f0aced1","line":251,"range":{"start_line":251,"start_character":26,"end_line":251,"end_character":29},"updated":"2019-09-09 22:41:57.000000000","message":"fixed","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b211cc30ae18dc000ff9973fddd7ff3f6d08d050","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Caveats"},{"line_number":249,"context_line":"-------"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"There are some bugs to be fix [#]_."},{"line_number":252,"context_line":""},{"line_number":253,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1841727"},{"line_number":254,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3fa7e38b_b61886d3","line":251,"range":{"start_line":251,"start_character":26,"end_line":251,"end_character":29},"in_reply_to":"5faad753_2f0aced1","updated":"2019-09-18 06:13:40.000000000","message":"Done","commit_id":"9753616c5f32da62cdcbb607c7f1042b13f7aac7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":5,"context_line":"The virtual persistent memory (vPMEM) feature in Nova allows a deployment"},{"line_number":6,"context_line":"to provide vPMEMs for instances using physical persistent memory (PMEM) that"},{"line_number":7,"context_line":"can provide virtual devices."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"PMEM must be partitioned into `PMEM namespaces`_ for applications to use."},{"line_number":10,"context_line":"This vPMEM feature only uses PMEM namespaces in ``devdax`` mode as QEMU"},{"line_number":11,"context_line":"`vPMEM backends`_. If you want to dive into related notions, the document"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_dd7936fc","line":8,"updated":"2019-09-23 19:16:39.000000000","message":"This should mention that only the libvirt virt driver is currently supported.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   .. code-block:: console"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"     $ sudo ndctl create-namespace -s 6G -m devdax -M mem -n ns3"},{"line_number":52,"context_line":"     {"},{"line_number":53,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":54,"context_line":"         \"mode\":\"devdax\","}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_13557dc6","line":51,"range":{"start_line":51,"start_character":38,"end_line":51,"end_character":40},"updated":"2019-09-23 19:16:39.000000000","message":"wait wait\n\nThis says 6G...","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b19914cc08d55af37b1ec84e7067d4b3ed3f7c9e","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"   .. code-block:: console"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"     $ sudo ndctl create-namespace -s 6G -m devdax -M mem -n ns3"},{"line_number":52,"context_line":"     {"},{"line_number":53,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":54,"context_line":"         \"mode\":\"devdax\","}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_63789cc3","line":51,"range":{"start_line":51,"start_character":38,"end_line":51,"end_character":40},"in_reply_to":"3fa7e38b_13557dc6","updated":"2019-09-24 07:41:14.000000000","message":"I forgot this, it\u0027s should be 64G.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":53,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":54,"context_line":"         \"mode\":\"devdax\","},{"line_number":55,"context_line":"         \"map\":\"mem\","},{"line_number":56,"context_line":"         \"size\":\"64.00 GiB (68.72 GB)\","},{"line_number":57,"context_line":"         \"uuid\":\"2ad458e2-4dd9-4691-8673-707413d280be\","},{"line_number":58,"context_line":"         \"raw_uuid\":\"7e129093-bdf5-4363-9ce5-b79f57c66de6\","},{"line_number":59,"context_line":"         \"daxregion\":{"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_f36301b0","line":56,"range":{"start_line":56,"start_character":17,"end_line":56,"end_character":37},"updated":"2019-09-23 19:16:39.000000000","message":"...but this says 64GiB. That\u0027s not right, is it?\n\nAlso see below.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b19914cc08d55af37b1ec84e7067d4b3ed3f7c9e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":54,"context_line":"         \"mode\":\"devdax\","},{"line_number":55,"context_line":"         \"map\":\"mem\","},{"line_number":56,"context_line":"         \"size\":\"64.00 GiB (68.72 GB)\","},{"line_number":57,"context_line":"         \"uuid\":\"2ad458e2-4dd9-4691-8673-707413d280be\","},{"line_number":58,"context_line":"         \"raw_uuid\":\"7e129093-bdf5-4363-9ce5-b79f57c66de6\","},{"line_number":59,"context_line":"         \"daxregion\":{"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_0eda2f4b","line":56,"range":{"start_line":56,"start_character":17,"end_line":56,"end_character":37},"in_reply_to":"3fa7e38b_f36301b0","updated":"2019-09-24 07:41:14.000000000","message":"I saw you modify it to 1GiB, well It might work.\n\nBut we recommend 2-2-2 nvdimm config for best performance, and in that way we can not create a 1GiB, because the nvdimm will be interleaved and the namespace size must align to interleave-width: 6. This is related to hardware config details, I thought we don\u0027t need explain these things here, right?\n\nI prefer use a real return from ndctl, I\u0027m not sure the \u00271.07\u0027 in the patch set 10 is real value from ndctl. If not, we can still create 64GiB namespace here, and use \u0027LARGE\u0027 label. Is it ok with you?","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":93,"context_line":"         },"},{"line_number":94,"context_line":"         {"},{"line_number":95,"context_line":"             ..."},{"line_number":96,"context_line":"             \"size\":6440353792,"},{"line_number":97,"context_line":"             ..."},{"line_number":98,"context_line":"             \"name\":\"ns2\","},{"line_number":99,"context_line":"             ..."},{"line_number":100,"context_line":"         },"},{"line_number":101,"context_line":"         {"},{"line_number":102,"context_line":"             ..."},{"line_number":103,"context_line":"             \"size\":68717379584,"},{"line_number":104,"context_line":"             ..."},{"line_number":105,"context_line":"             \"name\":\"ns3\","},{"line_number":106,"context_line":"             ..."},{"line_number":107,"context_line":"         }"},{"line_number":108,"context_line":"     ]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_dd637619","line":105,"range":{"start_line":96,"start_character":0,"end_line":105,"end_character":26},"updated":"2019-09-23 19:16:39.000000000","message":"I find these sizes confusing to look at.\n- I have to look really hard to ascertain that they\u0027re different number of digits, so it looks like they could be close to the same number;\n- The fact that they both start with 6 makes it hard for me to reconcile which ones should be associated with the \u00276G\u0027 label below;\n- The fact that we\u0027re calling the bigger one SMALL seems incongruous.\n\nCan we maybe make the SMALL one like 1GB or something?","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"50116b2a9d95357706e89167124e70edd3098556","unresolved":false,"context_lines":[{"line_number":93,"context_line":"         },"},{"line_number":94,"context_line":"         {"},{"line_number":95,"context_line":"             ..."},{"line_number":96,"context_line":"             \"size\":6440353792,"},{"line_number":97,"context_line":"             ..."},{"line_number":98,"context_line":"             \"name\":\"ns2\","},{"line_number":99,"context_line":"             ..."},{"line_number":100,"context_line":"         },"},{"line_number":101,"context_line":"         {"},{"line_number":102,"context_line":"             ..."},{"line_number":103,"context_line":"             \"size\":68717379584,"},{"line_number":104,"context_line":"             ..."},{"line_number":105,"context_line":"             \"name\":\"ns3\","},{"line_number":106,"context_line":"             ..."},{"line_number":107,"context_line":"         }"},{"line_number":108,"context_line":"     ]"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_bcd21cff","line":105,"range":{"start_line":96,"start_character":0,"end_line":105,"end_character":26},"in_reply_to":"3fa7e38b_dd637619","updated":"2019-09-25 07:30:39.000000000","message":"change to 30GB","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"#. Restart the ``nova-compute`` service."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"   Restart ``nova-compute`` service, then Nova will invoke `ndctl`_ to identify"},{"line_number":128,"context_line":"   those PMEM namespaces configured, and report vPMEM resources to placement."},{"line_number":129,"context_line":""},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_7dd602c6","line":127,"range":{"start_line":127,"start_character":3,"end_line":127,"end_character":42},"updated":"2019-09-23 19:16:39.000000000","message":"redundant","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":139,"context_line":"  $ openstack flavor set --property hw:pmem\u003d\u00276GB,SMALL\u0027 my_flavor_large"},{"line_number":140,"context_line":"  $ openstack flavor set --property hw:pmem\u003d\u00276GB,6GB\u0027 m1.medium"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":".. note::"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"  Follow the format to create a flavor with vPMEMs request:"},{"line_number":145,"context_line":"  openstack flavor set --property hw:pmem\u003d\u0027$LABEL,$LABEL[,$LABEL]\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"If NUMA topology is specified, all vPMEM devices will be put on guest"},{"line_number":148,"context_line":"NUMA node 0, otherwise one NUMA node will be generated automatically for"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_13f1fdcd","line":145,"range":{"start_line":142,"start_character":0,"end_line":145,"end_character":66},"updated":"2019-09-23 19:16:39.000000000","message":"this is probably overkill; just fold the explanation into the description above.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"  Follow the format to create a flavor with vPMEMs request:"},{"line_number":145,"context_line":"  openstack flavor set --property hw:pmem\u003d\u0027$LABEL,$LABEL[,$LABEL]\u0027"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"If NUMA topology is specified, all vPMEM devices will be put on guest"},{"line_number":148,"context_line":"NUMA node 0, otherwise one NUMA node will be generated automatically for"},{"line_number":149,"context_line":"guest by Nova."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Create instance with virtual persistent memory"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_13db3d1b","line":149,"range":{"start_line":147,"start_character":0,"end_line":149,"end_character":14},"updated":"2019-09-23 19:16:39.000000000","message":"this is probably worthy of a .. note::","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":149,"context_line":"guest by Nova."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Create instance with virtual persistent memory"},{"line_number":153,"context_line":"-----------------------------------------------"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Create two instances, first instance requests one 6GB vPMEM, the second"},{"line_number":156,"context_line":"requests one 6GB vPMEM and one SMALL vPMEM:"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":".. code-block:: console"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  $ openstack server create --flavor my_flavor --image ubuntu-bionic --key-name default --network private  server-with-vpmem"},{"line_number":161,"context_line":"  $ openstack server create --flavor my_flavor_large --image ubuntu-bionic --key-name default --network private  server-with-vpmems"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note::"},{"line_number":164,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_d3dda514","line":161,"range":{"start_line":152,"start_character":0,"end_line":161,"end_character":131},"updated":"2019-09-23 19:16:39.000000000","message":"This can probably be folded into the previous section. It\u0027s probably also unnecessary to write out the whole command, as there\u0027s nothing different about it vs. any other server create command.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":".. note::"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"  The information below is only valid from the Train release and only"},{"line_number":179,"context_line":"  for the libvirt driver and QEMU hypervisor. Inventories and allocations"},{"line_number":180,"context_line":"  related to a vPMEM resource class are on the root resource provider related"},{"line_number":181,"context_line":"  to the compute node."},{"line_number":182,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_b386e9da","line":179,"range":{"start_line":178,"start_character":2,"end_line":179,"end_character":45},"updated":"2019-09-23 19:16:39.000000000","message":"This should be at the top.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":212,"context_line":"     | DISK_GB                     |              1.0 |      439 |        0 |         1 |        1 |    439 |"},{"line_number":213,"context_line":"     +-----------------------------+------------------+----------+----------+-----------+----------+--------+"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"     $ openstack resource provider inventory list 7d994aef-680d-43d4-9325-a67c807e648e"},{"line_number":216,"context_line":"     +---------------------------+------------------+----------+----------+-----------+----------+--------+"},{"line_number":217,"context_line":"     | resource_class            | allocation_ratio | max_unit | reserved | step_size | min_unit |  total |"},{"line_number":218,"context_line":"     +---------------------------+------------------+----------+----------+-----------+----------+--------+"},{"line_number":219,"context_line":"     | VCPU                      |             16.0 |       64 |        0 |         1 |        1 |     64 |"},{"line_number":220,"context_line":"     | MEMORY_MB                 |              1.5 |   190604 |      512 |         1 |        1 | 190604 |"},{"line_number":221,"context_line":"     | CUSTOM_PMEM_NAMESPACE_6GB |              1.0 |        3 |        0 |         1 |        1 |      3 |"},{"line_number":222,"context_line":"     | DISK_GB                   |              1.0 |      439 |        0 |         1 |        1 |    439 |"},{"line_number":223,"context_line":"     +---------------------------+------------------+----------+----------+-----------+----------+--------+"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"   Here you can see the vPMEM resource classes, which are started with"},{"line_number":226,"context_line":"   ``CUSTOM_PMEM_NAMESPACE_``, the inventories are located on the root resource"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_93eacd72","line":223,"range":{"start_line":215,"start_character":0,"end_line":223,"end_character":107},"updated":"2019-09-23 19:16:39.000000000","message":"It\u0027s probably just confusing to include this, since we only showed configuring namespaces on one host in the first sections of the doc.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":252,"context_line":"     | 1bc545f9-891f-4930-ab2b-88a56078f4be |         49 | {u\u0027MEMORY_MB\u0027: 8192, u\u0027VCPU\u0027: 8, u\u0027DISK_GB\u0027: 20, u\u0027CUSTOM_PMEM_NAMESPACE_6GB\u0027: 1} |"},{"line_number":253,"context_line":"     +--------------------------------------+------------+-----------------------------------------------------------------------------------+"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"   In this example, two servers were created. server-with-vpmems uses my_flavor"},{"line_number":256,"context_line":"   asking for one 6GB vPMEM and one SMALL vPMEM, server-with-vpmem uses"},{"line_number":257,"context_line":"   my_flavor_large asking for on single 6GB vPMEM. So when looking at the allocations"},{"line_number":258,"context_line":"   for each consumer UUID (which is the server UUID), you can see that one"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_933bade9","line":255,"range":{"start_line":255,"start_character":46,"end_line":255,"end_character":79},"updated":"2019-09-23 19:16:39.000000000","message":"this is backwards","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":253,"context_line":"     +--------------------------------------+------------+-----------------------------------------------------------------------------------+"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"   In this example, two servers were created. server-with-vpmems uses my_flavor"},{"line_number":256,"context_line":"   asking for one 6GB vPMEM and one SMALL vPMEM, server-with-vpmem uses"},{"line_number":257,"context_line":"   my_flavor_large asking for on single 6GB vPMEM. So when looking at the allocations"},{"line_number":258,"context_line":"   for each consumer UUID (which is the server UUID), you can see that one"},{"line_number":259,"context_line":"   ``CUSTOM_PMEM_NAMESPACE_6GB`` resource is assigned to server-with-vpmem,"},{"line_number":260,"context_line":"   one ``CUSTOM_PMEM_NAMESPACE_6GB`` and one ``CUSTOM_PMEM_NAMESPACE_SMALL`` are"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_b33ee9d7","line":257,"range":{"start_line":256,"start_character":49,"end_line":257,"end_character":18},"updated":"2019-09-23 19:16:39.000000000","message":"backwards","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":"   In this example, two servers were created. server-with-vpmems uses my_flavor"},{"line_number":256,"context_line":"   asking for one 6GB vPMEM and one SMALL vPMEM, server-with-vpmem uses"},{"line_number":257,"context_line":"   my_flavor_large asking for on single 6GB vPMEM. So when looking at the allocations"},{"line_number":258,"context_line":"   for each consumer UUID (which is the server UUID), you can see that one"},{"line_number":259,"context_line":"   ``CUSTOM_PMEM_NAMESPACE_6GB`` resource is assigned to server-with-vpmem,"},{"line_number":260,"context_line":"   one ``CUSTOM_PMEM_NAMESPACE_6GB`` and one ``CUSTOM_PMEM_NAMESPACE_SMALL`` are"},{"line_number":261,"context_line":"   assigned to server-with-vpmems."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Caveats"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_132fbda1","line":261,"range":{"start_line":257,"start_character":51,"end_line":261,"end_character":34},"updated":"2019-09-23 19:16:39.000000000","message":"this sentence is probably unnecessary.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":264,"context_line":"Caveats"},{"line_number":265,"context_line":"-------"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"There are some bugs to be fixed [#]_."},{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1841727"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":".. Links"},{"line_number":272,"context_line":".. _`PMEM namespaces`: http://pmem.io/ndctl/ndctl-create-namespace.html"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_3303d911","line":269,"range":{"start_line":267,"start_character":0,"end_line":269,"end_character":51},"updated":"2019-09-23 19:16:39.000000000","message":"I think this should probably go away, as it is likely to become stale very quickly.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"83144866e04c3442f9027ed339ba957df95e91e8","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":".. [#] https://bugs.launchpad.net/nova/+bug/1841727"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":".. Links"},{"line_number":272,"context_line":".. _`PMEM namespaces`: http://pmem.io/ndctl/ndctl-create-namespace.html"},{"line_number":273,"context_line":".. _`vPMEM backends`: https://github.com/qemu/qemu/blob/19b599f7664b2ebfd0f405fb79c14dd241557452/docs/nvdimm.txt#L145"},{"line_number":274,"context_line":".. _`NVDIMM Linux kernel document`: https://www.kernel.org/doc/Documentation/nvdimm/nvdimm.txt"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_ceff3eff","line":271,"range":{"start_line":271,"start_character":0,"end_line":271,"end_character":8},"updated":"2019-09-23 19:16:39.000000000","message":"pretty sure this isn\u0027t doing anything.","commit_id":"533928383f2407cbe1a542bcea1b1005c1be05fc"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Attaching virtual persistent memory to guests"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Starting in the Train release, the virtual persistent memory (vPMEM) feature in"},{"line_number":6,"context_line":"Nova allows a deployment using the libvirt compute driver to provide vPMEMs for"},{"line_number":7,"context_line":"instances using physical persistent memory (PMEM) that can provide virtual"},{"line_number":8,"context_line":"devices."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_206a8fed","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":32},"updated":"2019-09-24 14:32:27.000000000","message":"Rather than doing this, you could use the \u0027versionadded\u0027 directive. Might be a little clearer. In any case, you should give the version number too, e.g. \u0027...in the 20.0.0 (Train) release, ...\u0027","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"50116b2a9d95357706e89167124e70edd3098556","unresolved":false,"context_lines":[{"line_number":2,"context_line":"Attaching virtual persistent memory to guests"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Starting in the Train release, the virtual persistent memory (vPMEM) feature in"},{"line_number":6,"context_line":"Nova allows a deployment using the libvirt compute driver to provide vPMEMs for"},{"line_number":7,"context_line":"instances using physical persistent memory (PMEM) that can provide virtual"},{"line_number":8,"context_line":"devices."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_a102f709","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":32},"in_reply_to":"3fa7e38b_206a8fed","updated":"2019-09-25 07:30:39.000000000","message":"Done","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Dependencies"},{"line_number":19,"context_line":"------------"},{"line_number":20,"context_line":"The following are required to support the vPMEM feature:"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Persistent Memory Hardware"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_409c6b69","line":19,"updated":"2019-09-24 14:32:27.000000000","message":"nit: can you put a newline under here, please","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"50116b2a9d95357706e89167124e70edd3098556","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Dependencies"},{"line_number":19,"context_line":"------------"},{"line_number":20,"context_line":"The following are required to support the vPMEM feature:"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Persistent Memory Hardware"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_5c06881f","line":19,"in_reply_to":"3fa7e38b_409c6b69","updated":"2019-09-25 07:30:39.000000000","message":"Done","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Persistent Memory Hardware"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  One such product is Intel® Optane™ DC Persistent Memory. `ipmctl`_ is used to configure it."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Linux Kernel version \u003e\u003d 4.18 with the following modules loaded:"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_8096e34b","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":93},"updated":"2019-09-24 14:32:27.000000000","message":"nit: wrapping","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"50116b2a9d95357706e89167124e70edd3098556","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"* Persistent Memory Hardware"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  One such product is Intel® Optane™ DC Persistent Memory. `ipmctl`_ is used to configure it."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Linux Kernel version \u003e\u003d 4.18 with the following modules loaded:"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_bc145c45","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":93},"in_reply_to":"3fa7e38b_8096e34b","updated":"2019-09-25 07:30:39.000000000","message":"Done","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  One such product is Intel® Optane™ DC Persistent Memory. `ipmctl`_ is used to configure it."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Linux Kernel version \u003e\u003d 4.18 with the following modules loaded:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  .. code-block:: console"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    $ lsmod |grep pmem"},{"line_number":31,"context_line":"    dax_pmem               16384  1"},{"line_number":32,"context_line":"    nd_pmem                20480  0"},{"line_number":33,"context_line":"    device_dax             20480  2 dax_pmem"},{"line_number":34,"context_line":"    nd_btt                 24576  1 nd_pmem"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* QEMU version \u003e\u003d 3.1.0"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_e09b1763","line":34,"range":{"start_line":26,"start_character":65,"end_line":34,"end_character":43},"updated":"2019-09-24 14:32:27.000000000","message":"Rather than doing this, can you just say:\n\n  loaded: ``dax_pmem``, ``nd_pmem``","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"50116b2a9d95357706e89167124e70edd3098556","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"  One such product is Intel® Optane™ DC Persistent Memory. `ipmctl`_ is used to configure it."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"* Linux Kernel version \u003e\u003d 4.18 with the following modules loaded:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  .. code-block:: console"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    $ lsmod |grep pmem"},{"line_number":31,"context_line":"    dax_pmem               16384  1"},{"line_number":32,"context_line":"    nd_pmem                20480  0"},{"line_number":33,"context_line":"    device_dax             20480  2 dax_pmem"},{"line_number":34,"context_line":"    nd_btt                 24576  1 nd_pmem"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* QEMU version \u003e\u003d 3.1.0"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_1c2570ab","line":34,"range":{"start_line":26,"start_character":65,"end_line":34,"end_character":43},"in_reply_to":"3fa7e38b_e09b1763","updated":"2019-09-25 07:30:39.000000000","message":"Done","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Configure PMEM namespaces (Compute)"},{"line_number":46,"context_line":"-----------------------------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Create PMEM namespaces as `vPMEM backends`_ using the `ndctl`_ utility. For"},{"line_number":49,"context_line":"   example, to create a 1GiB namespace named ``ns3``:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   .. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_00643349","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":3},"updated":"2019-09-24 14:32:27.000000000","message":"This is a huge nit, but I\u0027ve found doing things in a bullet point fashion like this tends to make things harder to read. I think this would read better if you dropped the bullet points and kept the somewhat conversational style you have here. Note that you don\u0027t have it for the \"configure flavor\" section and that reads just fine","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"c248d9121309d7ff454f24bf260f2198101f57a2","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Configure PMEM namespaces (Compute)"},{"line_number":46,"context_line":"-----------------------------------"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Create PMEM namespaces as `vPMEM backends`_ using the `ndctl`_ utility. For"},{"line_number":49,"context_line":"   example, to create a 1GiB namespace named ``ns3``:"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   .. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_219cc75b","line":48,"range":{"start_line":48,"start_character":0,"end_line":48,"end_character":3},"in_reply_to":"3fa7e38b_00643349","updated":"2019-09-25 06:43:28.000000000","message":"This will be formed to \u00271.\u0027 and \u00272.\u0027 and so on, not bullet point, so it\u0027s not hard for read. \u0027configure flavor\u0027 part is simple and short, so we don\u0027t use this. Here we have tree steps, it would be better to separate them.","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   .. code-block:: console"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"     $ sudo ndctl create-namespace -s 1G -m devdax -M mem -n ns3"},{"line_number":54,"context_line":"     {"},{"line_number":55,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":56,"context_line":"         \"mode\":\"devdax\","}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_00baf3bf","line":53,"range":{"start_line":53,"start_character":4,"end_line":53,"end_character":5},"updated":"2019-09-24 14:32:27.000000000","message":"For all of these, can you indent by another space or two. It\u0027s just easier to read","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"c248d9121309d7ff454f24bf260f2198101f57a2","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"   .. code-block:: console"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"     $ sudo ndctl create-namespace -s 1G -m devdax -M mem -n ns3"},{"line_number":54,"context_line":"     {"},{"line_number":55,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":56,"context_line":"         \"mode\":\"devdax\","}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_c1a4d3a8","line":53,"range":{"start_line":53,"start_character":4,"end_line":53,"end_character":5},"in_reply_to":"3fa7e38b_00baf3bf","updated":"2019-09-25 06:43:28.000000000","message":"sure.","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"b19914cc08d55af37b1ec84e7067d4b3ed3f7c9e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":56,"context_line":"         \"mode\":\"devdax\","},{"line_number":57,"context_line":"         \"map\":\"mem\","},{"line_number":58,"context_line":"         \"size\":\"1.00 GiB (1.07 GB)\","},{"line_number":59,"context_line":"         \"uuid\":\"2ad458e2-4dd9-4691-8673-707413d280be\","},{"line_number":60,"context_line":"         \"raw_uuid\":\"7e129093-bdf5-4363-9ce5-b79f57c66de6\","},{"line_number":61,"context_line":"         \"daxregion\":{"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_ce2417b2","line":58,"range":{"start_line":58,"start_character":27,"end_line":58,"end_character":34},"updated":"2019-09-24 07:41:14.000000000","message":"Is this a real return from ndctl?","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b6aab90fbb2298427a6accc2fceb0ed2184d4adf","unresolved":false,"context_lines":[{"line_number":55,"context_line":"         \"dev\":\"namespace1.1\","},{"line_number":56,"context_line":"         \"mode\":\"devdax\","},{"line_number":57,"context_line":"         \"map\":\"mem\","},{"line_number":58,"context_line":"         \"size\":\"1.00 GiB (1.07 GB)\","},{"line_number":59,"context_line":"         \"uuid\":\"2ad458e2-4dd9-4691-8673-707413d280be\","},{"line_number":60,"context_line":"         \"raw_uuid\":\"7e129093-bdf5-4363-9ce5-b79f57c66de6\","},{"line_number":61,"context_line":"         \"daxregion\":{"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_0ac3d139","line":58,"range":{"start_line":58,"start_character":27,"end_line":58,"end_character":34},"in_reply_to":"3fa7e38b_ce2417b2","updated":"2019-09-25 21:07:06.000000000","message":"no, I totally made it up :P","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"   Configured PMEM namespaces must have already been created on the host as"},{"line_number":123,"context_line":"   described above. The conf syntax allows the admin to associate one or more"},{"line_number":124,"context_line":"   namespace ``$NSNAME``\\ s with an arbitrary ``$LABEL`` that can subsequently be"},{"line_number":125,"context_line":"   used in a flavor to request one of those namespaces. It is recommended, but"},{"line_number":126,"context_line":"   not required, for namespaces under a single ``$LABEL`` to be the same size."},{"line_number":127,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_8057c358","line":124,"range":{"start_line":124,"start_character":78,"end_line":124,"end_character":81},"updated":"2019-09-24 14:32:27.000000000","message":"nit: wrapping","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":156,"context_line":".. note::"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"  Using vPMEM inside a virtual machine requires the following:"},{"line_number":159,"context_line":"      * Guest kernel version 4.18 or higher;"},{"line_number":160,"context_line":"      * The dax_pmem, nd_pmem, device_dax, and nd_btt kernel modules;"},{"line_number":161,"context_line":"      * The `ndctl`_ utility."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note:: When resizing an instance with vPMEMs, the vPMEM data won\u0027t be"},{"line_number":164,"context_line":"          migrated."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_e0ec7790","line":161,"range":{"start_line":159,"start_character":0,"end_line":161,"end_character":29},"updated":"2019-09-24 14:32:27.000000000","message":"you need to dedent this and add a newline above or it won\u0027t render properly\n\n   Using vPMEM inside...\n\n   * Guest kernel version 4.18 or higher\n   ...","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"50116b2a9d95357706e89167124e70edd3098556","unresolved":false,"context_lines":[{"line_number":156,"context_line":".. note::"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"  Using vPMEM inside a virtual machine requires the following:"},{"line_number":159,"context_line":"      * Guest kernel version 4.18 or higher;"},{"line_number":160,"context_line":"      * The dax_pmem, nd_pmem, device_dax, and nd_btt kernel modules;"},{"line_number":161,"context_line":"      * The `ndctl`_ utility."},{"line_number":162,"context_line":""},{"line_number":163,"context_line":".. note:: When resizing an instance with vPMEMs, the vPMEM data won\u0027t be"},{"line_number":164,"context_line":"          migrated."}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_1c7330b3","line":161,"range":{"start_line":159,"start_character":0,"end_line":161,"end_character":29},"in_reply_to":"3fa7e38b_e0ec7790","updated":"2019-09-25 07:30:39.000000000","message":"Done","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Checking allocations and inventories for vPMEMs"},{"line_number":168,"context_line":"-----------------------------------------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":".. note::"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  Inventories and allocations related to vPMEM resource classes are on the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_40fb0b46","line":169,"updated":"2019-09-24 14:32:27.000000000","message":"Can you add an introductory statement about what you\u0027re trying to achieve and why you\u0027d want to do this?","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"c248d9121309d7ff454f24bf260f2198101f57a2","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Checking allocations and inventories for vPMEMs"},{"line_number":168,"context_line":"-----------------------------------------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":".. note::"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  Inventories and allocations related to vPMEM resource classes are on the"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_41330315","line":169,"in_reply_to":"3fa7e38b_40fb0b46","updated":"2019-09-25 06:43:28.000000000","message":"sure","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fdaaa3847c917c39572a98c8522d468b23e795e5","unresolved":false,"context_lines":[{"line_number":172,"context_line":"  Inventories and allocations related to vPMEM resource classes are on the"},{"line_number":173,"context_line":"  root resource provider related to the compute node."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"#. Get the list of resource providers"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   .. code-block:: console"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_60f88748","line":175,"range":{"start_line":175,"start_character":0,"end_line":175,"end_character":3},"updated":"2019-09-24 14:32:27.000000000","message":"Same comment abut dropping the bullet points","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":23598,"name":"Zhong Luyao","email":"luyao.zhong@intel.com","username":"ZhongLuyao"},"change_message_id":"c248d9121309d7ff454f24bf260f2198101f57a2","unresolved":false,"context_lines":[{"line_number":172,"context_line":"  Inventories and allocations related to vPMEM resource classes are on the"},{"line_number":173,"context_line":"  root resource provider related to the compute node."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"#. Get the list of resource providers"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"   .. code-block:: console"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"3fa7e38b_412d43fc","line":175,"range":{"start_line":175,"start_character":0,"end_line":175,"end_character":3},"in_reply_to":"3fa7e38b_60f88748","updated":"2019-09-25 06:43:28.000000000","message":"replied on the same comments above","commit_id":"fb2326dbcd4b6f285a86f1054ba3cb2f584f72f5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b6aab90fbb2298427a6accc2fceb0ed2184d4adf","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":".. versionadded:: 20.0.0 (Train)"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Starting in the 20.0.0 (Train) release, the virtual persistent memory (vPMEM)"},{"line_number":8,"context_line":"feature in Nova allows a deployment using the libvirt compute driver to provide"},{"line_number":9,"context_line":"vPMEMs for instances using physical persistent memory (PMEM) that can provide"},{"line_number":10,"context_line":"virtual devices."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_aaecfd8e","line":7,"range":{"start_line":7,"start_character":16,"end_line":7,"end_character":30},"updated":"2019-09-25 21:07:06.000000000","message":"this is slightly redundant now, but I think it reads okay.","commit_id":"7ed5d81a36cdf554d2d8d1333262d445df34b4ad"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b6aab90fbb2298427a6accc2fceb0ed2184d4adf","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":".. note::"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"  Using vPMEM inside a virtual machine requires the following:"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"  * Guest kernel version 4.18 or higher;"},{"line_number":161,"context_line":"  * The ``dax_pmem``, ``nd_pmem``, ``device_dax``, and ``nd_btt`` kernel"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_6a02853f","line":158,"updated":"2019-09-25 21:07:06.000000000","message":"added newline to make the bullet list render properly.","commit_id":"7ed5d81a36cdf554d2d8d1333262d445df34b4ad"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b6aab90fbb2298427a6accc2fceb0ed2184d4adf","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"Verify inventories and allocations"},{"line_number":170,"context_line":"----------------------------------"},{"line_number":171,"context_line":"This section describes how to check that:"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"* vPMEM inventories were created correctly in placement, validating the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3fa7e38b_2af80d47","line":170,"updated":"2019-09-25 21:07:06.000000000","message":"Twiddled this for grammar/flow and added links. Not super happy with it, but it\u0027ll do.","commit_id":"7ed5d81a36cdf554d2d8d1333262d445df34b4ad"}]}
