<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 20, 2018, 7:34 AM Paolo Bonzini <<a href="mailto:pbonzini@redhat.com">pbonzini@redhat.com</a> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 20/12/18 16:05, Anthony Liguori wrote:<br>
> The two biggest sources of CVEs in KVM have been instruction emulation<br>
> and device emulation.  Moving the x86_emulate code to userspace and<br>
> rewritting it in Rust would eliminate one of the larger attack surfaces<br>
> in KVM and likewise, moving IO APIC and PIT emulation to userspace would<br>
> help a lot there too.<br>
> <br>
> On modern processors, LAPIC is handled almost entirely in hardware so<br>
> the remaining complexity in KVM is really around EPT handling and<br>
> hardware interaction.  I don't think either can reasonably be moved.<br>
<br>
Note that userspace PIT/PIC/IOAPIC emulation is already supported by KVM<br>
(Linux 4.4 or newer I think; QEMU will make it the default for the q35<br>
machine type in the next release, for now you need -machine<br>
kernel_irqchip=split).<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">+ Miriam who is working on pit and apic on crosvm</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Paolo<br>
<br>
_______________________________________________<br>
Rust-vmm mailing list<br>
<a href="mailto:Rust-vmm@lists.opendev.org" target="_blank" rel="noreferrer">Rust-vmm@lists.opendev.org</a><br>
<a href="http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm" rel="noreferrer noreferrer" target="_blank">http://lists.opendev.org/cgi-bin/mailman/listinfo/rust-vmm</a><br>
</blockquote></div></div></div>