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 <matt@xxxxxxxxxx> >> --- >> 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@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html