Hi Sudarshan, I had questions about the setup and another about the use of PSI. > > 1. This will be a native userspace daemon that will be running only in the Linux VM which will use virtio-mem driver that uses memory hotplug to add/remove memory. The VM (aka Secondary VM, SVM) will request for memory from the host which is Primary VM, PVM via the backend hypervisor which takes care of cross-VM communication. > In regards to the "PVM/SVM" nomenclature, is the implied setup one of fault tolerance (i.e. the secondary is there to take over in case of failure of the primary VM)? Generally speaking, are the PVM and SVM part of a defined system running some workload? The context seems to be that the situation is more intricate than "two virtual machines running on a host", but I'm not clear how it is different from that general notion. > > 5. Detecting decrease in memory pressure – the reverse part where we give back memory to PVM when memory is no longer needed is bit tricky. We look for pressure decay and see if PSI averages (avg10, avg60, avg300) go down, and along with other memory stats (such as free memory etc) we make an educated guess that usecase has ended and memory has been free’ed by the usecase, and this memory can be given back to PVM when its no longer needed. > This is also very interesting to me. Detecting a decrease in pressure using PSI seems difficult. IIUC correctly, the approach taken in OOMD/senpai from Meta seems to be continually applying pressure/backing off, and then seeing the outcome of that decision on the pressure metric to feedback to the next decision (see links below). Is your approach similar? Do you check the metric periodically or only when receiving PSI memory events in userspace? https://github.com/facebookincubator/senpai/blob/main/senpai.py#L117-L148 https://github.com/facebookincubator/oomd/blob/main/src/oomd/plugins/Senpai.cpp#L529-L538 Very interesting proposal. Thanks for sending, -T.J.