From patchwork Mon Apr 14 16:48:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cornelia Huck X-Patchwork-Id: 339011 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 7881B14008E for ; Tue, 15 Apr 2014 02:51:20 +1000 (EST) Received: from localhost ([::1]:44292 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WZk6I-0005gr-BR for incoming@patchwork.ozlabs.org; Mon, 14 Apr 2014 12:51:18 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WZk40-0002Dr-33 for qemu-devel@nongnu.org; Mon, 14 Apr 2014 12:49:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WZk3o-0004Hk-Ns for qemu-devel@nongnu.org; Mon, 14 Apr 2014 12:48:56 -0400 Received: from e06smtp15.uk.ibm.com ([195.75.94.111]:41113) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WZk3o-0004HZ-Ev for qemu-devel@nongnu.org; Mon, 14 Apr 2014 12:48:44 -0400 Received: from /spool/local by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 14 Apr 2014 17:48:43 +0100 Received: from d06dlp01.portsmouth.uk.ibm.com (9.149.20.13) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Mon, 14 Apr 2014 17:48:41 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp01.portsmouth.uk.ibm.com (Postfix) with ESMTP id BD25617D8047 for ; Mon, 14 Apr 2014 17:49:35 +0100 (BST) Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by b06cxnps4076.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s3EGmeiK63897644 for ; Mon, 14 Apr 2014 16:48:40 GMT Received: from d06av09.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s3EGme8X009757 for ; Mon, 14 Apr 2014 10:48:40 -0600 Received: from gondolin.boeblingen.de.ibm.com (dyn-9-152-224-107.boeblingen.de.ibm.com [9.152.224.107]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s3EGmXlG009338; Mon, 14 Apr 2014 10:48:40 -0600 From: Cornelia Huck To: qemu-devel@nongnu.org Date: Mon, 14 Apr 2014 18:48:29 +0200 Message-Id: <1397494110-5756-9-git-send-email-cornelia.huck@de.ibm.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1397494110-5756-1-git-send-email-cornelia.huck@de.ibm.com> References: <1397494110-5756-1-git-send-email-cornelia.huck@de.ibm.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14041416-0342-0000-0000-000008706A05 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 195.75.94.111 Cc: Cornelia Huck , borntraeger@de.ibm.com, agraf@suse.de Subject: [Qemu-devel] [PATCH 8/9] s390x/kvm: rework KVM synchronize to tracing for some ONEREGS X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Christian Borntraeger Some ONE_REGS on s390 are not protected by a capability. Older kernels might not provide those and return an error. Fortunately these registers are only critical for the migration path. There is no need to error out on reset and normal runtime. Furthermore, these kernels don't provide a proper dirty bitmap anyway, so let's use tracing for those errors. Signed-off-by: Christian Borntraeger Reviewed-by: Jason J. Herne Reviewed-by: Thomas Huth Signed-off-by: Cornelia Huck --- target-s390x/kvm.c | 31 +++++++++++++------------------ trace-events | 4 ++++ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c index db9777c..ec1ce2f 100644 --- a/target-s390x/kvm.c +++ b/target-s390x/kvm.c @@ -36,6 +36,7 @@ #include "sysemu/device_tree.h" #include "qapi/qmp/qjson.h" #include "monitor/monitor.h" +#include "trace.h" /* #define DEBUG_KVM */ @@ -164,23 +165,20 @@ int kvm_arch_put_registers(CPUState *cs, int level) reg.id = KVM_REG_S390_CPU_TIMER; reg.addr = (__u64)&(env->cputm); - ret = kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®); - if (ret < 0) { - return ret; + if (kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®)) { + trace_kvm_failed_reg_set(reg.id, strerror(errno)); } reg.id = KVM_REG_S390_CLOCK_COMP; reg.addr = (__u64)&(env->ckc); - ret = kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®); - if (ret < 0) { - return ret; + if (kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®)) { + trace_kvm_failed_reg_set(reg.id, strerror(errno)); } reg.id = KVM_REG_S390_TODPR; reg.addr = (__u64)&(env->todpr); - ret = kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®); - if (ret < 0) { - return ret; + if (kvm_vcpu_ioctl(cs, KVM_SET_ONE_REG, ®)) { + trace_kvm_failed_reg_set(reg.id, strerror(errno)); } if (cap_async_pf) { @@ -291,23 +289,20 @@ int kvm_arch_get_registers(CPUState *cs) /* One Regs */ reg.id = KVM_REG_S390_CPU_TIMER; reg.addr = (__u64)&(env->cputm); - r = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®); - if (r < 0) { - return r; + if (kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®)) { + trace_kvm_failed_reg_get(reg.id, strerror(errno)); } reg.id = KVM_REG_S390_CLOCK_COMP; reg.addr = (__u64)&(env->ckc); - r = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®); - if (r < 0) { - return r; + if (kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®)) { + trace_kvm_failed_reg_get(reg.id, strerror(errno)); } reg.id = KVM_REG_S390_TODPR; reg.addr = (__u64)&(env->todpr); - r = kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®); - if (r < 0) { - return r; + if (kvm_vcpu_ioctl(cs, KVM_GET_ONE_REG, ®)) { + trace_kvm_failed_reg_get(reg.id, strerror(errno)); } if (cap_async_pf) { diff --git a/trace-events b/trace-events index 9303245..47882b4 100644 --- a/trace-events +++ b/trace-events @@ -1222,3 +1222,7 @@ xen_pv_mmio_write(uint64_t addr) "WARNING: write to Xen PV Device MMIO space (ad # hw/pci/pci_host.c pci_cfg_read(const char *dev, unsigned devid, unsigned fnid, unsigned offs, unsigned val) "%s %02u:%u @0x%x -> 0x%x" pci_cfg_write(const char *dev, unsigned devid, unsigned fnid, unsigned offs, unsigned val) "%s %02u:%u @0x%x <- 0x%x" + +# target-s390/kvm.c +kvm_failed_reg_get(uint64_t id, const char *msg) "Warning: Unable to retrieve ONEREG %" PRIu64 " from KVM: %s" +kvm_failed_reg_set(uint64_t id, const char *msg) "Warning: Unable to set ONEREG %" PRIu64 " to KVM: %s"