From nobody Fri May 17 07:47:16 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1629270735; cv=none; d=zohomail.com; s=zohoarc; b=G9iMsnqMcDAQ7mDdMR7svQljk1Czj0NezxbefDS0cex1jo31nCSjyMMKxKa4ZH1buCuGqwGGLnmt2Vr5llUx5bvaJpJtY6Ef8Pfz7JHRwLLw8JYg6fdMA1kVLCk+XGv+L2bZEYTr+9+Z/CJ33db2s29XXGtjLlKXFyTQ3Xaf9UQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629270735; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=I4d5/jylUJng8gB+j35WYKKGet2c3NfEVZGEKd+aN0I=; b=CpKrvqQg5gDWtnGZthDJWOlaf+ZIUhwDrnwaCyt9tyAOW5giTCZbc8zZ9g3Wqgj5O1pCN6j57cSw0Taijz2HHPd2s2n22+5p5EXVA4+52Np8qzxdtXWDFW9osUgSmMo/y5MhLEtnXfxWbuHhNd7jUgKLBBUF2qmYR73unvh6Os0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1629270735850840.0016843148534; Wed, 18 Aug 2021 00:12:15 -0700 (PDT) Received: from localhost ([::1]:36794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mGFkE-0000hW-OF for importer@patchew.org; Wed, 18 Aug 2021 03:12:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54472) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGFhE-0006HW-Oy for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:08 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:51899) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mGFhC-0008F9-Po for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:08 -0400 Received: by mail-wm1-x32f.google.com with SMTP id u15so947200wmj.1 for ; Wed, 18 Aug 2021 00:09:06 -0700 (PDT) Received: from laral.fritz.box (200116b82b53c5004989ea3bb9da8dea.dip.versatel-1u1.de. [2001:16b8:2b53:c500:4989:ea3b:b9da:8dea]) by smtp.gmail.com with ESMTPSA id w18sm4902609wrg.68.2021.08.18.00.09.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Aug 2021 00:09:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=I4d5/jylUJng8gB+j35WYKKGet2c3NfEVZGEKd+aN0I=; b=MRnQfrHccQoIjUaBUepI9Hnrl4ZsTGld5djqOmR9bmU+BqS8rkom2SH/Ocj1PieROI hKS+ikA4vOCojBARyM8WuMMhC2X0tzQ5KMdGf/jqnpmmUFdx99o6w0uvqCINWF1jBxnA HxI6BReVQWZmFYKlQinv6WLOJRpUbDxcCeOTA5onGaZox7N1TjqkyGIrhCfkYXplVwYO ylh4CBv2c0qbBi5JrzOFj16dCHETX75e4RKoea7OjBqPkVT9K1Hxg7n2Vuz8h119derv oVq3MFNFD/BO+O9pFklQydiavyizguV0JvLE49enBtu8ZLPb1bZshxXng+eVfrq4uoSi hkCA== 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=I4d5/jylUJng8gB+j35WYKKGet2c3NfEVZGEKd+aN0I=; b=FAMkMMg0NhX2neV5dz5SBmcBKkIkpd27JHKKV2M/WzUxJvzkt3MkUIk+65FFjMkbYk dp1zUGgF7jvxuA//X9MbAYLwbI5yEUxx8vwY3IcJ5ilYwhwTmAZ/aCG7raAjcz7QJYZp ZQwoco7ywCy5lsHAeIW7CnVcLW63POhiimJhxe3NK4x1AM8nF1N/78O/VTKksLYL8tN2 X9Oa7nC6RPQoM6UfRnDm+Rqsxwh6u/xIXvP2MO2gUr5mJmhZvrN+kX1q4IxWpuU5uHGw WL+0yP/Wkg8IjySO8Ku/vXRvEWZPKL/56gvrXjL87FK2lsqAm8/LMl0mkIDQo44nvs/5 OMsA== X-Gm-Message-State: AOAM5307msOZhLa/iTOjQr9DdgnAwZbarbgRe0m1OnARtjCWqUV+MN3K D0Z8Qw8C3aYpzsYtDawIW5Cj9f3A8vA= X-Google-Smtp-Source: ABdhPJyNX/cOZfNLaisoqZodvmG7V1d/EOxAia2zOO72IBQ7Jtghk/unjcK0CL0nBbH++IBvwJ8svg== X-Received: by 2002:a1c:2547:: with SMTP id l68mr7221296wml.23.1629270545456; Wed, 18 Aug 2021 00:09:05 -0700 (PDT) From: Lara Lazier To: qemu-devel@nongnu.org Subject: [PATCH 2/4] target/i386: Added VGIF V_IRQ masking capability Date: Wed, 18 Aug 2021 09:08:36 +0200 Message-Id: <20210818070838.44344-4-laramglazier@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210818070838.44344-1-laramglazier@gmail.com> References: <20210818070838.44344-1-laramglazier@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=laramglazier@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, Lara Lazier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1629270736628100005 Content-Type: text/plain; charset="utf-8" VGIF provides masking capability for when virtual interrupts are taken. (APM2) Signed-off-by: Lara Lazier --- target/i386/cpu.c | 7 +++++-- target/i386/cpu.h | 2 ++ target/i386/tcg/sysemu/svm_helper.c | 12 ++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 5dcdab3b80..b2094175d9 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5649,6 +5649,7 @@ static void x86_cpu_reset(DeviceState *dev) /* init to reset state */ env->int_ctl =3D 0; env->hflags2 |=3D HF2_GIF_MASK; + env->hflags2 |=3D HF2_VGIF_MASK; env->hflags &=3D ~HF_GUEST_MASK; =20 cpu_x86_update_cr0(env, 0x60000010); @@ -6532,10 +6533,12 @@ int x86_cpu_pending_interrupt(CPUState *cs, int int= errupt_request) !(env->hflags & HF_INHIBIT_IRQ_MASK))))) { return CPU_INTERRUPT_HARD; #if !defined(CONFIG_USER_ONLY) - } else if ((interrupt_request & CPU_INTERRUPT_VIRQ) && + } else if (env->hflags2 & HF2_VGIF_MASK) { + if((interrupt_request & CPU_INTERRUPT_VIRQ) && (env->eflags & IF_MASK) && !(env->hflags & HF_INHIBIT_IRQ_MASK)) { - return CPU_INTERRUPT_VIRQ; + return CPU_INTERRUPT_VIRQ; + } #endif } } diff --git a/target/i386/cpu.h b/target/i386/cpu.h index e27a1aab99..d26df6de6b 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -203,6 +203,7 @@ typedef enum X86Seg { #define HF2_MPX_PR_SHIFT 5 /* BNDCFGx.BNDPRESERVE */ #define HF2_NPT_SHIFT 6 /* Nested Paging enabled */ #define HF2_IGNNE_SHIFT 7 /* Ignore CR0.NE=3D0 */ +#define HF2_VGIF_SHIFT 8 /* Can take VIRQ*/ =20 #define HF2_GIF_MASK (1 << HF2_GIF_SHIFT) #define HF2_HIF_MASK (1 << HF2_HIF_SHIFT) @@ -212,6 +213,7 @@ typedef enum X86Seg { #define HF2_MPX_PR_MASK (1 << HF2_MPX_PR_SHIFT) #define HF2_NPT_MASK (1 << HF2_NPT_SHIFT) #define HF2_IGNNE_MASK (1 << HF2_IGNNE_SHIFT) +#define HF2_VGIF_MASK (1 << HF2_VGIF_SHIFT) =20 #define CR0_PE_SHIFT 0 #define CR0_MP_SHIFT 1 diff --git a/target/i386/tcg/sysemu/svm_helper.c b/target/i386/tcg/sysemu/s= vm_helper.c index 9ef2454779..2c44bdb243 100644 --- a/target/i386/tcg/sysemu/svm_helper.c +++ b/target/i386/tcg/sysemu/svm_helper.c @@ -130,6 +130,11 @@ static inline bool virtual_gif_enabled(CPUX86State *en= v) return false; } =20 +static inline bool virtual_gif_set(CPUX86State *env) +{ + return !virtual_gif_enabled(env) || (env->int_ctl & V_GIF_MASK); +} + void helper_vmrun(CPUX86State *env, int aflag, int next_eip_addend) { CPUState *cs =3D env_cpu(env); @@ -363,6 +368,10 @@ void helper_vmrun(CPUX86State *env, int aflag, int nex= t_eip_addend) cs->interrupt_request |=3D CPU_INTERRUPT_VIRQ; } =20 + if (virtual_gif_set(env)) { + env->hflags2 |=3D HF2_VGIF_MASK; + } + /* maybe we need to inject an event */ event_inj =3D x86_ldl_phys(cs, env->vm_vmcb + offsetof(struct vmcb, control.event_inj)); @@ -519,6 +528,7 @@ void helper_stgi(CPUX86State *env) =20 if (virtual_gif_enabled(env)) { env->int_ctl |=3D V_GIF_MASK; + env->hflags2 |=3D HF2_VGIF_MASK; } else { env->hflags2 |=3D HF2_GIF_MASK; } @@ -530,6 +540,7 @@ void helper_clgi(CPUX86State *env) =20 if (virtual_gif_enabled(env)) { env->int_ctl &=3D ~V_GIF_MASK; + env->hflags2 &=3D ~HF2_VGIF_MASK; } else { env->hflags2 &=3D ~HF2_GIF_MASK; } @@ -811,6 +822,7 @@ void do_vmexit(CPUX86State *env) env->vm_vmcb + offsetof(struct vmcb, control.event_inj), 0); =20 env->hflags2 &=3D ~HF2_GIF_MASK; + env->hflags2 &=3D ~HF2_VGIF_MASK; /* FIXME: Resets the current ASID register to zero (host ASID). */ =20 /* Clears the V_IRQ and V_INTR_MASKING bits inside the processor. */ --=20 2.25.1 From nobody Fri May 17 07:47:16 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1629270876; cv=none; d=zohomail.com; s=zohoarc; b=cJ6TsT56stfSqexSn3MMjOSuY6n6TU30cbMYYLegtu7Yhj6zN8Sug1jT0mkZqmj1cec6XbfROuZGRMcmGDG3OMJ1XFNdeOMtYQKbxtKDGom47Ir2UVZkFnF7t1BNwVuw2KJhr4Z2kuSKwmveyxsKAL0EVXuuaJXwCTpffRX4CXM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629270876; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=SrrokDPajS6nMF2KbWHnqmO0OBFdFaecOU4LdS0Cd44=; b=AMJz80PTD01koJWzYdwrEBKhRXDo4R8l0OvNr4TvY/sIf3Ul+hbB9TO0cVvWi6MuHL9QvSjz3VA0+AxY7gfOXqOq/BYe18G1NPhXbw65hWQOI5RUA3LC48JO17TYDv8H4xuXkd5WPbQEZvvgyW7Mhx2UjxxYk5nRzOnzIK829OE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1629270876640225.58616047827672; Wed, 18 Aug 2021 00:14:36 -0700 (PDT) Received: from localhost ([::1]:43642 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mGFmV-0005Hw-Kj for importer@patchew.org; Wed, 18 Aug 2021 03:14:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54490) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGFhF-0006Iq-Ol for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:09 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:36805) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mGFhE-0008Fj-BV for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:09 -0400 Received: by mail-wm1-x331.google.com with SMTP id 79-20020a1c0452000000b002e6cf79e572so3667500wme.1 for ; Wed, 18 Aug 2021 00:09:07 -0700 (PDT) Received: from laral.fritz.box (200116b82b53c5004989ea3bb9da8dea.dip.versatel-1u1.de. [2001:16b8:2b53:c500:4989:ea3b:b9da:8dea]) by smtp.gmail.com with ESMTPSA id w18sm4902609wrg.68.2021.08.18.00.09.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Aug 2021 00:09:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SrrokDPajS6nMF2KbWHnqmO0OBFdFaecOU4LdS0Cd44=; b=TdXvgLtbMSwYCrO5hjti9UUwhuOv6tzaEqKMC/ZMXyxmN0zB7pKgnBgAplZFdkwhKt MEwLhFqrYjDvL5ySB7v9OIn9JbAG5oAv04gDlywuyIxTFOmd8qdKlLLkM5uJA0GjRsaH I8Gpt4IbkgwkSdBRkR9P4Sfr2sF5g/E6/Qshb77JM/SHETt45VHzTEGfeq3cCujNFAME hsbQASMDmsTnHCD3EbFeKCs20F23hmsjSjb4+mnvBMrDkz4aUWIUU7DhHhZ7TJzdGPAr Mu6mbNxMr7v7cvPWHQiSlA2LRJvzGgH+YyRHpH7vp0BKDpv4GcWxpAhc5mqtmSi6uE7C IFqA== 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=SrrokDPajS6nMF2KbWHnqmO0OBFdFaecOU4LdS0Cd44=; b=cMyibndA+P3EDwN55ek/xN4MkflM7OVzTvY11PL/LUcFn8fvEBZhz6piJL325sU4cQ PNKkqE1nAdVi8tmtnpYgY4MBpBukosidSZx+Qa0ZCKwk/LUIvtEGyOQfCYLxQo5zAv/v DFZgTsn7XMihunk/9t9K3NB3+UbrRUNNu6p0q2AJV0AUY8GlZXvmfYeUSS5lgVaZIV1S 8qJhf2JfcmnEHFNpCU+4krCI5l5tlbHnhiNqmlIWSDmqfe9DMX/ompboPmukowD4a9cP E0QVBhUchHYmNR7c5u/d9yrnqn7xZb9thbt1lLhwFFYYeQPQBPSAfFtZA1yU6HDiYs15 P3vQ== X-Gm-Message-State: AOAM532WZGOQO3Y1c2dj41ACfQx2jcLqbysmCjWEg3a2Yg1f9umpXFjx OU442DmnBwaeqrgkSfbty23558u3NIo= X-Google-Smtp-Source: ABdhPJz06cgM0gWEwC3xJLV7DhWNm6XvHmZdkJ1Yq3A5OT5Z0QEuRkx8qNuvMJAX6AyJq2CddQIx5A== X-Received: by 2002:a7b:c922:: with SMTP id h2mr7038666wml.186.1629270546052; Wed, 18 Aug 2021 00:09:06 -0700 (PDT) From: Lara Lazier To: qemu-devel@nongnu.org Subject: [PATCH 3/4] target/i386: Added ignore TPR check in ctl_has_irq Date: Wed, 18 Aug 2021 09:08:37 +0200 Message-Id: <20210818070838.44344-5-laramglazier@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210818070838.44344-1-laramglazier@gmail.com> References: <20210818070838.44344-1-laramglazier@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=laramglazier@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, Lara Lazier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1629270877652100001 Content-Type: text/plain; charset="utf-8" The APM2 states that if V_IGN_TPR is nonzero, the current virtual interrupt ignores the (virtual) TPR. Signed-off-by: Lara Lazier --- target/i386/tcg/sysemu/svm_helper.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/target/i386/tcg/sysemu/svm_helper.c b/target/i386/tcg/sysemu/s= vm_helper.c index 2c44bdb243..cbd3f086c4 100644 --- a/target/i386/tcg/sysemu/svm_helper.c +++ b/target/i386/tcg/sysemu/svm_helper.c @@ -83,6 +83,11 @@ static inline bool ctl_has_irq(CPUX86State *env) =20 int_prio =3D (env->int_ctl & V_INTR_PRIO_MASK) >> V_INTR_PRIO_SHIFT; tpr =3D env->int_ctl & V_TPR_MASK; + + if (env->int_ctl & V_IGN_TPR_MASK) { + return env->int_ctl & V_IRQ_MASK; + } + return (env->int_ctl & V_IRQ_MASK) && (int_prio >=3D tpr); } =20 --=20 2.25.1 From nobody Fri May 17 07:47:16 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1629270739; cv=none; d=zohomail.com; s=zohoarc; b=SJMDTLavtv500wXBjXbQyAkgqpAtF2aEt27s7fn/VZtfx8MMAC8LoDMqdmFt1mjNEe+zUooWR+QKDri8V65d18RQ6ceDelAI1MOyzIjRWV8/+yQhLIrz/v70VdXfmUf9tZOqyz/MvX2nG3QVdg4els7eJHRFlZYSHtw5W/1cumE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629270739; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FqnCqUbvKoythDShE33NAc32UKogIt9FfTN8uVIQDlA=; b=lZRLk7zoZ4HXuoqHBwJCJXanzCQ4FuX6/6KOsZiWVaiRzGAIJUFcR29hcfkFPEMNPyUMAPEfFD8sPAs4OW+DTneHjY/6QYsjp4Vuh0nHD7AjZFQG8SSTqjUly1jG1OjbTNtJMrjX7Fo7s1+RR5Gm7vpsLmBPqtcE+VLk+ifNHoY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162927073926866.93882869024549; Wed, 18 Aug 2021 00:12:19 -0700 (PDT) Received: from localhost ([::1]:37146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mGFkI-0000v0-3Y for importer@patchew.org; Wed, 18 Aug 2021 03:12:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54492) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGFhG-0006JR-1l for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:10 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]:35744) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mGFhE-0008G2-Cb for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:09 -0400 Received: by mail-wm1-x334.google.com with SMTP id q11-20020a7bce8b0000b02902e6880d0accso3690257wmj.0 for ; Wed, 18 Aug 2021 00:09:07 -0700 (PDT) Received: from laral.fritz.box (200116b82b53c5004989ea3bb9da8dea.dip.versatel-1u1.de. [2001:16b8:2b53:c500:4989:ea3b:b9da:8dea]) by smtp.gmail.com with ESMTPSA id w18sm4902609wrg.68.2021.08.18.00.09.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Aug 2021 00:09:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FqnCqUbvKoythDShE33NAc32UKogIt9FfTN8uVIQDlA=; b=UPjUWHbc/FPZYtzE+rxjxJ44jmT0LfSy6FvHLJ+c0IE5+IeXf2jpNXLYxEJEJCoO4Z ao/0wP2ZEfjl6EGzTDmVis5HQ0N9ywOJjNuFSJPnPzdAwldAhlIlopr9Eu8FWVbmDZn0 9yVdRc5XAjlRLxhamci9iVpf5kZ0LMGCkLp08IQaXUbUW7KEFJh4jAYPC738LY6k4pK1 Ul67NoBkF83bz/nzyaaz7nH0oFFyBArYHhmLpbPhDsAK0Ro+3prh4E6aMprnmrbvuQXx QjixXWNv7z+mmC2pjmmCKvQrV/zs4qxhLduTufrFWG/3xFt101vphnbosT5er/6CNKQ+ k9EA== 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=FqnCqUbvKoythDShE33NAc32UKogIt9FfTN8uVIQDlA=; b=Onn8HCQq1gWRzQURMcV9kPCIg9Ot8wK95LKGs184TvOG1TUCHKvGkhpwluOg77lOoQ 3MtjTHVQPYHdD1l76NQzVrCl7O4ZuptyE+0mESHVgl/SC3aftwrzYnhoy5NbehtGkI9a c+Y408lK/7mvYN08GjLj/QmP6gN5mCKXeKPacRR0yDOkHuqbPKTcMR83fhjf4pge17oK +IYfJ6xjXOZFMm6kD4exJKkQ2A9TdMinzgXXlQORjkBnQCuxw8v3x/myICeyBI08ajCK EuL13i3BTRuK4JQ+vr+bP3s7jwluU304/EzoiT6p/8pb9NMnX0mHU6w+VdRP/2vUTEzI 4UVQ== X-Gm-Message-State: AOAM533OmVL67Neq5mPz8KfKPOWkQXjlz1VW+BMJzRPh704U5HJSTqMx 0w6gT0st0ZVThhssDpKu+TpelTET0kA= X-Google-Smtp-Source: ABdhPJzJAiXgnrwVandcU2iCMhR2tkJz+bIhSV85oGMHhEU+svj0DlOIwLqV3JOUNMMJ16lZ678kXQ== X-Received: by 2002:a1c:a181:: with SMTP id k123mr1813567wme.90.1629270546652; Wed, 18 Aug 2021 00:09:06 -0700 (PDT) From: Lara Lazier To: qemu-devel@nongnu.org Subject: [PATCH 4/4] target/i386: Added changed priority check for VIRQ Date: Wed, 18 Aug 2021 09:08:38 +0200 Message-Id: <20210818070838.44344-6-laramglazier@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210818070838.44344-1-laramglazier@gmail.com> References: <20210818070838.44344-1-laramglazier@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=laramglazier@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, Lara Lazier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1629270740956100001 Content-Type: text/plain; charset="utf-8" Writes to cr8 affect v_tpr. This could set or unset an interrupt request as the priority might have changed. Signed-off-by: Lara Lazier --- target/i386/cpu.h | 15 +++++++++++++++ target/i386/tcg/sysemu/misc_helper.c | 7 +++++++ target/i386/tcg/sysemu/svm_helper.c | 15 --------------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/target/i386/cpu.h b/target/i386/cpu.h index d26df6de6b..69e722253d 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -2245,6 +2245,21 @@ static inline uint64_t cr4_reserved_bits(CPUX86State= *env) return reserved_bits; } =20 +static inline bool ctl_has_irq(CPUX86State *env) +{ + uint32_t int_prio; + uint32_t tpr; + + int_prio =3D (env->int_ctl & V_INTR_PRIO_MASK) >> V_INTR_PRIO_SHIFT; + tpr =3D env->int_ctl & V_TPR_MASK; + + if (env->int_ctl & V_IGN_TPR_MASK) { + return (env->int_ctl & V_IRQ_MASK); + } + + return (env->int_ctl & V_IRQ_MASK) && (int_prio >=3D tpr); +} + #if defined(TARGET_X86_64) && \ defined(CONFIG_USER_ONLY) && \ defined(CONFIG_LINUX) diff --git a/target/i386/tcg/sysemu/misc_helper.c b/target/i386/tcg/sysemu/= misc_helper.c index 91b0fc916b..9ccaa054c4 100644 --- a/target/i386/tcg/sysemu/misc_helper.c +++ b/target/i386/tcg/sysemu/misc_helper.c @@ -122,6 +122,13 @@ void helper_write_crN(CPUX86State *env, int reg, targe= t_ulong t0) qemu_mutex_unlock_iothread(); } env->int_ctl =3D (env->int_ctl & ~V_TPR_MASK) | (t0 & V_TPR_MASK); + + CPUState *cs =3D env_cpu(env); + if (ctl_has_irq(env)) { + cpu_interrupt(cs, CPU_INTERRUPT_VIRQ); + } else { + cpu_reset_interrupt(cs, CPU_INTERRUPT_VIRQ); + } break; default: env->cr[reg] =3D t0; diff --git a/target/i386/tcg/sysemu/svm_helper.c b/target/i386/tcg/sysemu/s= vm_helper.c index cbd3f086c4..312f10f1e4 100644 --- a/target/i386/tcg/sysemu/svm_helper.c +++ b/target/i386/tcg/sysemu/svm_helper.c @@ -76,21 +76,6 @@ static inline void svm_load_seg_cache(CPUX86State *env, = hwaddr addr, sc->base, sc->limit, sc->flags); } =20 -static inline bool ctl_has_irq(CPUX86State *env) -{ - uint32_t int_prio; - uint32_t tpr; - - int_prio =3D (env->int_ctl & V_INTR_PRIO_MASK) >> V_INTR_PRIO_SHIFT; - tpr =3D env->int_ctl & V_TPR_MASK; - - if (env->int_ctl & V_IGN_TPR_MASK) { - return env->int_ctl & V_IRQ_MASK; - } - - return (env->int_ctl & V_IRQ_MASK) && (int_prio >=3D tpr); -} - static inline bool is_efer_invalid_state (CPUX86State *env) { if (!(env->efer & MSR_EFER_SVME)) { --=20 2.25.1 From nobody Fri May 17 07:47:16 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1629270736; cv=none; d=zohomail.com; s=zohoarc; b=CWH8SEdiDP1Lmf5niylw/sGVYGy/s7ufFogIvuPztwALliRmZ+3Zkd2rKfI+nBiqO9/9vs2jAlifAiTA7KwDqM+eLC7Y4RlvWNNWCYp6f++PkKI/PQ5xgJnI0rM24E48A5YbWOpnvrDVFMeYuAhJZy9vNLopwzpQVAbmY1I2TmU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629270736; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IGArX2IrQtjF8xMsXRaWuGTG5yGCdBd/S4BPB2HvfpE=; b=hqjjX10s9eQrineVbRi0Ud0TwNLXp5uMlXIfbQniOI8hIY3Ej2yWOhmGfgIfryma794aP01plDLlAci3Ws+0oIFa9Y778LeN0J5bmqEF5/+Tp3BbJpKS0Np2rutqodT7PYGz6xHQ2JeQXAtNKbqbkconF18dcXG3kPdVOat9cX4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 162927073621299.52493035870236; Wed, 18 Aug 2021 00:12:16 -0700 (PDT) Received: from localhost ([::1]:36768 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mGFkF-0000gh-3R for importer@patchew.org; Wed, 18 Aug 2021 03:12:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mGFhD-0006HD-Pn for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:07 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:39547) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mGFhC-0008De-24 for qemu-devel@nongnu.org; Wed, 18 Aug 2021 03:09:07 -0400 Received: by mail-wm1-x32c.google.com with SMTP id f9-20020a05600c1549b029025b0f5d8c6cso3647363wmg.4 for ; Wed, 18 Aug 2021 00:09:05 -0700 (PDT) Received: from laral.fritz.box (200116b82b53c5004989ea3bb9da8dea.dip.versatel-1u1.de. [2001:16b8:2b53:c500:4989:ea3b:b9da:8dea]) by smtp.gmail.com with ESMTPSA id w18sm4902609wrg.68.2021.08.18.00.09.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Aug 2021 00:09:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IGArX2IrQtjF8xMsXRaWuGTG5yGCdBd/S4BPB2HvfpE=; b=vJ9Tc+il4vJc9TNFvMsRvhyXDKnhAnHxwupRwtegXN6S4aIvq0mw49y29RcsnlGgJp CYNfMYPeWo2zENSSQw+hoFm8KfNW1PpLfbu9nZxqkxqbrWfCbBJT7rXShgPNVHdc7ogY 0bGShLz1kMDh0+Zt69mTBUL+q4dqXnLC/1xB3hL/NBLbEMbo14+21ilqjJNUjliKlwjy /7BNzVtlhnZ/hjNLhu9whitvNdZ4+QjWQ0njP8B6JFQSJ1AeeWWRJxf7/1z7+AZvuAY/ x/LHM7HILKdo93FSSldEW06y7dPA3rteSRyJK7mcfwqJJ6F75ROAN+ycxEVPUzzyaErk kJ9g== 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=IGArX2IrQtjF8xMsXRaWuGTG5yGCdBd/S4BPB2HvfpE=; b=SNChgT1kN+Psr3k1ib18I1uh0zvdLqgsGdv8hKQvt3TgVbtxoC+WmSxG0mO6pYp+E3 przKHqM+LSZA726rrFy+HPdHjb36St/H6POGJSEE86TtpzGUGwGKuH9h8aI/d6u/eE1D FpSguJFBYDYhabTBg842ze3+tbaNrDxnwhF7n7mJCVjfqgiOu1jtSzRs31fdjNOxsaYa meexwN3lVEiO/n16Ol7Y/R5jG57WvbWadRxiSSkLPfyTUwebJ5fjFhg66HjFg2ThsjZ9 2SE+V8qDSvMx5J6/F6BA3c88FMDuQFCADlBeqBKsdpNBYQM/0D+AwmoD1LlO5fziNmk8 6dMA== X-Gm-Message-State: AOAM532iK0ZhJgHz3sRtGXW264oheX9sr/Cg52+lTQIdprQvk6RgbmW0 goY0MVSYKFzJTSEGpGHdm/kCkSuUK9M= X-Google-Smtp-Source: ABdhPJwhKq16nzdzOy/aSIocdv8kRwRTDqayYT3mOIpmaM4a0DUZRiBSRfGITrYKgUYuFILvIDYgyg== X-Received: by 2002:a1c:1b4b:: with SMTP id b72mr7113849wmb.168.1629270544024; Wed, 18 Aug 2021 00:09:04 -0700 (PDT) From: Lara Lazier To: qemu-devel@nongnu.org Subject: [PATCH] target/i386: Added vVMLOAD and vVMSAVE feature Date: Wed, 18 Aug 2021 09:08:34 +0200 Message-Id: <20210818070838.44344-2-laramglazier@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210818070838.44344-1-laramglazier@gmail.com> References: <20210818070838.44344-1-laramglazier@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=laramglazier@gmail.com; helo=mail-wm1-x32c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, Lara Lazier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1629270736746100006 Content-Type: text/plain; charset="utf-8" The feature allows the VMSAVE and VMLOAD instructions to execute in guest m= ode without causing a VMEXIT. (APM2 15.33.1) This is currently untested; I sent it out as part of my GSoC project. Signed-off-by: Lara Lazier --- target/i386/cpu.h | 2 ++ target/i386/svm.h | 2 ++ target/i386/tcg/sysemu/excp_helper.c | 2 +- target/i386/tcg/sysemu/svm_helper.c | 29 ++++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/target/i386/cpu.h b/target/i386/cpu.h index 69e722253d..573adc8c22 100644 --- a/target/i386/cpu.h +++ b/target/i386/cpu.h @@ -2260,6 +2260,8 @@ static inline bool ctl_has_irq(CPUX86State *env) return (env->int_ctl & V_IRQ_MASK) && (int_prio >=3D tpr); } =20 +hwaddr get_hphys(CPUState *cs, hwaddr gphys, MMUAccessType access_type, + int *prot); #if defined(TARGET_X86_64) && \ defined(CONFIG_USER_ONLY) && \ defined(CONFIG_LINUX) diff --git a/target/i386/svm.h b/target/i386/svm.h index 036597a2ff..f9a785489d 100644 --- a/target/i386/svm.h +++ b/target/i386/svm.h @@ -24,6 +24,8 @@ #define V_INTR_MASKING_SHIFT 24 #define V_INTR_MASKING_MASK (1 << V_INTR_MASKING_SHIFT) =20 +#define V_VMLOAD_VMSAVE_ENABLED_MASK (1 << 1) + #define SVM_INTERRUPT_SHADOW_MASK 1 =20 #define SVM_IOIO_STR_SHIFT 2 diff --git a/target/i386/tcg/sysemu/excp_helper.c b/target/i386/tcg/sysemu/= excp_helper.c index b6d940e04e..7af887be4d 100644 --- a/target/i386/tcg/sysemu/excp_helper.c +++ b/target/i386/tcg/sysemu/excp_helper.c @@ -358,7 +358,7 @@ do_check_protect_pse36: return error_code; } =20 -static hwaddr get_hphys(CPUState *cs, hwaddr gphys, MMUAccessType access_t= ype, +hwaddr get_hphys(CPUState *cs, hwaddr gphys, MMUAccessType access_type, int *prot) { CPUX86State *env =3D &X86_CPU(cs)->env; diff --git a/target/i386/tcg/sysemu/svm_helper.c b/target/i386/tcg/sysemu/s= vm_helper.c index 312f10f1e4..94dd2083ce 100644 --- a/target/i386/tcg/sysemu/svm_helper.c +++ b/target/i386/tcg/sysemu/svm_helper.c @@ -120,6 +120,25 @@ static inline bool virtual_gif_enabled(CPUX86State *en= v) return false; } =20 +static inline bool virtual_vm_load_save_enabled(CPUX86State *env, uint32_t= exit_code, uintptr_t retaddr) +{ + uint64_t lbr_ctl; + + if (likely(env->hflags & HF_GUEST_MASK)) { + if (likely(!(env->hflags2 & HF2_NPT_MASK)) || !(env->efer & MSR_EF= ER_LMA)) { + cpu_vmexit(env, exit_code, 0, retaddr); + } + + lbr_ctl =3D x86_ldl_phys(env_cpu(env), env->vm_vmcb + offsetof(str= uct vmcb, + control.lbr_ctl)); + return (env->features[FEAT_SVM] & CPUID_SVM_V_VMSAVE_VMLOAD) + && (lbr_ctl & V_VMLOAD_VMSAVE_ENABLED_MASK); + + } + + return false; +} + static inline bool virtual_gif_set(CPUX86State *env) { return !virtual_gif_enabled(env) || (env->int_ctl & V_GIF_MASK); @@ -430,6 +449,7 @@ void helper_vmload(CPUX86State *env, int aflag) { CPUState *cs =3D env_cpu(env); target_ulong addr; + int prot; =20 cpu_svm_check_intercept_param(env, SVM_EXIT_VMLOAD, 0, GETPC()); =20 @@ -439,6 +459,10 @@ void helper_vmload(CPUX86State *env, int aflag) addr =3D (uint32_t)env->regs[R_EAX]; } =20 + if (virtual_vm_load_save_enabled(env, SVM_EXIT_VMLOAD, GETPC())) { + addr =3D get_hphys(cs, addr, MMU_DATA_LOAD, &prot); + } + qemu_log_mask(CPU_LOG_TB_IN_ASM, "vmload! " TARGET_FMT_lx "\nFS: %016" PRIx64 " | " TARGET_FMT_lx "\n", addr, x86_ldq_phys(cs, addr + offsetof(struct vmcb, @@ -472,6 +496,7 @@ void helper_vmsave(CPUX86State *env, int aflag) { CPUState *cs =3D env_cpu(env); target_ulong addr; + int prot; =20 cpu_svm_check_intercept_param(env, SVM_EXIT_VMSAVE, 0, GETPC()); =20 @@ -481,6 +506,10 @@ void helper_vmsave(CPUX86State *env, int aflag) addr =3D (uint32_t)env->regs[R_EAX]; } =20 + if (virtual_vm_load_save_enabled(env, SVM_EXIT_VMSAVE, GETPC())) { + addr =3D get_hphys(cs, addr, MMU_DATA_STORE, &prot); + } + qemu_log_mask(CPU_LOG_TB_IN_ASM, "vmsave! " TARGET_FMT_lx "\nFS: %016" PRIx64 " | " TARGET_FMT_lx "\n", addr, x86_ldq_phys(cs, --=20 2.25.1