Re: Introspection API development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 04/08/2016 13:18, Mihai Donțu wrote:
> The model we're aiming is: on a KVM host, out of the N running VM-s, one
> has special privileges allowing it to manipulate the memory and vCPU
> state of the others. We call that special VM an SVA (Security Virtual
> Appliance) and it uses a channel (much like the one found on Xen -
> evtchn) and a set of specific VMCALL-s to:
> 
>   * receive notifications from the host when a new VM is
>     created/destroyed
>   * manipulate the EPT of a specific VM
>   * manipulate the vCPU state of a specific VM (GPRs)
>   * manipulate the memory of a specific VM (insert code)

No special VMs and hypercalls, please.  Xen is a microkernel at its
core, KVM is not.  Just run a process on the host.

I'm not very convinced of manipulating the EPT page tables directly.
There must be some higher-level abstraction.  For example, KVM has
recently grown a new in-kernel interface to track dirty pages, and if
anything you should export that one as ioctls, and make QEMU use the ioctls.

> Obviously we've tried the userspace / qemu approach since it would have
> made development _much_ easier, but it's simply not "performant" enough.

That reminds me of kdbus.  Without having even stated what the
requirements are, "it's slow" is dogma rather than fact.  Even more so
if the client is proprietary and hidden behind a black-box "appliance".

vhost-user is performant enough for line-speed packet processing.  It's
obviously not the same thing as VM memory introspection, but it's a
logical suggestion.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux