)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"897ebf78fdf54614a156251c98603e2cc97f4ed3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sudipta Biswas \u003csbiswas7@in.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-07 18:36:52 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Report host memory b/w as a metric in Nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec proposes to introduce host memory b/w as a host metric."},{"line_number":10,"context_line":"Memory b/w can be a essential piece in determining VM performance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aca2d91_8d96cb4a","line":7,"updated":"2015-05-07 15:54:46.000000000","message":"Please spell out \"bandwidth\" at least in the title, and preferably in other places, too. It might be obvious to you what \u0027b/w\u0027 stands for, but I\u0027m a photographer, and I see it as meaning \u0027black and white\u0027. :)","commit_id":"3e29a8a43c8b633a568b140ae04cf616609fa24b"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"749299d8515624abfd8c06e1bac71a1741be58de","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Sudipta Biswas \u003csbiswas7@in.ibm.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-07 18:36:52 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Report host memory b/w as a metric in Nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This spec proposes to introduce host memory b/w as a host metric."},{"line_number":10,"context_line":"Memory b/w can be a essential piece in determining VM performance"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aca2d91_7c7d5b1b","line":7,"in_reply_to":"1aca2d91_8d96cb4a","updated":"2015-05-07 18:55:39.000000000","message":"Slipped my mind. I will make this change! :)","commit_id":"3e29a8a43c8b633a568b140ae04cf616609fa24b"}],"specs/liberty/approved/mem-bw.rst":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"897ebf78fdf54614a156251c98603e2cc97f4ed3","unresolved":false,"context_lines":[{"line_number":132,"context_line":"1. Use platform specific mechanism to obtain the current memory bw"},{"line_number":133,"context_line":"of the system. For example - Power Systems can call specific APIs to"},{"line_number":134,"context_line":"obtain memory b/w utilization of the system. For systems that do not"},{"line_number":135,"context_line":"implement such APIs, the code shall no-op."},{"line_number":136,"context_line":"2. Perform data sampling in the monitoring code to sample the memory"},{"line_number":137,"context_line":"b/w data for a configurable time period."},{"line_number":138,"context_line":"3. Populate the metrics column data by implementing a monitor for host"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aca2d91_0dde3b11","line":135,"updated":"2015-05-07 15:54:46.000000000","message":"Can you give a better idea as to how many different types of systems support this metric? Or is this primarily a Power-only feature?","commit_id":"3e29a8a43c8b633a568b140ae04cf616609fa24b"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"749299d8515624abfd8c06e1bac71a1741be58de","unresolved":false,"context_lines":[{"line_number":132,"context_line":"1. Use platform specific mechanism to obtain the current memory bw"},{"line_number":133,"context_line":"of the system. For example - Power Systems can call specific APIs to"},{"line_number":134,"context_line":"obtain memory b/w utilization of the system. For systems that do not"},{"line_number":135,"context_line":"implement such APIs, the code shall no-op."},{"line_number":136,"context_line":"2. Perform data sampling in the monitoring code to sample the memory"},{"line_number":137,"context_line":"b/w data for a configurable time period."},{"line_number":138,"context_line":"3. Populate the metrics column data by implementing a monitor for host"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1aca2d91_a2706edd","line":135,"in_reply_to":"1aca2d91_0dde3b11","updated":"2015-05-07 18:55:39.000000000","message":"No.  x86 and power servers both have a memory bandwidth metric.  The method to retrieve is platform specific but the metric itself is generic. What we are saying here is - the mechanism of retrieval that this spec would follow is that of the Power systems and leave it as a no-op for Intel based systems until implemented.","commit_id":"3e29a8a43c8b633a568b140ae04cf616609fa24b"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  decisions."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Expose memory b/w as a stat that can be used by metering components"},{"line_number":53,"context_line":"  like Ceilometer."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_0302530b","line":53,"updated":"2015-06-11 10:18:22.000000000","message":"I think we should exclude this use case for the moment, just concentrate on the first use case. That stops us worrying more about APIs and notifications, etc.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4790b7effd42e91337e4f00f49934ca9d482df53","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  decisions."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Expose memory b/w as a stat that can be used by metering components"},{"line_number":53,"context_line":"  like Ceilometer."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1af86dd1_042b0284","line":53,"in_reply_to":"3afb71cf_0302530b","updated":"2015-06-12 10:34:29.000000000","message":"Agreed.\n\nI think that section is just for giving rationales for why you need this, but should not describe the steps\n\nI could propose :\n\"As an operator, I want to weigh my compute nodes based on the reported RAM usage with a better granularity than the single RAM weigher\"\n\nThat way, you should explain why you consider the current RAM weigher not enough good for your needs.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":50,"context_line":"  decisions."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Expose memory b/w as a stat that can be used by metering components"},{"line_number":53,"context_line":"  like Ceilometer."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_24da2c79","line":53,"in_reply_to":"3afb71cf_0302530b","updated":"2015-06-17 17:57:47.000000000","message":"Sure.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4790b7effd42e91337e4f00f49934ca9d482df53","unresolved":false,"context_lines":[{"line_number":57,"context_line":"-----------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This is an important feature for doing intelligent placement for NUMA"},{"line_number":60,"context_line":"based deployments."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1af86dd1_24827e53","line":60,"updated":"2015-06-12 10:34:29.000000000","message":"Just put it None\n\nWhile I appreciate the spec and like it, I don\u0027t think we can consider it for the \u0027scheduler\u0027 priority as we want to reduce the scope to really crucial changes.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":57,"context_line":"-----------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"This is an important feature for doing intelligent placement for NUMA"},{"line_number":60,"context_line":"based deployments."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_c404a0c1","line":60,"in_reply_to":"1af86dd1_24827e53","updated":"2015-06-17 17:57:47.000000000","message":"Ok sure. I am assuming that even if it\u0027s not a scheduler priority, but the code eventually makes it in time - it will be considered?","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":88,"context_line":"ideally follow the host stat collection interval."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"PCP provides the python bindings that would be called via openstack"},{"line_number":91,"context_line":"monitor code in nova to obtain the desired values."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Estimated changes are going to be in the following places:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_f487b6b2","line":91,"updated":"2015-06-11 10:18:22.000000000","message":"I think this is probably too much detail. I think talkbing about the rate being extracted using a python binding ontop of PCP is probably enough.\n\nBut there is a new dependency, which should probably be noted more clearly here. What specific pip package are you picking?","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":88,"context_line":"ideally follow the host stat collection interval."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"PCP provides the python bindings that would be called via openstack"},{"line_number":91,"context_line":"monitor code in nova to obtain the desired values."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Estimated changes are going to be in the following places:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_2479cc2f","line":91,"in_reply_to":"3afb71cf_f487b6b2","updated":"2015-06-17 17:57:47.000000000","message":"It\u0027s the python-pcp module that one can install to get this working.\nI will update the dependency in a better way.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4790b7effd42e91337e4f00f49934ca9d482df53","unresolved":false,"context_lines":[{"line_number":88,"context_line":"ideally follow the host stat collection interval."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"PCP provides the python bindings that would be called via openstack"},{"line_number":91,"context_line":"monitor code in nova to obtain the desired values."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Estimated changes are going to be in the following places:"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1af86dd1_a4dd4e72","line":91,"in_reply_to":"3afb71cf_f487b6b2","updated":"2015-06-12 10:34:29.000000000","message":"Yeah, that whole section implicetly presents a new dependency. From my perspective, monitors are only taking stats from the driver, not from elsewhere. Could you please clarify ?","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4790b7effd42e91337e4f00f49934ca9d482df53","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":96,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":97,"context_line":"  monitor."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"* Optionally evaluate adding the data into the NUMA filter code"},{"line_number":100,"context_line":"  of Openstack."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1af86dd1_a4c42e92","line":97,"updated":"2015-06-12 10:34:29.000000000","message":"Could you please describe the metrics you\u0027re going to add and how to collect them ? (ie. are they already exposed by the driver ?)","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":96,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":97,"context_line":"  monitor."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"* Optionally evaluate adding the data into the NUMA filter code"},{"line_number":100,"context_line":"  of Openstack."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_d41e6eba","line":97,"in_reply_to":"1af86dd1_a4c42e92","updated":"2015-06-17 17:57:47.000000000","message":"These are host specific metrics which are not exposed via the driver atm.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"0e96e8abd35b4fa301ba7f2355987584b99e3c9b","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":96,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":97,"context_line":"  monitor."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"* Optionally evaluate adding the data into the NUMA filter code"},{"line_number":100,"context_line":"  of Openstack."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_3143f7b3","line":97,"in_reply_to":"fa32b979_d41e6eba","updated":"2015-06-18 07:38:47.000000000","message":"The details of what the metric is and how we plan to interpret it is mentioned above. But i guess we want that detail to be removed?","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Other deployer impact"},{"line_number":141,"context_line":"---------------------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Developer impact"},{"line_number":146,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_a7420eac","line":143,"updated":"2015-06-11 10:18:22.000000000","message":"You mention some configuration, its worth mentioning that here. Ideally lets not have any configuration.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Other deployer impact"},{"line_number":141,"context_line":"---------------------"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"None"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"Developer impact"},{"line_number":146,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_9c5d5317","line":143,"in_reply_to":"3afb71cf_a7420eac","updated":"2015-06-17 17:57:47.000000000","message":"Ok, we could go with hard coded time limits to obtain this data atm.\nI guess you referred to that being a configuration aka anything that\u0027s a part of the nova.conf file?","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4790b7effd42e91337e4f00f49934ca9d482df53","unresolved":false,"context_lines":[{"line_number":164,"context_line":"----------"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"1. Use platform specific mechanism to obtain the current memory bw"},{"line_number":167,"context_line":"of the system."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"2. Perform data sampling in the monitoring code to sample the memory"},{"line_number":170,"context_line":"b/w data for a configurable time period."}],"source_content_type":"text/x-rst","patch_set":6,"id":"1af86dd1_2405dec1","line":167,"updated":"2015-06-12 10:34:29.000000000","message":"I strongly disagree with that since the current model is to expose all the interfaces thru the virt drivers. Instead of doing that, I would prefer to amend the virt API to add that","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":164,"context_line":"----------"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"1. Use platform specific mechanism to obtain the current memory bw"},{"line_number":167,"context_line":"of the system."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"2. Perform data sampling in the monitoring code to sample the memory"},{"line_number":170,"context_line":"b/w data for a configurable time period."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_5afa6e76","line":167,"in_reply_to":"1af86dd1_2405dec1","updated":"2015-06-17 17:57:47.000000000","message":"Taking the example of Libvirt as a virt driver.\n\nHost memory b/w cannot be measured at a Virtual Machine level at the moment via Libvirt. Libvirt API collects host kernel scheduler and VM statistics from /proc however it is not designed to support hardware PMU counter based data.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":167,"context_line":"of the system."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"2. Perform data sampling in the monitoring code to sample the memory"},{"line_number":170,"context_line":"b/w data for a configurable time period."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"3. Populate the metrics column data by implementing a monitor for host"},{"line_number":173,"context_line":"memory b/w."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_67f1b694","line":170,"updated":"2015-06-11 10:18:22.000000000","message":"can we just hard code this for now, that should work well for most folks? No is a valid answer, but lets cover this detail.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":167,"context_line":"of the system."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"2. Perform data sampling in the monitoring code to sample the memory"},{"line_number":170,"context_line":"b/w data for a configurable time period."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"3. Populate the metrics column data by implementing a monitor for host"},{"line_number":173,"context_line":"memory b/w."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_1af06690","line":170,"in_reply_to":"3afb71cf_67f1b694","updated":"2015-06-17 17:57:47.000000000","message":"Sure. Will update.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":170,"context_line":"b/w data for a configurable time period."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"3. Populate the metrics column data by implementing a monitor for host"},{"line_number":173,"context_line":"memory b/w."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"4. Optionally evaluate the possibility of using this data as a part of"},{"line_number":176,"context_line":"the NUMA filter scheduler or provide a new filter all together."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_27073e83","line":173,"updated":"2015-06-11 10:18:22.000000000","message":"This should really map to patch sets in gerrit, not need to quite so much detail.\n\nI would say:\n\n* create metrics plugin to sample the memory b/w data","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":170,"context_line":"b/w data for a configurable time period."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"3. Populate the metrics column data by implementing a monitor for host"},{"line_number":173,"context_line":"memory b/w."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"4. Optionally evaluate the possibility of using this data as a part of"},{"line_number":176,"context_line":"the NUMA filter scheduler or provide a new filter all together."}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_9462263d","line":173,"in_reply_to":"3afb71cf_27073e83","updated":"2015-06-17 17:57:47.000000000","message":"Sure.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":173,"context_line":"memory b/w."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"4. Optionally evaluate the possibility of using this data as a part of"},{"line_number":176,"context_line":"the NUMA filter scheduler or provide a new filter all together."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_67765607","line":176,"updated":"2015-06-11 10:18:22.000000000","message":"This spec should say what you aim to do.\n\nPlease reword to:\n\n* Add filters and/or weights in the scheduler so it can use this new data","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":173,"context_line":"memory b/w."},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"4. Optionally evaluate the possibility of using this data as a part of"},{"line_number":176,"context_line":"the NUMA filter scheduler or provide a new filter all together."},{"line_number":177,"context_line":""},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_1c2383a8","line":176,"in_reply_to":"3afb71cf_67765607","updated":"2015-06-17 17:57:47.000000000","message":"Sure will do. On another thought, does this need a new BP for the scheduler part only?","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"1d828637014cb73b99036d58211993264b769e54","unresolved":false,"context_lines":[{"line_number":190,"context_line":"Documentation Impact"},{"line_number":191,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"None"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3afb71cf_e758068c","line":193,"updated":"2015-06-11 10:18:22.000000000","message":"I think you need to tell people how to configure the filters and weights to use the extra data you have.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"4790b7effd42e91337e4f00f49934ca9d482df53","unresolved":false,"context_lines":[{"line_number":190,"context_line":"Documentation Impact"},{"line_number":191,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"None"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1af86dd1_245efee9","line":193,"in_reply_to":"3afb71cf_e758068c","updated":"2015-06-12 10:34:29.000000000","message":"+1, you need to describe the new monitor and the metrics.\n\nActually, the current CPU monitor doesn\u0027t do it, I would love to see a devref section in the scheduler file explaining listing all the metrics and the monitors since your changes would probably add a DocImpact tag (that would help the docs team to provide good operator docs)","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"a3b7e4f6ca0ae40a8bd96872415beb5ad45d98b0","unresolved":false,"context_lines":[{"line_number":190,"context_line":"Documentation Impact"},{"line_number":191,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"None"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":6,"id":"fa32b979_74ebe278","line":193,"in_reply_to":"3afb71cf_e758068c","updated":"2015-06-17 17:57:47.000000000","message":"Will update.","commit_id":"7e44f7fcda28955bf48c7ab5d6fdb749256b8a09"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This is a necessity in addition to the NUMA scheduler filter"},{"line_number":35,"context_line":"because memory b/w can be utilized completely on a host without"},{"line_number":36,"context_line":"exhausting the natural resources like CPU and memory."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This metric can then be leveraged for better placement/optimization"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_891ac1c4","line":36,"updated":"2015-06-18 15:59:10.000000000","message":"This paragraph doesn\u0027t really make sense to me. Could you rephrase it please?","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This is a necessity in addition to the NUMA scheduler filter"},{"line_number":35,"context_line":"because memory b/w can be utilized completely on a host without"},{"line_number":36,"context_line":"exhausting the natural resources like CPU and memory."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This metric can then be leveraged for better placement/optimization"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_cfbc30de","line":36,"in_reply_to":"fa32b979_891ac1c4","updated":"2015-06-19 05:22:03.000000000","message":"Sure.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":40,"context_line":"of high CPU/memory intensive workloads. This spec intends to"},{"line_number":41,"context_line":"provide the base feature in Openstack to enable the memory b/w"},{"line_number":42,"context_line":"utilization data collection and subsequently populate it inside"},{"line_number":43,"context_line":"the host states/nova compute table."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_098551cd","line":43,"updated":"2015-06-18 15:59:10.000000000","message":"You can remove this last paragraph and just add the line \"This metric can then be leveraged...\" to the first paragraph in this section.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":40,"context_line":"of high CPU/memory intensive workloads. This spec intends to"},{"line_number":41,"context_line":"provide the base feature in Openstack to enable the memory b/w"},{"line_number":42,"context_line":"utilization data collection and subsequently populate it inside"},{"line_number":43,"context_line":"the host states/nova compute table."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_efbfb4cd","line":43,"in_reply_to":"fa32b979_098551cd","updated":"2015-06-19 05:22:03.000000000","message":"Sure.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":47,"context_line":"----------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Get memory b/w stats as a metric data and leverage it for placement"},{"line_number":50,"context_line":"  decisions."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_29f1356b","line":50,"updated":"2015-06-18 15:59:10.000000000","message":"Is this spec about adding the new BaseResourceMonitor subclass for collecting this memory bandwidth information, or is this spec about adding functionality to the scheduler to utilize the metrics collected by that monitor?","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":47,"context_line":"----------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"* Get memory b/w stats as a metric data and leverage it for placement"},{"line_number":50,"context_line":"  decisions."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Project Priority"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_4fd10022","line":50,"in_reply_to":"fa32b979_29f1356b","updated":"2015-06-19 05:22:03.000000000","message":"Ok, i will focus this spec on adding just the subclass.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  monitor."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* Evaluate adding the data into the NUMA filter code"},{"line_number":79,"context_line":"  of Openstack."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_a98c65da","line":79,"updated":"2015-06-18 15:59:10.000000000","message":"I\u0027d remove this last item and just focus this spec on adding the new monitor.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  monitor."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* Evaluate adding the data into the NUMA filter code"},{"line_number":79,"context_line":"  of Openstack."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_6fcc0489","line":79,"in_reply_to":"fa32b979_a98c65da","updated":"2015-06-19 05:22:03.000000000","message":"Sure.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Continue with the current NUMA topology based filter."},{"line_number":85,"context_line":"The resource tracker framework won\u0027t be used for this metric"},{"line_number":86,"context_line":"because the values for memory bandwidth are not available on"},{"line_number":87,"context_line":"a per VM basis at this moment."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_49c279ea","line":87,"updated":"2015-06-18 15:59:10.000000000","message":"The resource tracker doesn\u0027t need to track things on a per-VM basis. It tracks things on a per compute node basis, which is appropriate for this functionality.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":84,"context_line":"Continue with the current NUMA topology based filter."},{"line_number":85,"context_line":"The resource tracker framework won\u0027t be used for this metric"},{"line_number":86,"context_line":"because the values for memory bandwidth are not available on"},{"line_number":87,"context_line":"a per VM basis at this moment."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_0f9e9862","line":87,"in_reply_to":"fa32b979_49c279ea","updated":"2015-06-19 05:22:03.000000000","message":"Ok. I thought the resource tracker keeps tracks of resources on a host by adding the per VM allocations. At the moment, memory bandwidth cannot be reported/throttled on a per VM basis but I guess i was wrong about the RT.\n\nThis data will be made available in the host_states - so i guess that should be sufficient to write a new filter based on it?","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":155,"context_line":"3. Create metrics plugin to sample the memory b/w data."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"4. Add filters and/or weights in the scheduler so that it can use this"},{"line_number":158,"context_line":"new data."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_49503932","line":158,"updated":"2015-06-18 15:59:10.000000000","message":"Recommend removing this last item and putting the scheduler-specific pieces in a separate followup spec (or even a blueprint without a spec)","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":155,"context_line":"3. Create metrics plugin to sample the memory b/w data."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"4. Add filters and/or weights in the scheduler so that it can use this"},{"line_number":158,"context_line":"new data."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_2f991c79","line":158,"in_reply_to":"fa32b979_49503932","updated":"2015-06-19 05:22:03.000000000","message":"Yeah sure. Actually that was one of the points that I made in the previous version of this spec. Makes very good sense.","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5b132671b3b6b68b5b924a41869568249b8f88d0","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Testing"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"The changes will be exercised through the existing CI."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Documentation Impact"},{"line_number":173,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_2934d5f9","line":170,"updated":"2015-06-18 15:59:10.000000000","message":"How do you propose that to happen? Are you going to add PCP and python-pcp to the CI nodes?","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"754db51f08e39897223b16a475d4004e0b579a18","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Testing"},{"line_number":168,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"The changes will be exercised through the existing CI."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Documentation Impact"},{"line_number":173,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa32b979_4f7fc014","line":170,"in_reply_to":"fa32b979_2934d5f9","updated":"2015-06-19 05:22:03.000000000","message":"I would need some direction on this.\nBasically - I was thinking that the UT framework could be put out similar to the fakelibvirt driver. \n\nRight now, I am not sure of the logistics that would be needed to make this a part of a greater CI framework. Could you please help me with some pointers?","commit_id":"7d18d3936ec60b8cd7b11e38982c0920acc9fdb6"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"7508e71435a051259901957b13f06ffe49295434","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":66,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":67,"context_line":"  monitor."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_4bed6dee","line":68,"updated":"2015-06-19 09:18:55.000000000","message":"The CPU monitor plugin actually delegates the implementation to the underlying virt driver implementations via the nova/virt/driver.py  get_host_cpu_stats_method.\n\nAre you intending to add a new API to the virt driver for memory bandwith. If so, what information is it going to return and how will it be structured. We have a general desire to not add new methods that return dicts, instead we prefer classes and/or nova objects to be defined. So I\u0027d like to see details of all this here, and info on what virt drivers will be supported / implemented.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"918f31677b36fa5415a4840c2a6f113004dd8ba0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":66,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":67,"context_line":"  monitor."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_fc99a9d1","line":68,"in_reply_to":"fa32b979_4bed6dee","updated":"2015-06-19 13:46:47.000000000","message":"Ok, i will re-word the above bullet. My intention to site the CPU monitor was just to give  an example of the monitor framework that exists today via the BaseResourceMonitor. I don\u0027t indent to make any changes to introduce an API in the virt driver. Instead would want to keep the changes localized to the monitor in the following way:\n\n - The monitor shall have the knowledge of how to connect to PCP.\n - Monitor shall have the knowledge of the corresponding PCP APIs to call.\n - The data will be populated under the metrics column of the compute_nodes table and hence doesn\u0027t need a change in schema.\n\nThe intention is to keep this monitor standalone.\nAlso since there\u0027s going to be no new data structures (columns or db schema changes) defined other than population of the host_states with a new set of metrics - values - I think it probably doesn\u0027t have the need for a Nova Object. Thoughts?","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"4b279f3dcb388b4e449587864acba9085735dd71","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":66,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":67,"context_line":"  monitor."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_8e24d8c6","line":68,"in_reply_to":"fa32b979_4e5490c9","updated":"2015-06-19 14:00:43.000000000","message":"If we do it via the virt-driver - can we still call PCP from within it?\nIf there\u0027s a flexibility to do so, I am pretty OK to host the code in the libvirt driver.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"d864fc4754b2a38d749141b57a31e6e0bbfd28d3","unresolved":false,"context_lines":[{"line_number":65,"context_line":"* Extend the Resource monitor framework to implement a optional"},{"line_number":66,"context_line":"  monitor for Memory B/W utilization, much in line with the CPU"},{"line_number":67,"context_line":"  monitor."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_4e5490c9","line":68,"in_reply_to":"fa32b979_fc99a9d1","updated":"2015-06-19 13:49:47.000000000","message":"Ok, I actually tend to thing that this *should* be using the nova virt driver API. We aim to have consistent representation across all hypervisors, and this PCP stuff is linux specific so will only work with the various libvirt drivers - not vmware/xenapi/hyperv. Doing it via the virt drivers forces us to define a consistent representation across all hypervisors regardless of the underlying impl they may end up choosing. This is exactly why the cpu monitor plugin works the way it does today.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"7508e71435a051259901957b13f06ffe49295434","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_ab3f5986","line":73,"updated":"2015-06-19 09:18:55.000000000","message":"It seems one obvious alternative is to just directly call the linux perf APIs to get the memory bandwith information avoiding the need for pcp. No idea whether that would be a benefit or not, but its an alternative at least.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"918f31677b36fa5415a4840c2a6f113004dd8ba0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"Alternatives"},{"line_number":71,"context_line":"------------"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"None"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Data model impact"},{"line_number":76,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_57518ed7","line":73,"in_reply_to":"fa32b979_ab3f5986","updated":"2015-06-19 13:46:47.000000000","message":"Yeah - that would be one way but the perf APIs would bring in the platform dependency - since the PMU counters and the math to calculate can be different for different type of platforms and types of hardware. PCP sort of forms the glue that abstracts it out. I will re-word the alternative on these lines. Also - PCP is currently available as a distro package on most of the Linux distros.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"7508e71435a051259901957b13f06ffe49295434","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Performance Impact"},{"line_number":101,"context_line":"------------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other deployer impact"},{"line_number":106,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_8b92959e","line":103,"updated":"2015-06-19 09:18:55.000000000","message":"I would expect to see some information here. The resource monitors are called on a regular basis by the resource tracker. So resource monitor impls certainly have scope for impacting performance depending on what they do. I\u0027m not familiar with what pcp does, but I\u0027d at least like to see a justification here for why it won\u0027t cause a performance impact.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"918f31677b36fa5415a4840c2a6f113004dd8ba0","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Performance Impact"},{"line_number":101,"context_line":"------------------"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"None"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other deployer impact"},{"line_number":106,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"fa32b979_1fd47c45","line":103,"in_reply_to":"fa32b979_8b92959e","updated":"2015-06-19 13:46:47.000000000","message":"The performance impact should be nominal since the PMU counter values  are already aggregated by the hardware. The openstack call shall involve an API call to PCP that would let us access these counters. The interval can be least kept at 1 minute and increased if made configurable.","commit_id":"db9ca5dccab9f79aec383f21d3bc6d5fb8e21ccf"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b6d084c636a1d8ec6f8e352810ffab6812ef18c5","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"  - `maximum.bandwidth`: Maximum bandwidth for each NUMA node."},{"line_number":73,"context_line":"  - `current.bandwidth.counter`: Current aggregated counter value for each"},{"line_number":74,"context_line":"     NUMA node."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"  The monitor code obtain the maximum.bandwidth value only"},{"line_number":77,"context_line":"  once during it\u0027s initialization. This value shall be represented in a"}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_9f2401c7","line":74,"updated":"2015-06-19 16:03:36.000000000","message":"Please be more specific about what these data fields will look like. You say this information is per NUMA node. Will the metrics be stored in a dictionary that looks something like this?\n\n {\n   \u0027memory\u0027: {\n       \u0027numa\u0027: {\n          \u0027bandwidth\u0027: {\n            \u00270\u0027: {\n              \u0027max\u0027: \u003cMAX_BW\u003e,\n              \u0027current\u0027: \u003cCUR_BW\u003e\n            },\n            \u00271\u0027: {\n              \u0027max\u0027: \u003cMAX_BW\u003e,\n              \u0027current\u0027: \u003cCUR_BW\u003e\n            },\n            ...\n         }\n      }\n   }\n }\n\n or are you going to flatten the dict into something like this?\n\n {\n \u0027mem.numa.0.max_bw\u0027: \u003cMAX_BW\u003e,\n \u0027mem.numa.0.current_bw\u0027: \u003cCUR_BW\u003e,\n \u0027mem.numa.1.max_bw\u0027: \u003cMAX_BW\u003e,\n \u0027mem.numa.1.current_bw\u0027: \u003cCUR_BW\u003e\n }","commit_id":"607769981fedec2ee24f5326259129a2e872dbb1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b6d084c636a1d8ec6f8e352810ffab6812ef18c5","unresolved":false,"context_lines":[{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  The unit of representation of the rate will be made consistent with the"},{"line_number":86,"context_line":"  value obtained from the counters. The data exchanged between the virt"},{"line_number":87,"context_line":"  driver and the monitor code shall be based on objects of a class."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_0a5bcd2f","line":87,"updated":"2015-06-19 16:03:36.000000000","message":"Which class?","commit_id":"607769981fedec2ee24f5326259129a2e872dbb1"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"b6d084c636a1d8ec6f8e352810ffab6812ef18c5","unresolved":false,"context_lines":[{"line_number":176,"context_line":"Testing"},{"line_number":177,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"The changes will be exercised through unit tests."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Documentation Impact"},{"line_number":182,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"fa32b979_0ace6db4","line":179,"updated":"2015-06-19 16:03:36.000000000","message":"I would add something in here stating that you will work with the infrastructure team to get a non-voting job that functionally tests the new monitor on a system that actually can use the PCP library effectively. This may mean working with the kind folks from Intel who have an 3rd party CI system for the PCI functional testing.","commit_id":"607769981fedec2ee24f5326259129a2e872dbb1"}]}
