Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp88398ybb; Tue, 7 Apr 2020 17:34:30 -0700 (PDT) X-Google-Smtp-Source: APiQypL8WwWxD8AzBgDmLL18/KxDVAGxKThSQzc0wRgl4svv2769p4EXPDCy4zCXU1MSLiDY7NJi X-Received: by 2002:a9d:748a:: with SMTP id t10mr4067055otk.244.1586306070808; Tue, 07 Apr 2020 17:34:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1586306070; cv=none; d=google.com; s=arc-20160816; b=M7kI/pAZVVcS5vMaJ3MWoVRMJNHVkSHl8YyiKzMx8L1P0LAmcCU4oUQonatUY0R0C7 JlFVD1Ug6SKru/BatXjuA++pTovuHX4nIhUpMShQE3vfIe2lQn6ob+QmunNQowRc75wr GSpjk477ayIe79Y9RrxR4RQ1e+ga3eGBPUvXYLPsBbcQj94Odf5j2yQVSYU4+zDyS0qE hDmOgWB13PdiT+dbonJ26HPf9FJOMK14n9L8Px1zXhU7042kr2LmtyGzDrllB1xkxSdb zrN2uSBH6fq19qDp50vpb4pesiz9iJRc+7Gis6Q7A/zBkm8nYumXSGMQdhG5R2j9KovD mp9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=BP/nU61Yzxar95c6jLbskb1A6BH9prDhxkJ4jnVYml4=; b=PQLIMoxiIW9iQJ4C73qcXFDktFgFls9FNJIBzSzLtM5NG1XlNdhT4D1CccSJ6HfJFy 3lKxJ30N0NhhaREgo/OVS1DrcFsI/JBLPp6Vr5f2rTEeMZUmOZfgOFa5c0hKaO5MKFSt B4lhioL3CwhKQnz6J+PyTNB2JcTukotqHgK5vM+FNYe3ukbM5NVmHCbnpTxR4MhnLeJ5 NRXmzJ5rNcKphM/K71VHWlCmus7irkNxwx6VBwyM1Z8v52VLT0j5q8iCFXxiqV5aQhMv Cz8yaXvb9bDCkfKFETYZbQURrHuhahVIOTkjvmNb9KOg3POb+A0DfsAh7yQHrQJK9mng n5Bg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="R/oCs0Vr"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l63si1281184oif.161.2020.04.07.17.34.15; Tue, 07 Apr 2020 17:34:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="R/oCs0Vr"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726453AbgDHAbc (ORCPT + 99 others); Tue, 7 Apr 2020 20:31:32 -0400 Received: from mail.kernel.org ([198.145.29.99]:59966 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726421AbgDHAbc (ORCPT ); Tue, 7 Apr 2020 20:31:32 -0400 Received: from devnote2 (NE2965lan1.rev.em-net.ne.jp [210.141.244.193]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DEF13206A1; Wed, 8 Apr 2020 00:31:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1586305891; bh=WsjIuMs+r8j5CIgkQfdEKX2Lo83nk1oWM2PwfANG5B8=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=R/oCs0VrCOzDtTN3moNRl4KxOPreOOqCksl3xwW/Ugp3nWLm8aEHTQOIMeBsyUdIo +1OVmr1wM786UYNGbelt60YMMNh+AM3ogeu+29Y0uFcBPz51dsVwxuyrcOurgkNrkh TOhjHuDQYJEMxbmjaokLgseYbIfTStXR6F0E6lo0= Date: Wed, 8 Apr 2020 09:31:25 +0900 From: Masami Hiramatsu To: Peter Zijlstra Cc: Christian =?UTF-8?B?S8O2bmln?= , Jann Horn , Harry Wentland , Leo Li , amd-gfx@lists.freedesktop.org, Alex Deucher , "David (ChunMing) Zhou" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , the arch/x86 maintainers , kernel list , Josh Poimboeuf , Andy Lutomirski , Arnaldo Carvalho de Melo Subject: Re: AMD DC graphics display code enables -mhard-float, -msse, -msse2 without any visible FPU state protection Message-Id: <20200408093125.8b2e17e8e10aa8afa52c4753@kernel.org> In-Reply-To: <20200407155449.GF20730@hirez.programming.kicks-ass.net> References: <20200402141308.GB20730@hirez.programming.kicks-ass.net> <20200403142837.f61a18d7bd32fd73777479ad@kernel.org> <20200403112113.GN20730@hirez.programming.kicks-ass.net> <20200404120808.05e9aa61500265be2e031bd6@kernel.org> <20200404143224.GL2452@worktop.programming.kicks-ass.net> <20200405121930.e3ea3e7acc7588102de483e2@kernel.org> <20200406102107.GI20730@hirez.programming.kicks-ass.net> <20200407185008.c819005f0174cae76c44a135@kernel.org> <20200407111535.GT20730@hirez.programming.kicks-ass.net> <20200408004111.3dd597f2a7c6172b4c71a9ba@kernel.org> <20200407155449.GF20730@hirez.programming.kicks-ass.net> X-Mailer: Sylpheed 3.5.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 7 Apr 2020 17:54:49 +0200 Peter Zijlstra wrote: > On Wed, Apr 08, 2020 at 12:41:11AM +0900, Masami Hiramatsu wrote: > > On Tue, 7 Apr 2020 13:15:35 +0200 > > Peter Zijlstra wrote: > > > > > > Also, all the VMX bits seems to qualify as FPU (I can't remember seeing > > > > > that previously): > > > > > > > > Oops, let me check it. > > > > > > I just send you another patch that could do with insn_is_vmx() > > > (sorry!!!) > > > > Hmm, it is hard to find out the vmx insns. Maybe we need to clarify it by > > opcode pattern. (like "VM.*") > > Yeah, I know. Maybe I should just keep it as I have for now. > > One thing I thought of is we could perhaps add manual markers in > x86-opcode-map.txt. The '{','}' characters appear unused so far, we > perhaps we can use them to classify things. > > That could maybe replace "mmx_expr" as well. That is, something like so: Thanks for the good suggestion! Maybe this is much better than the fragile mnemonic pattern matching :) BTW, I would like to use {VIRT} instead of {VMX} because some instructions are for SVM. Thank you! > > --- > > diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt > index ec31f5b60323..e01b76e0a294 100644 > --- a/arch/x86/lib/x86-opcode-map.txt > +++ b/arch/x86/lib/x86-opcode-map.txt > @@ -462,9 +462,9 @@ AVXcode: 1 > 75: pcmpeqw Pq,Qq | vpcmpeqw Vx,Hx,Wx (66),(v1) > 76: pcmpeqd Pq,Qq | vpcmpeqd Vx,Hx,Wx (66),(v1) > # Note: Remove (v), because vzeroall and vzeroupper becomes emms without VEX. > -77: emms | vzeroupper | vzeroall > -78: VMREAD Ey,Gy | vcvttps2udq/pd2udq Vx,Wpd (evo) | vcvttsd2usi Gv,Wx (F2),(ev) | vcvttss2usi Gv,Wx (F3),(ev) | vcvttps2uqq/pd2uqq Vx,Wx (66),(ev) > -79: VMWRITE Gy,Ey | vcvtps2udq/pd2udq Vx,Wpd (evo) | vcvtsd2usi Gv,Wx (F2),(ev) | vcvtss2usi Gv,Wx (F3),(ev) | vcvtps2uqq/pd2uqq Vx,Wx (66),(ev) > +77: emms {FPU} | vzeroupper | vzeroall > +78: VMREAD Ey,Gy {VMX} | vcvttps2udq/pd2udq Vx,Wpd (evo) | vcvttsd2usi Gv,Wx (F2),(ev) | vcvttss2usi Gv,Wx (F3),(ev) | vcvttps2uqq/pd2uqq Vx,Wx (66),(ev) > +79: VMWRITE Gy,Ey {VMX} | vcvtps2udq/pd2udq Vx,Wpd (evo) | vcvtsd2usi Gv,Wx (F2),(ev) | vcvtss2usi Gv,Wx (F3),(ev) | vcvtps2uqq/pd2uqq Vx,Wx (66),(ev) > 7a: vcvtudq2pd/uqq2pd Vpd,Wx (F3),(ev) | vcvtudq2ps/uqq2ps Vpd,Wx (F2),(ev) | vcvttps2qq/pd2qq Vx,Wx (66),(ev) > 7b: vcvtusi2sd Vpd,Hpd,Ev (F2),(ev) | vcvtusi2ss Vps,Hps,Ev (F3),(ev) | vcvtps2qq/pd2qq Vx,Wx (66),(ev) > 7c: vhaddpd Vpd,Hpd,Wpd (66) | vhaddps Vps,Hps,Wps (F2) > @@ -965,9 +965,9 @@ GrpTable: Grp6 > EndTable > > GrpTable: Grp7 > -0: SGDT Ms | VMCALL (001),(11B) | VMLAUNCH (010),(11B) | VMRESUME (011),(11B) | VMXOFF (100),(11B) | PCONFIG (101),(11B) | ENCLV (000),(11B) > +0: SGDT Ms | VMCALL (001),(11B) {VMX} | VMLAUNCH (010),(11B) {VMX} | VMRESUME (011),(11B) {VMX} | VMXOFF (100),(11B) {VMX} | PCONFIG (101),(11B) | ENCLV (000),(11B) > 1: SIDT Ms | MONITOR (000),(11B) | MWAIT (001),(11B) | CLAC (010),(11B) | STAC (011),(11B) | ENCLS (111),(11B) > -2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B) > +2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) {VMX} | XEND (101)(11B) | XTEST (110)(11B) | ENCLU (111),(11B) > 3: LIDT Ms > 4: SMSW Mw/Rv > 5: rdpkru (110),(11B) | wrpkru (111),(11B) | SAVEPREVSSP (F3),(010),(11B) | RSTORSSP Mq (F3) | SETSSBSY (F3),(000),(11B) > @@ -987,8 +987,8 @@ GrpTable: Grp9 > 3: xrstors > 4: xsavec > 5: xsaves > -6: VMPTRLD Mq | VMCLEAR Mq (66) | VMXON Mq (F3) | RDRAND Rv (11B) > -7: VMPTRST Mq | VMPTRST Mq (F3) | RDSEED Rv (11B) > +6: VMPTRLD Mq {VMX} | VMCLEAR Mq (66) {VMX} | VMXON Mq (F3) {VMX} | RDRAND Rv (11B) > +7: VMPTRST Mq {VMX} | VMPTRST Mq (F3) {VMX} | RDSEED Rv (11B) > EndTable > > GrpTable: Grp10 > @@ -1036,10 +1036,10 @@ GrpTable: Grp14 > EndTable > > GrpTable: Grp15 > -0: fxsave | RDFSBASE Ry (F3),(11B) > -1: fxstor | RDGSBASE Ry (F3),(11B) > -2: vldmxcsr Md (v1) | WRFSBASE Ry (F3),(11B) > -3: vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B) > +0: fxsave {FPU} | RDFSBASE Ry (F3),(11B) > +1: fxrstor {FPU} | RDGSBASE Ry (F3),(11B) > +2: ldmxcsr {FPU} | vldmxcsr Md (v1) | WRFSBASE Ry (F3),(11B) > +3: stmxcsr {FPU} | vstmxcsr Md (v1) | WRGSBASE Ry (F3),(11B) > 4: XSAVE | ptwrite Ey (F3),(11B) > 5: XRSTOR | lfence (11B) | INCSSPD/Q Ry (F3),(11B) > 6: XSAVEOPT | clwb (66) | mfence (11B) | TPAUSE Rd (66),(11B) | UMONITOR Rv (F3),(11B) | UMWAIT Rd (F2),(11B) | CLRSSBSY Mq (F3) -- Masami Hiramatsu