)]}'
{"specs/rocky/approved/cache-as-a-resource.rst":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"0d0fe3216881069942bc9679ecea513937bf881a","unresolved":false,"context_lines":[{"line_number":33,"context_line":"a REST API that supports managing cache as a resource. RMD enables"},{"line_number":34,"context_line":"associating various cache QoS policies with workloads."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Problem description"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_92a18898","line":36,"updated":"2018-06-07 22:02:21.000000000","message":"I am curious why we can\u0027t try something really simple instead...\n\nIn the case where you try and make VM performance predictable, you do CPU pinning and Huge pages, etc, etc.\n\nA simple (but extreme case) is that you can divide the cache by the number of physical cores (or maybe per hyper thread depending on how you pin the vCPU), and assign that amount to each pinned CPU, in exclusive mode. i.e. where you try to slice the whole machine and processes into equal slices given to all the VMs on the box. Nova conf says if its Guaranteed or burstable in this case.\n\nWill that keep everyone happy? sure it will not. But it sounds really useful for the folks that want the best performance, lowest overheads, at the cost of utilization advantages of over commit.\n\nFor the other people, the best effort approach might be best. If not, once we know the details, we could implement something to help them.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"18cc23adea350069171e2d894800b628305e1a69","unresolved":false,"context_lines":[{"line_number":33,"context_line":"a REST API that supports managing cache as a resource. RMD enables"},{"line_number":34,"context_line":"associating various cache QoS policies with workloads."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Problem description"},{"line_number":38,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_fc3e3d88","line":36,"in_reply_to":"5f7c97a3_92a18898","updated":"2018-07-06 22:53:23.000000000","message":"John, the simplest way one can look at this is go with one time/static partitioning, like the example of equal slices you are referring to. Main thing to remember here is the number cache slices available per CPU, not only vary by CPU generation, but also very limited in count as compared to CPU core count. It ultimately boils down to a set of workloads required to share same LLC slice with each other. Another hardware limitation to be considered is that the cache slices allocated to workload(s) needs to be contiguous.\n\nAdmin can come up with any type of static/one time slice management setting before orchestrating the workload or configure the LLC at boot time to operate in a specific guaranteed/burstable way. However for Cloud Native workloads or NFV workloads that are latency sensitive, since configuration would not yield best results or may lead to wastage of LLC resources by over allocation. \n\nTo abstract many of these issues/combinations, a simple agent on a local node could natively take care of LLC management without the user requiring to understand hardware complexity, limitations, etc. The \"implement something\" part, IMHO, is RMD that takes of simple one time/static config settings or complex dynamic cache policy settings.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3277fdf4d9cfecbc55028c1301615fac3c78c197","unresolved":false,"context_lines":[{"line_number":116,"context_line":"* Interactions with RMD."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_0eb95613","line":119,"range":{"start_line":119,"start_character":18,"end_line":119,"end_character":37},"updated":"2018-05-15 23:52:01.000000000","message":"nit, but I think it\u0027d be more intuitive to have the smaller  number first","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"c7af1e3d0bc3dd4979415d36a9ee1b140ae653cf","unresolved":false,"context_lines":[{"line_number":116,"context_line":"* Interactions with RMD."},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_841770a4","line":119,"range":{"start_line":119,"start_character":18,"end_line":119,"end_character":37},"in_reply_to":"5f7c97a3_0eb95613","updated":"2018-05-16 23:53:29.000000000","message":"Its changeable, may be many folks are comfortable with min/max format.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3277fdf4d9cfecbc55028c1301615fac3c78c197","unresolved":false,"context_lines":[{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"},{"line_number":123,"context_line":"per NUMA node basis."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_ce659eb6","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":24},"updated":"2018-05-15 23:52:01.000000000","message":"does this mean that if you have multiple numa nodes in your guest you\u0027ll get at most this much cache per guest numa node?","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"18cc23adea350069171e2d894800b628305e1a69","unresolved":false,"context_lines":[{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"},{"line_number":123,"context_line":"per NUMA node basis."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_fc571dc8","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":24},"in_reply_to":"5f7c97a3_128714b9","updated":"2018-07-06 22:53:23.000000000","message":"My first comment refers to LLC being allocated on host NUMA node per guest. \nIf the guest is using single host NUMA node, then LLC allocation will be done corresponding to that host NUMA node.\nIf the guest uses two host NUMA nodes, LLC allocation could be done specific to the host NUMA nodes guest uses.\nAm I confusing or is this clear?","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f8f1557a11959bdeb80c648f02e2f5b21c4d047c","unresolved":false,"context_lines":[{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"},{"line_number":123,"context_line":"per NUMA node basis."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_128714b9","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":24},"in_reply_to":"5f7c97a3_c41c88c3","updated":"2018-05-17 15:21:04.000000000","message":"For libvirt at least if you have hugepages or dedicated CPUs each guest NUMA node will map 1:1 with a host NUMA node.  A typical single-node guest will only ever run on one host NUMA node, so it makes no sense to allocate space for that VM on other host NUMA nodes.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"c7af1e3d0bc3dd4979415d36a9ee1b140ae653cf","unresolved":false,"context_lines":[{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"},{"line_number":123,"context_line":"per NUMA node basis."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_c41c88c3","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":24},"in_reply_to":"5f7c97a3_ce659eb6","updated":"2018-05-16 23:53:29.000000000","message":"The numa node here refers to numa nodes on the compute node. Since the llc is controlled/allocated on the compute node and shared across many guests, the cache values need to be measured/monitored per compute node\u0027s numa nodes.\nIts upto the guest to figure out how to use allocated cache on compute node\u0027s cache usage.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d602aff7d3d674a79e04e4dd5155585dd86339d4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"We will add a new extra spec fields in flavor:"},{"line_number":119,"context_line":"* resources:CACHE\u003dmax_cache:min_cache"},{"line_number":120,"context_line":"- `max_cache`: Indicates maximum cache in MB that the workload could"},{"line_number":121,"context_line":"use, per NUMA node basis."},{"line_number":122,"context_line":"- `min_cache`: Indicates minimum cache in MB required for the workload"},{"line_number":123,"context_line":"per NUMA node basis."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_b39f7db1","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":24},"in_reply_to":"5f7c97a3_fc571dc8","updated":"2018-07-09 16:04:26.000000000","message":"I think it would be clearer if you changed \"per NUMA node basis.\" to \"for each host NUMA node used by the guest.\"","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3277fdf4d9cfecbc55028c1301615fac3c78c197","unresolved":false,"context_lines":[{"line_number":162,"context_line":"RMD provides Unix socket and TCP socket, nova can choose each of it to"},{"line_number":163,"context_line":"send cache resource query and cache enforce/release operation."},{"line_number":164,"context_line":"There will be some modification on nova-compute code to directly talk"},{"line_number":165,"context_line":"with a local RMD process. And nova-scheduler will need to talk with"},{"line_number":166,"context_line":"RMD on each compute node, or through the RPC method of nova-compute"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Option 1:"},{"line_number":169,"context_line":"Integrate with nova libvirt driver or just libvirt to make this feature"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_aed5c21d","line":166,"range":{"start_line":165,"start_character":25,"end_line":166,"end_character":67},"updated":"2018-05-15 23:52:01.000000000","message":"why does nova-scheduler need to talk to RMD?  wouldn\u0027t it just use the data returned from placement?","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"18cc23adea350069171e2d894800b628305e1a69","unresolved":false,"context_lines":[{"line_number":162,"context_line":"RMD provides Unix socket and TCP socket, nova can choose each of it to"},{"line_number":163,"context_line":"send cache resource query and cache enforce/release operation."},{"line_number":164,"context_line":"There will be some modification on nova-compute code to directly talk"},{"line_number":165,"context_line":"with a local RMD process. And nova-scheduler will need to talk with"},{"line_number":166,"context_line":"RMD on each compute node, or through the RPC method of nova-compute"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Option 1:"},{"line_number":169,"context_line":"Integrate with nova libvirt driver or just libvirt to make this feature"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_3c07d5cb","line":166,"range":{"start_line":165,"start_character":25,"end_line":166,"end_character":67},"in_reply_to":"5f7c97a3_aed5c21d","updated":"2018-07-06 22:53:23.000000000","message":"Yes agree, will update this.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3277fdf4d9cfecbc55028c1301615fac3c78c197","unresolved":false,"context_lines":[{"line_number":174,"context_line":"libvirt to accept this feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Options 2: Recommended"},{"line_number":177,"context_line":"Develop a RMD nova plugin (provided by RMD) to proxy the requests to"},{"line_number":178,"context_line":"placement-api and nova-api, the plugin will report resource usage"},{"line_number":179,"context_line":"(inventory) of the host and listen to instance creation/deletion"},{"line_number":180,"context_line":"notification from Nova. Then grab instance and flavor information from"},{"line_number":181,"context_line":"nova public api, trigger enforcement or release of cache to RMD. RMD"},{"line_number":182,"context_line":"could relay the cache limitations or any cache enforcement failures to"},{"line_number":183,"context_line":"nova."},{"line_number":184,"context_line":"This option does not require much modifications to Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_2e2a12da","line":183,"range":{"start_line":177,"start_character":0,"end_line":183,"end_character":5},"updated":"2018-05-15 23:52:01.000000000","message":"this option is cleanest from the \"what changes are needed in nova\" perspective, but it does mean that the cache allocation/reservation may or may not actually happen depending on whether the external entity is actually running.\n\nAlso, there could be delays from the time the instance starts until the time it actually gets some quantity of cache allocated to it.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"c7af1e3d0bc3dd4979415d36a9ee1b140ae653cf","unresolved":false,"context_lines":[{"line_number":174,"context_line":"libvirt to accept this feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Options 2: Recommended"},{"line_number":177,"context_line":"Develop a RMD nova plugin (provided by RMD) to proxy the requests to"},{"line_number":178,"context_line":"placement-api and nova-api, the plugin will report resource usage"},{"line_number":179,"context_line":"(inventory) of the host and listen to instance creation/deletion"},{"line_number":180,"context_line":"notification from Nova. Then grab instance and flavor information from"},{"line_number":181,"context_line":"nova public api, trigger enforcement or release of cache to RMD. RMD"},{"line_number":182,"context_line":"could relay the cache limitations or any cache enforcement failures to"},{"line_number":183,"context_line":"nova."},{"line_number":184,"context_line":"This option does not require much modifications to Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_e46ae419","line":183,"range":{"start_line":177,"start_character":0,"end_line":183,"end_character":5},"in_reply_to":"5f7c97a3_2e2a12da","updated":"2018-05-16 23:53:29.000000000","message":"Agree this is the cleanest. \nNot sure what you mean by may/may not happen? Could you please elaborate?\nIn terms of delay, from the guest perspective, the allocation of dedicate cache is instantaneous and ready by the time the guest comes up. If there are any errors in allocating the required amount of cache even after going through the filters, RMD would notify an error to Nova to trigger appropriate error handling mechanisms.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"18cc23adea350069171e2d894800b628305e1a69","unresolved":false,"context_lines":[{"line_number":174,"context_line":"libvirt to accept this feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Options 2: Recommended"},{"line_number":177,"context_line":"Develop a RMD nova plugin (provided by RMD) to proxy the requests to"},{"line_number":178,"context_line":"placement-api and nova-api, the plugin will report resource usage"},{"line_number":179,"context_line":"(inventory) of the host and listen to instance creation/deletion"},{"line_number":180,"context_line":"notification from Nova. Then grab instance and flavor information from"},{"line_number":181,"context_line":"nova public api, trigger enforcement or release of cache to RMD. RMD"},{"line_number":182,"context_line":"could relay the cache limitations or any cache enforcement failures to"},{"line_number":183,"context_line":"nova."},{"line_number":184,"context_line":"This option does not require much modifications to Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_fc0cfdeb","line":183,"range":{"start_line":177,"start_character":0,"end_line":183,"end_character":5},"in_reply_to":"5f7c97a3_b21d0075","updated":"2018-07-06 22:53:23.000000000","message":"This is WIP. Any recommendations?","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"f8f1557a11959bdeb80c648f02e2f5b21c4d047c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"libvirt to accept this feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Options 2: Recommended"},{"line_number":177,"context_line":"Develop a RMD nova plugin (provided by RMD) to proxy the requests to"},{"line_number":178,"context_line":"placement-api and nova-api, the plugin will report resource usage"},{"line_number":179,"context_line":"(inventory) of the host and listen to instance creation/deletion"},{"line_number":180,"context_line":"notification from Nova. Then grab instance and flavor information from"},{"line_number":181,"context_line":"nova public api, trigger enforcement or release of cache to RMD. RMD"},{"line_number":182,"context_line":"could relay the cache limitations or any cache enforcement failures to"},{"line_number":183,"context_line":"nova."},{"line_number":184,"context_line":"This option does not require much modifications to Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_b21d0075","line":183,"range":{"start_line":177,"start_character":0,"end_line":183,"end_character":5},"in_reply_to":"5f7c97a3_e46ae419","updated":"2018-05-17 15:21:04.000000000","message":"What I mean is that if RMD crashes then instances could be started with no cashe guarantees.\n\nIf RMD is listening on notifications how do you propose to notify nova of errors?","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d602aff7d3d674a79e04e4dd5155585dd86339d4","unresolved":false,"context_lines":[{"line_number":174,"context_line":"libvirt to accept this feature."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"Options 2: Recommended"},{"line_number":177,"context_line":"Develop a RMD nova plugin (provided by RMD) to proxy the requests to"},{"line_number":178,"context_line":"placement-api and nova-api, the plugin will report resource usage"},{"line_number":179,"context_line":"(inventory) of the host and listen to instance creation/deletion"},{"line_number":180,"context_line":"notification from Nova. Then grab instance and flavor information from"},{"line_number":181,"context_line":"nova public api, trigger enforcement or release of cache to RMD. RMD"},{"line_number":182,"context_line":"could relay the cache limitations or any cache enforcement failures to"},{"line_number":183,"context_line":"nova."},{"line_number":184,"context_line":"This option does not require much modifications to Nova."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_3345ad44","line":183,"range":{"start_line":177,"start_character":0,"end_line":183,"end_character":5},"in_reply_to":"5f7c97a3_fc0cfdeb","updated":"2018-07-09 16:04:26.000000000","message":"It seems to me that to report errors in allocating cache you\u0027d need to either have RMD be able to directly inject RPC messages destined to nova, or else you\u0027d need to add a whole new HTTP message to the Compute API.\n\nThe alternative would be to have nova-compute call out to a helper, that way you would naturally be able to return an error code.  It would also ensure that the cache was allocated before the instance starts running.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"3277fdf4d9cfecbc55028c1301615fac3c78c197","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Alternative to consider for easily specifying cache requirements as"},{"line_number":191,"context_line":"part of the flavor spec usage:"},{"line_number":192,"context_line":"Provide cache value as a percentage in the flavor extra spec instead"},{"line_number":193,"context_line":"of absolute value in MB. Since the amount of LLC differs based on the"},{"line_number":194,"context_line":"CPU generation, requesting cache in terms of percentage per workload"},{"line_number":195,"context_line":"would abstract the necessity of knowing maximum cache available per"},{"line_number":196,"context_line":"generation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_ce7efee2","line":193,"range":{"start_line":192,"start_character":0,"end_line":193,"end_character":24},"updated":"2018-05-15 23:52:01.000000000","message":"I don\u0027t think this is useful, since the workload is likely going to depend on an absolute value of cache.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":20207,"name":"sunku ranganath","email":"sunku.ranganath@intel.com","username":"sunkuranganath"},"change_message_id":"c7af1e3d0bc3dd4979415d36a9ee1b140ae653cf","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Alternative to consider for easily specifying cache requirements as"},{"line_number":191,"context_line":"part of the flavor spec usage:"},{"line_number":192,"context_line":"Provide cache value as a percentage in the flavor extra spec instead"},{"line_number":193,"context_line":"of absolute value in MB. Since the amount of LLC differs based on the"},{"line_number":194,"context_line":"CPU generation, requesting cache in terms of percentage per workload"},{"line_number":195,"context_line":"would abstract the necessity of knowing maximum cache available per"},{"line_number":196,"context_line":"generation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_e4d8a4f1","line":193,"range":{"start_line":192,"start_character":0,"end_line":193,"end_character":24},"in_reply_to":"5f7c97a3_ce7efee2","updated":"2018-05-16 23:53:29.000000000","message":"Agree absolute value of cache is essential. The idea of percentages is to abstract complexity of underlying cache hardware. \nCache has to be allocated in contiguous cache ways, least amount of cache that can be allocated or scaling of cache sizes would differ based on the platform generation. The cache value requested in MB has to be rounded off to closest value (higher/lower) that the platform can support.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"},{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"d602aff7d3d674a79e04e4dd5155585dd86339d4","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"Alternative to consider for easily specifying cache requirements as"},{"line_number":191,"context_line":"part of the flavor spec usage:"},{"line_number":192,"context_line":"Provide cache value as a percentage in the flavor extra spec instead"},{"line_number":193,"context_line":"of absolute value in MB. Since the amount of LLC differs based on the"},{"line_number":194,"context_line":"CPU generation, requesting cache in terms of percentage per workload"},{"line_number":195,"context_line":"would abstract the necessity of knowing maximum cache available per"},{"line_number":196,"context_line":"generation."}],"source_content_type":"text/x-rst","patch_set":6,"id":"5f7c97a3_786b021e","line":193,"range":{"start_line":192,"start_character":0,"end_line":193,"end_character":24},"in_reply_to":"5f7c97a3_e4d8a4f1","updated":"2018-07-09 16:04:26.000000000","message":"I don\u0027t think specifying percentages simplifies anything, since the application workload may require an absolute amount of cache to operate at full speed.","commit_id":"df8c82436c3e9ff8f1a34f6a137b5cdedb4da43d"}]}
