In this RFC patch series, I propose an initial cache modelling TCG plugin. As of now, it models separate L1 data cache and L1 instruction cache. It supports three eviction policies: LRU, random, and FIFO. Once a policy is chosen, it's used for both instruction and data caches.
v1 -> v2: Unlocked dmtx on early return in vcpu_mem_access & removed a (probably?) bad InsnData free. This is probably still problematic since it does not free the ``idata`` allocated for the vcpu_mem_access callback even once, but if it's placed, it would double-free it. How do I mitigate this? I need to free the InsnData passed to vcpu_mem_access only once if we find out that it's an IO access since we do not need it anymore and it will early return every time. Mahmoud Mandour (3): plugins: Added a new cache modelling plugin plugins: cache: Enabled parameterization and added trace printing plugins: cache: Added FIFO and LRU eviction policies. contrib/plugins/Makefile | 1 + contrib/plugins/cache.c | 595 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 596 insertions(+) create mode 100644 contrib/plugins/cache.c -- 2.25.1