|
From: | Anthony Liguori |
Subject: | [Qemu-devel] Re: [kvm-devel] [PATCH] [RFC] try to reduce kvm impact in core qemu code. |
Date: | Tue, 29 Apr 2008 19:27:50 -0500 |
User-agent: | Thunderbird 2.0.0.12 (X11/20080227) |
Glauber Costa wrote:
Avi Kivity wrote:Glauber Costa wrote:Hi. This is a proposal for reducing the impact of kvm functions in core qemu code. This is by all means not ready, but I felt like posting it, so a discussionWhile I would be very annoyed if someone referred to kvm as a qemu accelerator, I think accelerator_yyy() is more descriptive than driver_yyy().on it could follow.The idea in this patch is to replace the specific kvm details from core qemu files like vl.c, with driver_yyy() functions. When kvm is not running, those functions wouldjust return (most of time), absolutely reducing the impact of kvm code.As I wanted to test it, in this patch I changed the kvm functions to be called driver_yyy(), but that's not my final goal. I intend to use a function pointer schema, similar to what the linuxkernel already do for a lot of its subsystem, to isolate the changes. Comments deeply welcome.How about booster? ;-)
I don't think the concern from a QEMU perspective is that QEMU is too intimately tied to KVM. The concern is that overtime, it will be very difficult to make changes to QEMU without breaking KVM support because of the shear number of hooks we require. Fabrice had actually suggested merging libkvm into QEMU. We just need to reduce the overall number of if (kvm_enabled()) blocks.
You have to understand a lot about KVM to know why it's necessary to do an register reload call-out in the vmport hw for instance. Instead of introducing generic hooks in vmport, a more appropriate solution may be to add wrappers to read individual register values within the QEMU device code. We can then add our hooks to that. I think a good argument can be made that devices should never access env-> directly.
Regards, Anthony Liguori
[Prev in Thread] | Current Thread | [Next in Thread] |