Re: [Qemu-devel] KVM call for 2017-03-14

Alex Bennée
2017-03-13T12:50:22Z

Peter Maydell <peter.maydell@linaro.org> writes:

> On 12 March 2017 at 21:45, Juan Quintela <quintela@redhat.com> wrote:
>>
>>
>> Hi
>>
>> Please, send any topic that you are interested in covering.
>>
>> So far the agenda is:
>>
>> - Direction of QEMU and toolstack in light of Google Cloud blog:
>> https://cloudplatform.googleblog.com/2017/01/7-ways-we-harden-our-KVM-hypervisor-at-Google-Cloud-security-in-plaintext.html
>
>
> Ah, I'd forgotten that this was on the call agenda. I actually
> had an interesting conversation with Alex Graf last week about
> some similar topics, which I guess you could generally summarize
> as "what are the issues we need to address as a project in order
> to not become irrelevant in five years time". Since I wrote them
> up for an internal "what I did on my holi^Wconference trip" report
> I might as well repost them here:
>
> - on the "VM support" side, QEMU is more used because it's the only
> production-quality option in this space, rather than because its
> users love it. (cf the Google choice to replace it.) It's also got
> a pretty poor security record. It wouldn't be too surprising if
> some time in the next five years somebody writes a replacement in
> a safer language (perhaps also targeting only the VM support role)
> and it got enough mindshare and takeup to eclipse QEMU.
> [Is it too early/daft to think about prototyping being able to
> write QEMU device emulation in Rust ?]

I think rust has the potential to be very interesting. I've been
watching to remacs project with interest:

https://github.com/Wilfred/remacs

They are attempting to port Emacs to rust in a piecemeal way. Whether
this works remains to be seen but it is certainly an interesting
approach compared to other "re-write it all" approaches.

> If the "VM support" usecase moves to another project then QEMU
> will become a very quiet backwater...
> - on the "emulation" side, nobody is clearly articulating a purpose
> for QEMU, a reason why you should use it rather than other modelling
> technologies (or rather than using real hardware). As a result the
> efforts applied to QEMU are somewhat unfocused. Are we trying to be:
> . a dev platform before easy h/w availability?
> [not easy for QEMU for several reasons]
> . a dev tool that provides better introspection into guest
> behaviour than running on h/w?
> [if so we should put more work into improving our introspection
> and guest tracing capabilities!]

For example now we support atomics in the TCG it would be fairly easy* to
port something like the ThreadSanitizer (which has fairly hefty memory
requirements) as a tool for debugging system code.

> . primarily a tool for doing automated CI testing and one-off
> developer smoke-testing that's easier to set up and scale than
> trying to test on real h/w?
> . something else?
> [your idea goes here!]
> - in all areas our legacy code and back-compatibility requirements
> are threatening to choke forward progress if we don't make serious
> efforts to get on top of them
> - there's no easy way for people to use parts of QEMU like the CPU
> emulation, or to add their own devices without having to write lots
> of C code (we're firmly in a "one monolithic blob of code" setup
> right now and disentangling and setting clear API dividing lines
> will be a lot of work)

I spoke to Edgar about posting his rports patch set as a catalyst for
discussion. Certainly for modelling hobby projects or new hardware QEMU
could do with support for rapid prototyping. Others have mentioned maybe
including a scripting language integration for device modelling -
although I still hold the view that what ever language you choose will
be the "wrong one" according to the majority of developers.

> [Making QEMU more modular would help with defeating the legacy
> and back-compat dragons, though]
>
> thanks
> -- PMM

--
Alex Bennée