From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Evans Subject: Re: [PATCH 08/28] kvm tools: Fix KVM_RUN exit code check Date: Wed, 07 Dec 2011 11:32:16 +1100 Message-ID: <4EDEB410.801@ozlabs.org> References: <4EDD8E82.1010909@ozlabs.org> <1323159768.3882.9.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, Alexander Graf To: Sasha Levin Return-path: In-Reply-To: <1323159768.3882.9.camel@lappy> Sender: kvm-ppc-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 06/12/11 19:22, Sasha Levin wrote: > If KVM_RUN can actually return anything besides 0 or -1 it may be also > worthwhile to update Documentation/virtual/kvm/api.txt . > > What are the cases where it happens? Well, on PPC the internal kvmppc_run_vcpu() returns either RESUME_GUEST (which stays in-kernel and drops back to the guest) or RESUME_HOST, which is propagated back out to userland as the return value of ioctl(KVM_RUN). So, anything kvmtool sees is either <0 for error or RESUME_HOST, i.e. 2. Alex, do you think the PPC KVM code should be forced to 0 on success, or is there any value to the expanded the return codes (and updating api.txt) for varying kinds of positive success? Cheers, Matt > > On Tue, 2011-12-06 at 14:39 +1100, Matt Evans wrote: >> kvm_cpu__run() currently die()s if KVM_RUN returns non-zero. Some architectures >> may return positive values in non-error cases, whereas real errors are always >> negative return values. Check for those instead. >> >> Signed-off-by: Matt Evans >> --- >> tools/kvm/kvm-cpu.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/tools/kvm/kvm-cpu.c b/tools/kvm/kvm-cpu.c >> index 9bc0796..884a89f 100644 >> --- a/tools/kvm/kvm-cpu.c >> +++ b/tools/kvm/kvm-cpu.c >> @@ -30,7 +30,7 @@ void kvm_cpu__run(struct kvm_cpu *vcpu) >> int err; >> >> err = ioctl(vcpu->vcpu_fd, KVM_RUN, 0); >> - if (err && (errno != EINTR && errno != EAGAIN)) >> + if (err < 0 && (errno != EINTR && errno != EAGAIN)) >> die_perror("KVM_RUN failed"); >> } >> >> -- >> To unsubscribe from this list: send the line "unsubscribe kvm" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >