)]}'
{"specs/newton/approved/hugepages-api.rst":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"087b5b58d4a083fc885e2f5805550a91fba6fc0a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As an administrator, I want to view available hugepage resource on a given"},{"line_number":39,"context_line":"hupervisor, so I can determine the number of instances I can theoretically"},{"line_number":40,"context_line":"boot."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"1. User issues ```nova hypervisor-show``` or ```nova hypervisor-list```"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_f57b3d26","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":10},"updated":"2016-04-14 12:14:18.000000000","message":"hypervisor","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4bc5700bda797122404f06e9d5c979661e36a236","unresolved":false,"context_lines":[{"line_number":36,"context_line":"---------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"As an administrator, I want to view available hugepage resource on a given"},{"line_number":39,"context_line":"hupervisor, so I can determine the number of instances I can theoretically"},{"line_number":40,"context_line":"boot."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"1. User issues ```nova hypervisor-show``` or ```nova hypervisor-list```"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_2cd0c7f5","line":39,"range":{"start_line":39,"start_character":0,"end_line":39,"end_character":10},"in_reply_to":"5a18252c_f57b3d26","updated":"2016-04-14 13:25:21.000000000","message":"Done","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"087b5b58d4a083fc885e2f5805550a91fba6fc0a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        ]"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"If there are no available hugepages, no error is raised and an empty list is"},{"line_number":125,"context_line":"returned instead."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"A list of hugepages assigned to the given instance is returned along with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_152999e6","line":124,"range":{"start_line":124,"start_character":16,"end_line":124,"end_character":25},"updated":"2016-04-14 12:14:18.000000000","message":"this means the node not support hugepage? not no avaliable?","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4bc5700bda797122404f06e9d5c979661e36a236","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        ]"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"If there are no available hugepages, no error is raised and an empty list is"},{"line_number":125,"context_line":"returned instead."},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"A list of hugepages assigned to the given instance is returned along with"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_6ced9fb6","line":124,"range":{"start_line":124,"start_character":16,"end_line":124,"end_character":25},"in_reply_to":"5a18252c_152999e6","updated":"2016-04-14 13:25:21.000000000","message":"Good point. Fixed.","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"087b5b58d4a083fc885e2f5805550a91fba6fc0a","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"            ... other server resource properties ..."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            \"os-hugepages:hugepages\": ["},{"line_number":141,"context_line":"                {"},{"line_number":142,"context_line":"                    \"node\": 0,"},{"line_number":143,"context_line":"                    \"size\": \"2M\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_d539e1f3","line":140,"range":{"start_line":140,"start_character":13,"end_line":140,"end_character":15},"updated":"2016-04-14 12:14:18.000000000","message":"hugepages should be fine?","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4bc5700bda797122404f06e9d5c979661e36a236","unresolved":false,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"            ... other server resource properties ..."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            \"os-hugepages:hugepages\": ["},{"line_number":141,"context_line":"                {"},{"line_number":142,"context_line":"                    \"node\": 0,"},{"line_number":143,"context_line":"                    \"size\": \"2M\","}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_0c818bc3","line":140,"range":{"start_line":140,"start_character":13,"end_line":140,"end_character":15},"in_reply_to":"5a18252c_d539e1f3","updated":"2016-04-14 13:25:21.000000000","message":"Done","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"0ba127ec9b4128cf7906d48eb4dc866949425011","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Developer impact"},{"line_number":185,"context_line":"----------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"None"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_907bf7f4","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":4},"updated":"2016-04-14 12:23:45.000000000","message":"all virt driver need to consider support this update as well?","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"4bc5700bda797122404f06e9d5c979661e36a236","unresolved":false,"context_lines":[{"line_number":184,"context_line":"Developer impact"},{"line_number":185,"context_line":"----------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"None"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a18252c_cc19538a","line":187,"range":{"start_line":187,"start_character":0,"end_line":187,"end_character":4},"in_reply_to":"5a18252c_907bf7f4","updated":"2016-04-14 13:25:21.000000000","message":"Done","commit_id":"d9a1955001f7ba513a7785967a400194d473b405"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1351876405cc47b757766fe99c59d1873fe38318","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/hugepages-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Expose the number, type and affinity of hugepages available, as currently stored"},{"line_number":14,"context_line":"in the database, via the API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Problem description"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_bca1a1fa","line":13,"range":{"start_line":13,"start_character":73,"end_line":13,"end_character":74},"updated":"2016-04-20 01:39:04.000000000","message":"The test is failing because you need to break the line here, there are \u003e 79 chars on this line.  (I think lines 124 and 150 have the same problem.)","commit_id":"7384fe707991d3d572434491475e78d70580f2cb"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"6dd817c590af74d3039bdbe2bc37bdf3364feded","unresolved":false,"context_lines":[{"line_number":150,"context_line":"If there are no associated hugepages, no error is raised and an empty list is"},{"line_number":151,"context_line":"returned instead."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"No changes are required to the API policies."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Security impact"},{"line_number":156,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_d169dafa","line":153,"updated":"2016-05-20 15:27:14.000000000","message":"hugepages would be behind a default admin only policy? This seems like an information leak otherwise.","commit_id":"801b4115b63714a3e5f1942204097af75787fd91"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e9a6fc64a3212aeaaeb225465dbc0282e369666e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"If there are no associated hugepages, no error is raised and an empty list is"},{"line_number":151,"context_line":"returned instead."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"No changes are required to the API policies."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"Security impact"},{"line_number":156,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_85851bd0","line":153,"in_reply_to":"bab6814e_d169dafa","updated":"2016-05-23 09:45:24.000000000","message":"Done","commit_id":"801b4115b63714a3e5f1942204097af75787fd91"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"6dd817c590af74d3039bdbe2bc37bdf3364feded","unresolved":false,"context_lines":[{"line_number":217,"context_line":"Testing"},{"line_number":218,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"As we are merely exposing existing data, only API tests will be required."},{"line_number":221,"context_line":""},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_b12d36aa","line":220,"updated":"2016-05-20 15:27:14.000000000","message":"Right, there should be new API functional tests for this. It\u0027s just API \u003c-\u003e DB round tripping, but we should make sure we do that reasonably.","commit_id":"801b4115b63714a3e5f1942204097af75787fd91"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"90b66933908b0832ce398c22cfce2ee2af5c2ad6","unresolved":false,"context_lines":[{"line_number":229,"context_line":"References"},{"line_number":230,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"* * `resource-classes` blueprint: http://git.openstack.org/cgit/openstack/nova-specs/tree/specs/mitaka/approved/resource-classes.rst"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_1caa2219","line":232,"range":{"start_line":232,"start_character":2,"end_line":232,"end_character":3},"updated":"2016-04-20 18:48:54.000000000","message":"nit: don\u0027t think you need this extra asterisk","commit_id":"801b4115b63714a3e5f1942204097af75787fd91"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e9a6fc64a3212aeaaeb225465dbc0282e369666e","unresolved":false,"context_lines":[{"line_number":229,"context_line":"References"},{"line_number":230,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"* * `resource-classes` blueprint: http://git.openstack.org/cgit/openstack/nova-specs/tree/specs/mitaka/approved/resource-classes.rst"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"History"}],"source_content_type":"text/x-rst","patch_set":4,"id":"bab6814e_85ea3b72","line":232,"range":{"start_line":232,"start_character":2,"end_line":232,"end_character":3},"in_reply_to":"1a122d0e_1caa2219","updated":"2016-05-23 09:45:24.000000000","message":"Done","commit_id":"801b4115b63714a3e5f1942204097af75787fd91"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65fbc4b9e72d35ab9bfbdf4a220448e347621ace","unresolved":false,"context_lines":[{"line_number":40,"context_line":"boot."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"1. User issues ```nova hypervisor-show``` or ```nova hypervisor-list```"},{"line_number":43,"context_line":"   command"},{"line_number":44,"context_line":"2. System retrieves the hypervisor information from the database"},{"line_number":45,"context_line":"3. System outputs the list of the devices to CLI, web UI or management"},{"line_number":46,"context_line":"   application. The description in the list consists of the following:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_055c0fec","line":43,"updated":"2016-05-30 13:50:28.000000000","message":"Have you considered extending nova host-describe output as well? That also contains memory information about the host.","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6dc70c5cb9fdf6d8d2fe59a9c05bf86b4ae1ac4e","unresolved":false,"context_lines":[{"line_number":40,"context_line":"boot."},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"1. User issues ```nova hypervisor-show``` or ```nova hypervisor-list```"},{"line_number":43,"context_line":"   command"},{"line_number":44,"context_line":"2. System retrieves the hypervisor information from the database"},{"line_number":45,"context_line":"3. System outputs the list of the devices to CLI, web UI or management"},{"line_number":46,"context_line":"   application. The description in the list consists of the following:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_2969258c","line":43,"in_reply_to":"9abb7d3a_055c0fec","updated":"2016-05-31 10:17:01.000000000","message":"I hadn\u0027t heard of \u0027host-describe\u0027 before, but based on the admin guide [1] I don\u0027t think it\u0027s a good fit. \u0027host-describe\u0027 seems like a very high level compared to \u0027hypervisor-show\u0027: the former does not expose things like CPU models or vendor, while the latter does.","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65fbc4b9e72d35ab9bfbdf4a220448e347621ace","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Hugepages available per NUMA node"},{"line_number":49,"context_line":"   * Hugepages used per NUMA node"},{"line_number":50,"context_line":"   * Hugepages total per NUMA node"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"As an administrator, I want to view hugepages associated with instances, so I"},{"line_number":53,"context_line":"can determine which instances are using which resources."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_c52fa73c","line":50,"updated":"2016-05-30 13:50:28.000000000","message":"I guess you want to provide the size of the huge page.","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6dc70c5cb9fdf6d8d2fe59a9c05bf86b4ae1ac4e","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"   * Hugepages available per NUMA node"},{"line_number":49,"context_line":"   * Hugepages used per NUMA node"},{"line_number":50,"context_line":"   * Hugepages total per NUMA node"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"As an administrator, I want to view hugepages associated with instances, so I"},{"line_number":53,"context_line":"can determine which instances are using which resources."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_490589ba","line":50,"in_reply_to":"9abb7d3a_c52fa73c","updated":"2016-05-31 10:17:01.000000000","message":"Good catch. I do, as shown in the \u0027Rest API Impact\u0027 section. Updated.","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65fbc4b9e72d35ab9bfbdf4a220448e347621ace","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        ... other hypervisor resource properties ..."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        \"hugepages_total\": ["},{"line_number":103,"context_line":"            {"},{"line_number":104,"context_line":"                \"node\": 0,"},{"line_number":105,"context_line":"                \"size\": \"2M\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_c5b967cd","line":102,"range":{"start_line":102,"start_character":9,"end_line":102,"end_character":24},"updated":"2016-05-30 13:50:28.000000000","message":"I suggest simply call it \u0027hugepages\u0027 as it already has \u0027total\u0027 subkey","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6dc70c5cb9fdf6d8d2fe59a9c05bf86b4ae1ac4e","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        ... other hypervisor resource properties ..."},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        \"hugepages_total\": ["},{"line_number":103,"context_line":"            {"},{"line_number":104,"context_line":"                \"node\": 0,"},{"line_number":105,"context_line":"                \"size\": \"2M\","}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_290005aa","line":102,"range":{"start_line":102,"start_character":9,"end_line":102,"end_character":24},"in_reply_to":"9abb7d3a_c5b967cd","updated":"2016-05-31 10:17:01.000000000","message":"Replaced with \u0027mempages\u0027","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65fbc4b9e72d35ab9bfbdf4a220448e347621ace","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                \"node\": 0,"},{"line_number":105,"context_line":"                \"size\": \"2M\","},{"line_number":106,"context_line":"                \"total\": 1024,"},{"line_number":107,"context_line":"                \"avail\": 512"},{"line_number":108,"context_line":"            },"},{"line_number":109,"context_line":"            {"},{"line_number":110,"context_line":"                \"node\": 0,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_0539af41","line":107,"range":{"start_line":107,"start_character":17,"end_line":107,"end_character":22},"updated":"2016-05-30 13:50:28.000000000","message":"can we use full words i.e. \u0027available\u0027 instead?","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6dc70c5cb9fdf6d8d2fe59a9c05bf86b4ae1ac4e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                \"node\": 0,"},{"line_number":105,"context_line":"                \"size\": \"2M\","},{"line_number":106,"context_line":"                \"total\": 1024,"},{"line_number":107,"context_line":"                \"avail\": 512"},{"line_number":108,"context_line":"            },"},{"line_number":109,"context_line":"            {"},{"line_number":110,"context_line":"                \"node\": 0,"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_09226152","line":107,"range":{"start_line":107,"start_character":17,"end_line":107,"end_character":22},"in_reply_to":"9abb7d3a_0539af41","updated":"2016-05-31 10:17:01.000000000","message":"Done","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65fbc4b9e72d35ab9bfbdf4a220448e347621ace","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            }"},{"line_number":121,"context_line":"        ]"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"If the host does not support hugepages, no error is raised and an empty list is"},{"line_number":125,"context_line":"returned instead."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_e512abb3","line":123,"updated":"2016-05-30 13:50:28.000000000","message":"Will we add the 4k pages to this output as well?","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6dc70c5cb9fdf6d8d2fe59a9c05bf86b4ae1ac4e","unresolved":false,"context_lines":[{"line_number":120,"context_line":"            }"},{"line_number":121,"context_line":"        ]"},{"line_number":122,"context_line":"    }"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"If the host does not support hugepages, no error is raised and an empty list is"},{"line_number":125,"context_line":"returned instead."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_4c0597ba","line":123,"in_reply_to":"9abb7d3a_e512abb3","updated":"2016-05-31 10:17:01.000000000","message":"Done","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"65fbc4b9e72d35ab9bfbdf4a220448e347621ace","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If there are no associated hugepages, no error is raised and an empty list is"},{"line_number":151,"context_line":"returned instead."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"This API will be exposed behind a default admin-only policy."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_7b549820","line":151,"updated":"2016-05-30 13:50:28.000000000","message":"do we want to handle 4k pages and huge pages separately? For me this is just an arbitrary separation as every page size (4k, 2M, 1G) create a separate memory pool with similar representation on the NUMA side.","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6dc70c5cb9fdf6d8d2fe59a9c05bf86b4ae1ac4e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    }"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"If there are no associated hugepages, no error is raised and an empty list is"},{"line_number":151,"context_line":"returned instead."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"This API will be exposed behind a default admin-only policy."},{"line_number":154,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abb7d3a_cc27c762","line":151,"in_reply_to":"9abb7d3a_7b549820","updated":"2016-05-31 10:17:01.000000000","message":"They\u0027re essentially the same thing from a hypervisor perspective and can be requested the same way. I think we should and I\u0027ve done so.","commit_id":"2d100b67528cd12008d52bcebb87e12669522d2e"}],"specs/newton/approved/mempages-api.rst":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"26e0a2c41d7f859cbf0e8ea322e9654968760caf","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"   * Memory pages assigned per NUMA node, per size"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"As an administrator, I want to view available mempage resources on all"},{"line_number":65,"context_line":"available hypervisors, so I can track this as part of an inventory"},{"line_number":66,"context_line":"managment system."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9abb7d3a_9beb2ab0","line":64,"updated":"2016-05-30 22:20:36.000000000","message":"Hum I think you should to add a note in Performance impact since the number of hypervisors x number of instances can make computing this information heavy.","commit_id":"c8eda3af871768fee9ebf6f0a50ce380951f5be7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"409f4a3e1efd0a271d6edfa97e09d6de2f417c01","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"   * Memory pages assigned per NUMA node, per size"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"As an administrator, I want to view available mempage resources on all"},{"line_number":65,"context_line":"available hypervisors, so I can track this as part of an inventory"},{"line_number":66,"context_line":"managment system."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9abb7d3a_6d3cbee2","line":64,"in_reply_to":"9abb7d3a_9beb2ab0","updated":"2016-05-31 08:51:13.000000000","message":"This information appears to be already being tracked. We store a stringified \u0027numa_topology\u0027 in \u0027nova/objects/compute_node.py\u0027. Mempages are part of the object version of this, as seen in \u0027nova/objects/numa.py\u0027 (specifically, \u0027NUMAPagesTopology\u0027 which is part of \u0027NUMACell\u0027). It shouldn\u0027t require additional processing to retrieve this. Updated section to reflect this.","commit_id":"c8eda3af871768fee9ebf6f0a50ce380951f5be7"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"26e0a2c41d7f859cbf0e8ea322e9654968760caf","unresolved":false,"context_lines":[{"line_number":126,"context_line":"If the host does not support mempages, no error is raised and an empty list is"},{"line_number":127,"context_line":"returned instead."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"A list of memepages assigned to the given instance is returned along with"},{"line_number":130,"context_line":"the instance\u0027s detailed information ::"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    GET /servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9abb7d3a_3baf9e82","line":129,"updated":"2016-05-30 22:20:36.000000000","message":"s/memepages/mempages","commit_id":"c8eda3af871768fee9ebf6f0a50ce380951f5be7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"409f4a3e1efd0a271d6edfa97e09d6de2f417c01","unresolved":false,"context_lines":[{"line_number":126,"context_line":"If the host does not support mempages, no error is raised and an empty list is"},{"line_number":127,"context_line":"returned instead."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"A list of memepages assigned to the given instance is returned along with"},{"line_number":130,"context_line":"the instance\u0027s detailed information ::"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    GET /servers/{server_id}"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9abb7d3a_e8bffcf8","line":129,"in_reply_to":"9abb7d3a_3baf9e82","updated":"2016-05-31 08:51:13.000000000","message":"Done","commit_id":"c8eda3af871768fee9ebf6f0a50ce380951f5be7"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"af35a84fcbf48539c99982fb8346f30803c67d35","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                \"available\": 0"},{"line_number":122,"context_line":"            }"},{"line_number":123,"context_line":"        ]"},{"line_number":124,"context_line":"    }"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"If the host does not support mempages, no error is raised and an empty list is"},{"line_number":127,"context_line":"returned instead."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_74a2be4c","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":5},"updated":"2016-05-31 11:09:29.000000000","message":"There is an obvious correlation to more general NUMA information. eg IIRC, we don\u0027t currently have a way to tell the cloud admin about the NUMA topology of their hosts - eg how many NUMA cells, how many CPUs per cell, and how much RAM per cell, which PCI devices are in which cell, etc, etc.\n\nThis proposed mempages data incorporates NUMA info in the \"node\" field, but is very strictly tailored to reporting of memory information.\n\nIf we\u0027re going to extend the API, I\u0027d rather we considered the problem statement to be \"Report NUMA information about hosts\", of which reporting memory pages is just one data item.","commit_id":"043266b641af938aaf1a37ae23bfd736903d7f4d"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"041e8dc45687873dc7d4da1359c74903a051704b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                \"available\": 0"},{"line_number":122,"context_line":"            }"},{"line_number":123,"context_line":"        ]"},{"line_number":124,"context_line":"    }"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"If the host does not support mempages, no error is raised and an empty list is"},{"line_number":127,"context_line":"returned instead."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_34a94c7c","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":5},"in_reply_to":"9abb7d3a_0dba400a","updated":"2016-05-31 13:28:21.000000000","message":"No, unfortunately that data is mostly useless and/or inaccurate, because it presumes a 100% symmetric topology, which is not the case in the real world. ie if you have 8 CPUs in one numa node and 4 CPUs in another node, this existing data format can\u0027t represent that. So currently the code will lie and just pretend you have only one NUMA node when faced in asymmetric topologies.  To fix this we would really need a structured data format splitting out information per node.","commit_id":"043266b641af938aaf1a37ae23bfd736903d7f4d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ccc363c3751af67e19d8fcc973c9b269f1998775","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                \"available\": 0"},{"line_number":122,"context_line":"            }"},{"line_number":123,"context_line":"        ]"},{"line_number":124,"context_line":"    }"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"If the host does not support mempages, no error is raised and an empty list is"},{"line_number":127,"context_line":"returned instead."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_3d980878","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":5},"in_reply_to":"9abb7d3a_34a94c7c","updated":"2016-05-31 15:05:54.000000000","message":"Fair enough. In that case, John\u0027s comment is probably worth considering: should this wait for the \"scheduler API\", or should we do this now? I\u0027d obviously be in favor of the former, but I don\u0027t want to bring a load of tech debt on my head, heh.","commit_id":"043266b641af938aaf1a37ae23bfd736903d7f4d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"d342ca6fcf1a1888dd1652482c2296d1a7c3e4ac","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                \"available\": 0"},{"line_number":122,"context_line":"            }"},{"line_number":123,"context_line":"        ]"},{"line_number":124,"context_line":"    }"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"If the host does not support mempages, no error is raised and an empty list is"},{"line_number":127,"context_line":"returned instead."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9abb7d3a_0dba400a","line":124,"range":{"start_line":124,"start_character":4,"end_line":124,"end_character":5},"in_reply_to":"9abb7d3a_74a2be4c","updated":"2016-05-31 12:52:51.000000000","message":"This seems to be already possible, as the \u0027hypervisor-show\u0027 commands lists CPU cells, cores, sockets and threads.\n\n    $ nova hypervisor-show 1\n    +---------------------------+------------------------------------------+\n    | Property                  | Value                                    |\n    ...\n    | cpu_info_model            | SandyBridge                              |\n    | cpu_info_topology_cells   | 2                                        |\n    | cpu_info_topology_cores   | 10                                       |\n    | cpu_info_topology_sockets | 1                                        |\n    | cpu_info_topology_threads | 2                                        |\n    | cpu_info_vendor           | Intel                                    |\n    ...\n\nIs there more needed, or is this adequate?","commit_id":"043266b641af938aaf1a37ae23bfd736903d7f4d"}]}
