From nobody Mon Feb 9 23:01:56 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614795851; cv=none; d=zohomail.com; s=zohoarc; b=J/VFSd+z/4/MIQjLVkW3wtKJRAGBdWJpi+eDspByZ9HDt7luskAh075ETf69PJx1Quw+g0l7XCFQXVBdAs05TCqPEALy7VqxPof2q31AxoKJiTDczTi0xAe214z2pOj5QIaynFsprrmQC4wp0CcPbjPowtE6sIv8Cumu9z9Vq/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614795851; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=aZTO3x/pXi2BQffGU8Ahgki8e6dMOggVVDCSg/uLSOA=; b=c6JKFfoeMiuYKk+xUqT5jEIO2Wa5ZggsCYsmRDYKD1XuQkyc83oCkcHQLsjaPvxVPLsw2SWg6Uta/8Rbmxq2N/16obWAUsPxk/QYTTA2YGawGLt56OM4MufZeMxr6NC3Q5Kw51l/82QL5lZidq4xtozuw+9Qcy87+jtFetUk3V8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1614795851903173.25936650272104; Wed, 3 Mar 2021 10:24:11 -0800 (PST) Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-220-mK4UcxCoN02paEadYmGntg-1; Wed, 03 Mar 2021 13:24:09 -0500 Received: by mail-wr1-f69.google.com with SMTP id n17so995637wrq.5 for ; Wed, 03 Mar 2021 10:24:09 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id h19sm6328046wmq.47.2021.03.03.10.24.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Mar 2021 10:24:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614795850; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=aZTO3x/pXi2BQffGU8Ahgki8e6dMOggVVDCSg/uLSOA=; b=LXurh+kw0YM6nQGPjKmV8lxoOnNHzMPu+reNYp86hqydxSdofhp5ztKnUL5Yud/do8Qtdx +lv3KfsNKXLbADL8U31/0HV1aEyoNS1kXiW3lIGxMpFJxW77XoUY2472RVDnYAjKhbF3zy +XIFLQJxKYuvuQDSWRQ4X8TUmKwwJq0= X-MC-Unique: mK4UcxCoN02paEadYmGntg-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aZTO3x/pXi2BQffGU8Ahgki8e6dMOggVVDCSg/uLSOA=; b=rb7YPDnwESDwCXZnPFiDikeAPLPgmh+psEMutTC8CpRZWHkInSB0QZijl1TUnaYJw5 PNCgrDN6nPbSBBAisnmZhs8OEv5ymZfIAcMoP0+bPpk279X8BfGoVgFcRKqyTfQ2hLcW BJk3W0Of//CPPPtjMUH/3jF3Ol4yBd78n8KzCD42pCQYA70ktnqmharjnNQQmFz3Qh6l NeKGrCGaKd8iHte1cnvHVUZm5GZ9vRP3NaygZVqyJt/bGdGzn//gHMD02Fxe0QzJVofA lWnQerzzriBsaDiCErXrkbGBjoPh0eU0fn+lToDx73vnpSdDspkSzm7KwpPazF5sR5DX wqng== X-Gm-Message-State: AOAM533GrKNNtzpI2gr5eBECpGvz6faTMDKhxXeNx+DUuKidV1gJbzmB h/Qzm9BkW6agx/NGcAwg5JKtdFwqd3MADryaLmAnuOwhVUuANl6nD76KKR3Frp6mOulJD7c/RTK 1WiEPQSb+onwYVQ== X-Received: by 2002:adf:e482:: with SMTP id i2mr28326968wrm.392.1614795847429; Wed, 03 Mar 2021 10:24:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJysTIK0lXRu39FtCQ9OTCPkfsknp8BOt8AZSrD9mXO72PDaVrwkpYfYBypZC5XeuQMn16k2cw== X-Received: by 2002:adf:e482:: with SMTP id i2mr28326953wrm.392.1614795847187; Wed, 03 Mar 2021 10:24:07 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Eduardo Habkost , Cornelia Huck , Richard Henderson , Sunil Muthuswamy , Marcelo Tosatti , David Gibson , Marcel Apfelbaum , kvm@vger.kernel.org, Wenchao Wang , Thomas Huth , Cameron Esfahani , Paolo Bonzini , David Hildenbrand , Roman Bolshakov , Peter Maydell , Greg Kurz , qemu-arm@nongnu.org, Halil Pasic , Colin Xu , Claudio Fontana , qemu-ppc@nongnu.org, Christian Borntraeger , qemu-s390x@nongnu.org, haxm-team@intel.com, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH 16/19] accel/kvm: Move the 'kvm_run' field to AccelvCPUState Date: Wed, 3 Mar 2021 19:22:16 +0100 Message-Id: <20210303182219.1631042-17-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210303182219.1631042-1-philmd@redhat.com> References: <20210303182219.1631042-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Patch created mechanically using: $ sed -i 's/->kvm_run/->accel_vcpu->kvm_run/' $(git grep -l kvm_run) Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/core/cpu.h | 1 - include/sysemu/kvm_int.h | 1 + accel/kvm/kvm-all.c | 16 ++++++++-------- hw/s390x/pv.c | 3 ++- target/i386/kvm/kvm.c | 2 +- target/s390x/kvm.c | 19 ++++++++++--------- 6 files changed, 22 insertions(+), 20 deletions(-) diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index 4f280509f9b..3268f1393f1 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -415,7 +415,6 @@ struct CPUState { =20 /* Accelerator-specific fields. */ struct AccelvCPUState *accel_vcpu; - struct kvm_run *kvm_run; int hvf_fd; /* shared by kvm, hax and hvf */ bool vcpu_dirty; diff --git a/include/sysemu/kvm_int.h b/include/sysemu/kvm_int.h index dc45b3c3afa..b83264847aa 100644 --- a/include/sysemu/kvm_int.h +++ b/include/sysemu/kvm_int.h @@ -19,6 +19,7 @@ struct AccelvCPUState { */ int kvm_fd; struct KVMState *kvm_state; + struct kvm_run *kvm_run; }; =20 typedef struct KVMSlot diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c index 737db3d3e0e..69df35497d2 100644 --- a/accel/kvm/kvm-all.c +++ b/accel/kvm/kvm-all.c @@ -380,7 +380,7 @@ static int do_kvm_destroy_vcpu(CPUState *cpu) goto err; } =20 - ret =3D munmap(cpu->kvm_run, mmap_size); + ret =3D munmap(cpu->accel_vcpu->kvm_run, mmap_size); if (ret < 0) { goto err; } @@ -448,9 +448,9 @@ int kvm_init_vcpu(CPUState *cpu, Error **errp) goto err; } =20 - cpu->kvm_run =3D mmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_SHA= RED, - cpu->accel_vcpu->kvm_fd, 0); - if (cpu->kvm_run =3D=3D MAP_FAILED) { + cpu->accel_vcpu->kvm_run =3D mmap(NULL, mmap_size, PROT_READ | PROT_WR= ITE, + MAP_SHARED, cpu->accel_vcpu->kvm_fd, 0= ); + if (cpu->accel_vcpu->kvm_run =3D=3D MAP_FAILED) { ret =3D -errno; error_setg_errno(errp, ret, "kvm_init_vcpu: mmap'ing vcpu state failed (%lu)", @@ -460,7 +460,7 @@ int kvm_init_vcpu(CPUState *cpu, Error **errp) =20 if (s->coalesced_mmio && !s->coalesced_mmio_ring) { s->coalesced_mmio_ring =3D - (void *)cpu->kvm_run + s->coalesced_mmio * PAGE_SIZE; + (void *)cpu->accel_vcpu->kvm_run + s->coalesced_mmio * PAGE_SI= ZE; } =20 ret =3D kvm_arch_init_vcpu(cpu); @@ -2382,7 +2382,7 @@ static __thread bool have_sigbus_pending; =20 static void kvm_cpu_kick(CPUState *cpu) { - qatomic_set(&cpu->kvm_run->immediate_exit, 1); + qatomic_set(&cpu->accel_vcpu->kvm_run->immediate_exit, 1); } =20 static void kvm_cpu_kick_self(void) @@ -2403,7 +2403,7 @@ static void kvm_eat_signals(CPUState *cpu) int r; =20 if (kvm_immediate_exit) { - qatomic_set(&cpu->kvm_run->immediate_exit, 0); + qatomic_set(&cpu->accel_vcpu->kvm_run->immediate_exit, 0); /* Write kvm_run->immediate_exit before the cpu->exit_request * write in kvm_cpu_exec. */ @@ -2431,7 +2431,7 @@ static void kvm_eat_signals(CPUState *cpu) =20 int kvm_cpu_exec(CPUState *cpu) { - struct kvm_run *run =3D cpu->kvm_run; + struct kvm_run *run =3D cpu->accel_vcpu->kvm_run; int ret, run_ret; =20 DPRINTF("kvm_cpu_exec()\n"); diff --git a/hw/s390x/pv.c b/hw/s390x/pv.c index 93eccfc05d5..061c92fc4e3 100644 --- a/hw/s390x/pv.c +++ b/hw/s390x/pv.c @@ -17,6 +17,7 @@ #include "qapi/error.h" #include "qemu/error-report.h" #include "sysemu/kvm.h" +#include "sysemu/kvm_int.h" #include "qom/object_interfaces.h" #include "exec/confidential-guest-support.h" #include "hw/s390x/ipl.h" @@ -108,7 +109,7 @@ void s390_pv_unshare(void) =20 void s390_pv_inject_reset_error(CPUState *cs) { - int r1 =3D (cs->kvm_run->s390_sieic.ipa & 0x00f0) >> 4; + int r1 =3D (cs->accel_vcpu->kvm_run->s390_sieic.ipa & 0x00f0) >> 4; CPUS390XState *env =3D &S390_CPU(cs)->env; =20 /* Report that we are unable to enter protected mode */ diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index b2facf4f7c1..c0ccaf6b06a 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -4329,7 +4329,7 @@ static int kvm_handle_halt(X86CPU *cpu) static int kvm_handle_tpr_access(X86CPU *cpu) { CPUState *cs =3D CPU(cpu); - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; =20 apic_handle_tpr_access_report(cpu->apic_state, run->tpr_access.rip, run->tpr_access.is_write ? TPR_ACCESS_WR= ITE diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index cf6790b2678..7968b10fa52 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -460,14 +460,15 @@ void kvm_s390_reset_vcpu_normal(S390CPU *cpu) =20 static int can_sync_regs(CPUState *cs, int regs) { - return cap_sync_regs && (cs->kvm_run->kvm_valid_regs & regs) =3D=3D re= gs; + return cap_sync_regs + && (cs->accel_vcpu->kvm_run->kvm_valid_regs & regs) =3D=3D regs; } =20 int kvm_arch_put_registers(CPUState *cs, int level) { S390CPU *cpu =3D S390_CPU(cs); CPUS390XState *env =3D &cpu->env; - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; struct kvm_sregs sregs; struct kvm_regs regs; struct kvm_fpu fpu =3D {}; @@ -624,7 +625,7 @@ int kvm_arch_get_registers(CPUState *cs) { S390CPU *cpu =3D S390_CPU(cs); CPUS390XState *env =3D &cpu->env; - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; struct kvm_sregs sregs; struct kvm_regs regs; struct kvm_fpu fpu; @@ -1621,8 +1622,8 @@ void kvm_s390_set_diag318(CPUState *cs, uint64_t diag= 318_info) /* Feat bit is set only if KVM supports sync for diag318 */ if (s390_has_feat(S390_FEAT_DIAG_318)) { env->diag318_info =3D diag318_info; - cs->kvm_run->s.regs.diag318 =3D diag318_info; - cs->kvm_run->kvm_dirty_regs |=3D KVM_SYNC_DIAG318; + cs->accel_vcpu->kvm_run->s.regs.diag318 =3D diag318_info; + cs->accel_vcpu->kvm_run->kvm_dirty_regs |=3D KVM_SYNC_DIAG318; } } =20 @@ -1783,7 +1784,7 @@ static int handle_oper_loop(S390CPU *cpu, struct kvm_= run *run) static int handle_intercept(S390CPU *cpu) { CPUState *cs =3D CPU(cpu); - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; int icpt_code =3D run->s390_sieic.icptcode; int r =3D 0; =20 @@ -1844,7 +1845,7 @@ static int handle_intercept(S390CPU *cpu) static int handle_tsch(S390CPU *cpu) { CPUState *cs =3D CPU(cpu); - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; int ret; =20 ret =3D ioinst_handle_tsch(cpu, cpu->env.regs[1], run->s390_tsch.ipb, @@ -1934,7 +1935,7 @@ static void insert_stsi_3_2_2(S390CPU *cpu, __u64 add= r, uint8_t ar) static int handle_stsi(S390CPU *cpu) { CPUState *cs =3D CPU(cpu); - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; =20 switch (run->s390_stsi.fc) { case 3: @@ -1952,7 +1953,7 @@ static int handle_stsi(S390CPU *cpu) static int kvm_arch_handle_debug_exit(S390CPU *cpu) { CPUState *cs =3D CPU(cpu); - struct kvm_run *run =3D cs->kvm_run; + struct kvm_run *run =3D cs->accel_vcpu->kvm_run; =20 int ret =3D 0; struct kvm_debug_exit_arch *arch_info =3D &run->debug.arch; --=20 2.26.2