From: "Mihai Donțu" <mdontu@bitdefender.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: "Konrad Rzeszutek Wilk" <konrad@kernel.org>,
kvm@vger.kernel.org, "Paolo Bonzini" <pbonzini@redhat.com>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Jan Kiszka" <jan.kiszka@siemens.com>,
"Stefan Hajnoczi" <stefanha@redhat.com>,
"Adalbert Lazar" <alazar@bitdefender.com>
Subject: Re: [RFC PATCH v2 0/1] VM introspection
Date: Tue, 18 Jul 2017 11:55:01 +0300 [thread overview]
Message-ID: <1500368101.5720.29.camel@bitdefender.com> (raw)
In-Reply-To: <20170714161315.GE24167@char.us.oracle.com>
On Fri, 2017-07-14 at 12:13 -0400, Konrad Rzeszutek Wilk wrote:
> On Thu, Jul 13, 2017 at 08:37:07AM +0300, Mihai Donțu wrote:
> > Hi Konrad,
> >
> > On Wed, 2017-07-12 at 10:09 -0400, Konrad Rzeszutek Wilk wrote:
> > > 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?
> >
> > We have not looked at how we would go about adding support for this API
> > in libvmi, but a quick look tells me a driver shouldn't be that hard to
> > write.
>
> OK. Asking as the libvmi interface is quite fantastic. It has the drivers
> for VMWare, Xen, and others - and a pretty cool library to do most of
> the introspection through simple application linking to it.
>
> And more importantly (to me at least), it does allow academia
> to test different ideas.
> >
> > We are, however, looking at publishing the sources for a small library
> > called libkvmi that would expose an easy-to-use interface and on top of
> > which we will add support for KVM VMI in:
> >
> > https://github.com/razvan-cojocaru/libbdvmi
>
> And thoughts of testing API that will be part of KVM test unit?
We have not yet put enough though into how we will integrate with KVM's
unit tests, partly because we are still making adjustments to the
design. All we have on the board right now is that we must create unit
tests. :-)
Regards,
> > Other than that, the major user will indeed be a commercial product
> > that, right now, uses Xen's VMI infrastructure:
> >
> > https://citrixready.citrix.com/bitdefender/bitdefender-hypervisor-introspection.html
> >
> > > > 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
--
Mihai Donțu
prev parent reply other threads:[~2017-07-18 8:55 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-07 14:34 [RFC PATCH v2 0/1] VM introspection Adalbert Lazar
2017-07-07 14:34 ` [RFC PATCH v2 1/1] kvm: Add documentation and ABI/API header for " Adalbert Lazar
2017-07-07 16:52 ` Paolo Bonzini
2017-07-10 15:32 ` alazar
2017-07-10 17:03 ` Paolo Bonzini
2017-07-11 16:48 ` Adalbert Lazar
2017-07-11 16:51 ` Paolo Bonzini
2017-07-13 5:57 ` Mihai Donțu
2017-07-13 7:32 ` Paolo Bonzini
2017-07-18 11:51 ` Mihai Donțu
2017-07-18 12:02 ` Mihai Donțu
2017-07-23 13:02 ` Paolo Bonzini
2017-07-26 17:04 ` Mihai Donțu
2017-07-26 17:25 ` Tamas K Lengyel
2017-07-27 14:41 ` Mihai Donțu
2017-07-27 13:33 ` Paolo Bonzini
2017-07-27 14:46 ` Mihai Donțu
2017-07-13 8:36 ` Mihai Donțu
2017-07-13 9:15 ` Paolo Bonzini
2017-07-27 16:23 ` Mihai Donțu
2017-07-27 16:52 ` Paolo Bonzini
2017-07-27 17:19 ` Mihai Donțu
2017-08-01 10:40 ` Paolo Bonzini
2017-08-01 16:33 ` Tamas K Lengyel
2017-08-01 20:47 ` Paolo Bonzini
2017-08-02 11:52 ` Mihai Donțu
2017-08-02 12:27 ` Paolo Bonzini
2017-08-02 13:32 ` Mihai Donțu
2017-08-02 13:51 ` Paolo Bonzini
2017-08-02 14:17 ` Mihai Donțu
2017-08-04 8:35 ` Paolo Bonzini
2017-08-04 15:29 ` Mihai Donțu
2017-08-04 15:37 ` Paolo Bonzini
2017-08-05 8:00 ` Andrei Vlad LUTAS
2017-08-07 12:18 ` Paolo Bonzini
2017-08-07 13:25 ` Mihai Donțu
2017-08-07 13:49 ` Paolo Bonzini
2017-08-07 14:12 ` Mihai Donțu
2017-08-07 15:56 ` Paolo Bonzini
2017-08-07 16:44 ` Mihai Donțu
2017-08-02 13:53 ` Mihai Donțu
2017-07-27 17:06 ` Mihai Donțu
2017-07-27 17:18 ` Paolo Bonzini
2017-07-07 17:29 ` [RFC PATCH v2 0/1] " Paolo Bonzini
2017-08-07 15:28 ` Mihai Donțu
2017-08-07 15:44 ` Paolo Bonzini
2017-07-12 14:09 ` Konrad Rzeszutek Wilk
2017-07-13 5:37 ` Mihai Donțu
2017-07-14 16:13 ` Konrad Rzeszutek Wilk
2017-07-18 8:55 ` Mihai Donțu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1500368101.5720.29.camel@bitdefender.com \
--to=mdontu@bitdefender.com \
--cc=alazar@bitdefender.com \
--cc=jan.kiszka@siemens.com \
--cc=konrad.wilk@oracle.com \
--cc=konrad@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox