Message ID | b1b3b0dd143b7995a7f4062966b80a2cf3e3c71e.1464273085.git.crobinso@redhat.com |
---|---|
State | Superseded |
Headers | show |
On 26 May 2016 at 15:46, Richard W.M. Jones <rjones@redhat.com> wrote: > The problem with this is if I'm using TCG fallback mode, how > can I specify the right gic-version? ie: > > -M virt,gic-version=host,accel=kvm:tcg > > Only qemu knows if KVM is going to be enabled. > > The same problem happens with '-cpu host' BTW. I really want a "make > it work" option, as I've said on several previous occasions on this > list eg: > https://lists.nongnu.org/archive/html/qemu-devel/2014-08/msg04173.html I agree that we really need to do better here (thinking about the problem is on my todo list but generally other more pressing issues intervene). I'd welcome suggestions for semantics which (a) do what you want (b) are reasonably in line with what we do on other host architectures (c) don't break existing command lines. (I think those are the main requirements.) In the meantime I think this patch is correct for what we are currently trying to implement. thanks -- PMM
On 26 May 2016 at 15:31, Cole Robinson <crobinso@redhat.com> wrote: > If you try to gic-version=host with TCG on a KVM aarch64 host, > qemu segfaults, since host requires KVM APIs. > > Explicitly reject gic-version=host if KVM is not enabled > > https://bugzilla.redhat.com/show_bug.cgi?id=1339977 > Signed-off-by: Cole Robinson <crobinso@redhat.com> > --- > hw/arm/virt.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > Applied to target-arm.next, thanks. -- PMM
On 26 May 2016 at 15:53, Peter Maydell <peter.maydell@linaro.org> wrote: > On 26 May 2016 at 15:46, Richard W.M. Jones <rjones@redhat.com> wrote: >> The problem with this is if I'm using TCG fallback mode, how >> can I specify the right gic-version? ie: >> >> -M virt,gic-version=host,accel=kvm:tcg >> >> Only qemu knows if KVM is going to be enabled. >> >> The same problem happens with '-cpu host' BTW. I really want a "make >> it work" option, as I've said on several previous occasions on this >> list eg: >> https://lists.nongnu.org/archive/html/qemu-devel/2014-08/msg04173.html > > I agree that we really need to do better here (thinking about > the problem is on my todo list but generally other more pressing > issues intervene). I'd welcome suggestions for semantics which > (a) do what you want (b) are reasonably in line with what we do > on other host architectures (c) don't break existing command lines. > (I think those are the main requirements.) ...so does anybody have any concrete suggestions? We could fix this for 2.7 but we're starting to run low on time for that. thanks -- PMM
On 17 June 2016 at 17:10, Richard W.M. Jones <rjones@redhat.com> wrote: > On Fri, Jun 17, 2016 at 03:49:38PM +0100, Peter Maydell wrote: >> > I agree that we really need to do better here (thinking about >> > the problem is on my todo list but generally other more pressing >> > issues intervene). I'd welcome suggestions for semantics which >> > (a) do what you want (b) are reasonably in line with what we do >> > on other host architectures (c) don't break existing command lines. >> > (I think those are the main requirements.) >> >> ...so does anybody have any concrete suggestions? We could fix >> this for 2.7 but we're starting to run low on time for that. > > I have changed libguestfs so it tries to guess if KVM will be used or > not. We have to do this for the -cpu option too, but the guess is not > too reliable. Only QEMU has the actual knowledge we need. > > https://github.com/libguestfs/libguestfs/commit/7023f20830a681ef36f8f99415fe41791555a3db > > Can we not have a "give me a GIC which will work" option, eg. > > -M virt,gic-version=besteffort,accel=kvm:tcg > > I don't care if it's not the fastest or most featureful. Do we also not care if the result is not consistent between versions of QEMU? (eg if you go from 2.6 to 2.7 does it have to stay doing the same thing it always did?) thanks -- PMM
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index e77ed88..1e82597 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1122,10 +1122,14 @@ static void machvirt_init(MachineState *machine) * KVM is not available yet */ if (!gic_version) { + if (!kvm_enabled()) { + error_report("gic-version=host requires KVM"); + exit(1); + } + gic_version = kvm_arm_vgic_probe(); if (!gic_version) { error_report("Unable to determine GIC version supported by host"); - error_printf("KVM acceleration is probably not supported\n"); exit(1); } }
If you try to gic-version=host with TCG on a KVM aarch64 host, qemu segfaults, since host requires KVM APIs. Explicitly reject gic-version=host if KVM is not enabled https://bugzilla.redhat.com/show_bug.cgi?id=1339977 Signed-off-by: Cole Robinson <crobinso@redhat.com> --- hw/arm/virt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -- 2.7.4