On Fri, Jul 07, 2017 at 05:34:15PM +0300, Adalbert Lazar wrote: > The following patch adds the documentation for an introspection subsystem for > KVM (KVMi). It details the purpose and the use case that has shaped the > proposed API/ABI, as well as the wire protocol. > > During the discussion that has developed around our previous RFC patchset a > number of TODO-s have been highlighted: > > * the integration in qemu: a socket-based protocol used to initiate the > connection with an introspection tool and then passes control to KVM, the > in-kernel mechanism taking over from there; > > * the integration of the SPT-handling mechanism into the KVM MMU; > > * the elaboration of a set of policies and a mechanism to better control > this feature; > > One bit of code that has passed (maybe) unnoticed in the RFC is a new > function added to Linux' mm called vm_replace_page() which, much like KSM's > replace_page(), gets two processes to share a page (read-write, no-COW): > > https://marc.info/?l=kvm&m=149762056518799&w=2 > > This is used to quickly scan and patch the guest software. > > The patch following this cover letter does not yet address the points above > but aims to clear with the community the overall ABI/API, with a focus on > x86. Are there thoughts on making this work with libvmi? Or would this interface be used by a paid product? Thanks. > > Thank you, > > v2: > - add documentation and ABI [Paolo, Jan] > - drop all the other patches for now [Paolo] > - remove KVMI_GET_GUESTS, KVMI_EVENT_GUEST_ON, KVMI_EVENT_GUEST_OFF, > and let libvirt/qemu handle this [Stefan, Paolo] > - change the license from LGPL to GPL [Jan] > - remove KVMI_READ_PHYSICAL and KVMI_WRITE_PHYSICAL (not used anymore) > - make the interface a little more consistent > > Adalbert Lazar (1): > kvm: Add documentation and ABI/API header for VM introspection > > Documentation/virtual/kvm/kvmi.rst | 985 +++++++++++++++++++++++++++++++++++++ > include/uapi/linux/kvmi.h | 310 ++++++++++++ > 2 files changed, 1295 insertions(+) > create mode 100644 Documentation/virtual/kvm/kvmi.rst > create mode 100644 include/uapi/linux/kvmi.h >