From: Avi Kivity <avi-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
To: Anthony Liguori <aliguori-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH 7/7] Allow KVM from a normal QEMU binary
Date: Sun, 05 Nov 2006 19:48:30 +0200 [thread overview]
Message-ID: <454E23EE.7040505@qumranet.com> (raw)
In-Reply-To: <454E1F40.2070200-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org>
Anthony Liguori wrote:
>
>>
>> Most of the places where USE_KVM is used are now never called - they
>> are relics from the days when we had mixed qemu/kvm execution.
>
> One of the things I was thinking of doing was getting rid of USE_KVM
> completely. What I was thinking of doing is moving kvmctl.[ch] into
> the QEMU tree
I'd like to keep kvmctl out, so that non-qemu based userspace can be
built. True, I wouldn't like to be the one to do it, but I'd like to
keep the possibility open.
> and refactoring things a bit so that it fails gracefully in the
> absence of a working KVM device.
Sure, if it can't create a kvm vm it should fall back to kqemu or normal
emulation.
>
> The idea is to get rid of external dependencies. What are your
> thoughts on this? Do you think there will be significant users of
> libkvm.a outside of QEMU?
Right now there's just the (mostly broken) test suite.
>
>> Now, the "big real" fiasco means that we need some sort of emulation,
>> but I'm not sure the qemu cpu loop is the best choice. Qemu is very
>> complex because it is geared to multi-host, multi-target,
>> high-performance emulation. The cpu state is baroque, and SMP isn't
>> going to be fun.
>
> Right.
>
>> I think we're better off with taking the x86 emulator from the kernel
>> and extending it to support the non-memory instructions. It can run
>> in the kernel or userspace since there's no performance requirement.
>
> This is the opposite strategy that Xen is taking FWIW. You not only
> need a full 16 bit emulator but a 32 bit emulator too (to deal with
> the transitions to/from userspace).
We need a real-mode emulator. That includes 16 and 32 bits (via prefixes).
We already have some significant fraction of it in x86_emulator.c.
Whether to extend it (in the kernel or in userspace) or to use some
other emulator is a good question. Of course, we can use qemu, but
that's fairly complex.
>
> The tree we're working in is:
>
> http://xenbits.xensource.com/ext/xen-unstable-hvm.hg
>
> Linux kernel boots quite nicely and I'm in the process of debugging
> why Windows guests aren't booting (there appears to be a problem in
> the state transfer right now).
State transfer is what turned us of qemu. Reconstructing the state
(esp. eflags and the segments) is quite difficult and there are some
annoying qemu bugs (like the busy task flag checks).
BTW, dumping qemu cpu emulation will allow us to use gcc 4.x instead of
gcc 3.x.
>
> SMP guest support is still a hard problem that needs thinking through
> but if Xen solves it, KVM can use the solution (or vice versa).
I don't see a huge problem. We'll have to get the APIC right, and the
mmu locking right in the kernel, but what else?
>
> Don't discount the importance of 16 bit emulation performance. I use
> QEMU a lot to play old DOS games :-)
We'll add an option to udelay() in strategic places :)
--
error compiling committee.c: too many arguments to function
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
next prev parent reply other threads:[~2006-11-05 17:48 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-03 6:21 [PATCH 0/7] Split up QEMU patches Anthony Liguori
[not found] ` <454AE007.5070905-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org>
2006-11-03 6:25 ` [PATCH 1/7] Compile fix for usb-linux.c Anthony Liguori
2006-11-03 6:26 ` [PATCH 2/7] APIC save/restore fix Anthony Liguori
2006-11-03 6:27 ` [PATCH 3/7] Timer " Anthony Liguori
2006-11-03 6:29 ` [PATCH 4/7] gdbstub for x86-64 Anthony Liguori
2006-11-03 6:30 ` [PATCH 5/7] VMDK Snapshot Support Anthony Liguori
2006-11-03 6:31 ` [PATCH 6/7] KVM changes for QEMU Anthony Liguori
2006-11-03 6:35 ` [PATCH 7/7] Allow KVM from a normal QEMU binary Anthony Liguori
[not found] ` <454AE323.8090309-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org>
2006-11-05 9:27 ` Avi Kivity
[not found] ` <454DAE74.4030306-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-11-05 17:28 ` Anthony Liguori
[not found] ` <454E1F40.2070200-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org>
2006-11-05 17:48 ` Avi Kivity [this message]
[not found] ` <454E23EE.7040505-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-11-05 18:18 ` Anthony Liguori
[not found] ` <454E2ADC.1060607-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org>
2006-11-05 18:29 ` Avi Kivity
[not found] ` <454E2DA4.8070405-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2006-11-05 19:53 ` Anthony Liguori
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=454E23EE.7040505@qumranet.com \
--to=avi-atkuwr5tajbwk0htik3j/w@public.gmane.org \
--cc=aliguori-NZpS4cJIG2HvQtjrzfazuQ@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/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