Hello QEMU-DEVEL! It's been a while… I work on a solution for "smart" IO caching on the host side. The configuration is virtio-block device backed by SPDK with OCF/OpenCAS on top of remote storage.
To improve decision making for caching, I would like to have an additional per-request contextual information from the guest side. It might include information about process issuing an IO request, a file this request it tied to and so on. In general, I'd like the set of collected information to be flexible and configurable. I searched mailing lists and other related sources and surprisingly found no mentions of the topic of having custom per-request data in virtio rings. This makes me think that either I'm missing an obvious way of doing this or the concept itself is severely broken up to the point it's not even getting discussed. There is also a possibility that I'm just missing a proper search keywords... I understand there might be be security implications to be considered. Also having custom kernel patches to have a flexibility of choosing which data to collect is probably not a viable solution. Please share your thoughts. I would like understand what is the right way of doing what I'm looking for. If there are new mechanisms to be implemented in virtio or other parts of the codebase, I'll gladly work on this for the sake of community. Thank you, Dmitry