From patchwork Tue Aug 31 04:27:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Po-Hsu Lin X-Patchwork-Id: 1522414 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=canonical.com header.i=@canonical.com header.a=rsa-sha256 header.s=20210705 header.b=pQIdXILZ; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GzDhK6lXMz9sXM; Tue, 31 Aug 2021 14:28:17 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1mKvNe-0008I7-7E; Tue, 31 Aug 2021 04:28:14 +0000 Received: from smtp-relay-internal-1.internal ([10.131.114.114] helo=smtp-relay-internal-1.canonical.com) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1mKvNV-0008HW-3F for kernel-team@lists.ubuntu.com; Tue, 31 Aug 2021 04:28:05 +0000 Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-internal-1.canonical.com (Postfix) with ESMTPS id E63153F32D for ; Tue, 31 Aug 2021 04:28:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1630384084; bh=MsMCSOm5Ta/BpS7qKm7Yvndj9oSQSFehxl/qffM3zo4=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=pQIdXILZs2HgGQjfZofKgn1949wbejfji7C57HZ2Z/y3z5doloFEICzeBunLmLtbJ 1KHClIYSDxLs5ESVzNlyV3POmPenZDq8/HLzJ17oFEwjDQaXwuQMgXne7Q+g2gUz5D VEaYSLDQ/7ZZhwmxTrl2V692RMk8m5iEM3xSLlK0BdoB+msdjNsU9un/GjbaKWjre4 w6jhXMEWMr0v9BHUQBjmkrsd9yDu5a7JGAyO9xvfBGsAG0k/O5vHQRRtl/r+B97FdG ZLdb06wH6BQrnTLLkdwlQ8+4ifB4/FeCdQJKYH+GovXo5KfGZjDATmNEwbW24ALRAE aAkY2eyOBhjjQ== Received: by mail-pf1-f199.google.com with SMTP id z2-20020a626502000000b003fe1e4314d2so2573138pfb.0 for ; Mon, 30 Aug 2021 21:28:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MsMCSOm5Ta/BpS7qKm7Yvndj9oSQSFehxl/qffM3zo4=; b=Moooksb/NYYkj4h6sgz/YHl0dq2NvvS4rK5map2f9imKwKCx9Y5YtziSU6jIUBx6A8 a6fSWibpXgPar2Z+Gj6Qfd6+wzbx1zgIXo7fCb5wpl0dkmoLsrpfMuJdrlo2atHK/xQE +a8Uw1H+AosKim5XQaqqzBRBUVDmYL2LCb32jxgkZlven3f0pD7VMOBmHa/ivHOPqnw3 tIVWpf0bCLhRRG6P/eTi5+6HLESjfp0PlO4VFXzUfER6MaeM7paMtAlkXI0qT5jADyNf DPjr9pJ1+nKBfsS5GCxlY5g73H3SJ9xm1IwlcEGgCJTG5NNwpsPgmZ3IXJ6Seley5l2r 1Cjw== X-Gm-Message-State: AOAM530KB4T2NQRqE4o9iHb2+LN2hC93/8OKpbdcM1SHDyPlDZxQ6fd1 FZWITzF4q9RGIol3mqQlZwRe/CYMuyQrZO1uCoru826nyW8jS9z1ZXNVfSdfeqSL4PuYTQ//z2Q o0rLoX4my+zYLkILlaHBtygYBsnLpb1cx4u7A4Nk1 X-Received: by 2002:a62:b414:0:b029:317:52d:7fd5 with SMTP id h20-20020a62b4140000b0290317052d7fd5mr26651416pfn.30.1630384083406; Mon, 30 Aug 2021 21:28:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzvjKMQ89wJYpGtPLkktIbAtQQHIhMmZVrdX/TchlRLvorWFwOOSYq8h4B3dDveG3rG33e1Nw== X-Received: by 2002:a62:b414:0:b029:317:52d:7fd5 with SMTP id h20-20020a62b4140000b0290317052d7fd5mr26651395pfn.30.1630384083011; Mon, 30 Aug 2021 21:28:03 -0700 (PDT) Received: from localhost.localdomain (2001-b011-200d-1539-b1d8-96d5-5370-763f.dynamic-ip6.hinet.net. [2001:b011:200d:1539:b1d8:96d5:5370:763f]) by smtp.gmail.com with ESMTPSA id f5sm1055377pjo.23.2021.08.30.21.28.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Aug 2021 21:28:02 -0700 (PDT) From: Po-Hsu Lin To: kernel-team@lists.ubuntu.com Subject: [B][SRU][PATCH 1/1] kvm: Add emulation for movups/movupd Date: Tue, 31 Aug 2021 12:27:42 +0800 Message-Id: <20210831042742.8399-2-po-hsu.lin@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210831042742.8399-1-po-hsu.lin@canonical.com> References: <20210831042742.8399-1-po-hsu.lin@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Stefan Fritsch BugLink: https://bugs.launchpad.net/bugs/1932966 This is very similar to the aligned versions movaps/movapd. We have seen the corresponding emulation failures with openbsd as guest and with Windows 10 with intel HD graphics pass through. Signed-off-by: Christian Ehrhardt Signed-off-by: Stefan Fritsch Reviewed-by: Radim Krčmář Signed-off-by: Paolo Bonzini (cherry picked from commit 29916968c48691c94be466a0b47cc9adcea9cb8d) Signed-off-by: Po-Hsu Lin Acked-by: Thadeu Lima de Souza Cascardo --- arch/x86/kvm/emulate.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index c679f17..10bd3a8 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -4497,6 +4497,10 @@ static const struct gprefix pfx_0f_2b = { ID(0, &instr_dual_0f_2b), ID(0, &instr_dual_0f_2b), N, N, }; +static const struct gprefix pfx_0f_10_0f_11 = { + I(Unaligned, em_mov), I(Unaligned, em_mov), N, N, +}; + static const struct gprefix pfx_0f_28_0f_29 = { I(Aligned, em_mov), I(Aligned, em_mov), N, N, }; @@ -4708,7 +4712,9 @@ static const struct opcode twobyte_table[256] = { DI(ImplicitOps | Priv, invd), DI(ImplicitOps | Priv, wbinvd), N, N, N, D(ImplicitOps | ModRM | SrcMem | NoAccess), N, N, /* 0x10 - 0x1F */ - N, N, N, N, N, N, N, N, + GP(ModRM | DstReg | SrcMem | Mov | Sse, &pfx_0f_10_0f_11), + GP(ModRM | DstMem | SrcReg | Mov | Sse, &pfx_0f_10_0f_11), + N, N, N, N, N, N, D(ImplicitOps | ModRM | SrcMem | NoAccess), N, N, N, N, N, N, D(ImplicitOps | ModRM | SrcMem | NoAccess), /* 0x20 - 0x2F */