From patchwork Wed Jun 2 14:37:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12294985 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B36AC47083 for ; Wed, 2 Jun 2021 14:38:03 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id AF7B6613AA for ; Wed, 2 Jun 2021 14:38:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AF7B6613AA Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.136055.252446 (Exim 4.92) (envelope-from ) id 1loS0A-0005Qs-KM; Wed, 02 Jun 2021 14:37:46 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 136055.252446; Wed, 02 Jun 2021 14:37:46 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1loS0A-0005Ql-HF; Wed, 02 Jun 2021 14:37:46 +0000 Received: by outflank-mailman (input) for mailman id 136055; Wed, 02 Jun 2021 14:37:45 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1loS09-0005Qf-84 for xen-devel@lists.xenproject.org; Wed, 02 Jun 2021 14:37:45 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 06467280-956e-4f16-8cbf-a24b7b021e5b; Wed, 02 Jun 2021 14:37:44 +0000 (UTC) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2051.outbound.protection.outlook.com [104.47.5.51]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-33-cC4GcNaMMY2gmWxJIxX9bw-1; Wed, 02 Jun 2021 16:37:41 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB2701.eurprd04.prod.outlook.com (2603:10a6:800:af::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.27; Wed, 2 Jun 2021 14:37:39 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::f06c:6f5d:34d2:1c36]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::f06c:6f5d:34d2:1c36%5]) with mapi id 15.20.4173.030; Wed, 2 Jun 2021 14:37:39 +0000 Received: from [10.156.60.236] (37.24.206.209) by PR3PR09CA0019.eurprd09.prod.outlook.com (2603:10a6:102:b7::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Wed, 2 Jun 2021 14:37:39 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 06467280-956e-4f16-8cbf-a24b7b021e5b DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1622644663; 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; bh=Op0EG6H/pxKguEBh5YGLdaL85pglCTLCDsjf1WPZfrM=; b=SyRck841TFi/g5Y9WVTgkrr95YD98mwZUzRbQFZIgNfyAR/Q/aFMtGFzzhw92hS4K0PJAW Aomu2t2NCtm0Kh/CksNI/tnMFZhNO/DQRIej4O0Ea1DUSf1Eimpi4bpb+uXwrF5VJttRYC gw3O9iTFwYZXvxJTRWP4bkuJSlsE3wI= X-MC-Unique: cC4GcNaMMY2gmWxJIxX9bw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CTBBdDpkZrS2flw96OEK4mFacDj/zLTCvdz+nt9j4x5cQVJHim3Ua8Zz9nQi5RdHzmiGHmglolySjRIH9K4dShB7rCpg+Fg9Etyr/3hiRJkWdDSgQop5xhs3FvEGsUTd0xFwNrOGJMJSeUejV5HXmd1eNkkN84AWiMOdzKMgOLgHVmVGdLxc5agSkffbaTJei0zscli0/HsNdLjk7CkOBsqVo7a4X8z/eWYS1Fyct28rsYy3xH/6tHhq2KYc4bo4rFj01VlP5SGtzxsc2rz/Oaxzij4iDNgPHp7gT4quWHiRtYOqtAkPazdalHevDO5ZYVOh/aeNDwWn6yyfZ0E21A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Op0EG6H/pxKguEBh5YGLdaL85pglCTLCDsjf1WPZfrM=; b=MPQt4hjwkmgPcc/6CZPI+TrpzGB6SZY21pXCKZEDn+sub6J8BhLu3lh6Bd7Q2LCbzVMIv37Y4OeodxhfetbVBux77yNRCd2HlZQ5psoUIAK5Ox4vjG/ZYPpO9GFW7P9yti1m6vrQdg47L8MneSqyDivZJ0ECGQU2/EG4CC+ozc9gScndsyS2ra+FSXo//XmFm5Ev21SE4fPsavOwPP4Tm5+S3FIoLndHO+8e7kmfs+UcZwd26DhVJwgn8LtVtcQiFMSSTohkJ3Qnoz1ZkZAFMoWoAZzhjEE1fda2moHIiB1MRX/rBBNnTfc3ie96gN1oKVmH02VRSR1PK4KxzYNxuQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: citrix.com; dkim=none (message not signed) header.d=none;citrix.com; dmarc=none action=none header.from=suse.com; To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= From: Jan Beulich Subject: [PATCH] x86emul: avoid using _PRE_EFLAGS() in a few cases Message-ID: <9285f566-e352-9265-e9e3-e9a1e15ce7d5@suse.com> Date: Wed, 2 Jun 2021 16:37:38 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 Content-Language: en-US X-Originating-IP: [37.24.206.209] X-ClientProxiedBy: PR3PR09CA0019.eurprd09.prod.outlook.com (2603:10a6:102:b7::24) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d2f47e68-70bc-4d66-68a9-08d925d3f8e5 X-MS-TrafficTypeDiagnostic: VI1PR0402MB2701: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +4qNND/S+0XErO6cIM67XmqGRQrrQQ0jkde87iYd8OzOmi6/uyBu7s+Wfq5HdOiJoyYflDy1KRRsVjAjWzq21881l9fBZDPvjsSMpGJ4hXIHgCpIq8eJTNNE0qOvAHrDcenm6rqjNvChlRPSrnGzrK8DR66YJY/H6Dh5+LgXgr9oK+NPKpD9aIoI2HPOg6rPZUmd9r+7IYliJ65vsz+UFq3K7mzJuMbzucapoR6XE/BFRxLbst4Is5P/lNKAziTXq0WoeiYJsKVvgg5QOh7DHFiaFY0pRAAKNmh+KuEiBTrHDKgJZAu0WW7u8O53kmXoM4FV7GzvemQ8683EdYVWP0r0iD1906l5+a1lA/1LDxdDYMOOWsWRstBvHe+iMdOsENX6iOF4XExJCz1IMaGL3Mp6/bSRKSpDbvIrRVrKnA5/c1w3Sf1IXOpIGCDlJn+yFrrK7Kd+28yUDK5P3zxkHAP0a4aIU+4pR4hKlOUCQEGlaQnkUpkbPHRWMP0A45ukWIq0AFnP+EwltxF5gHidska11opkRCcXP9jRzAvM9fuNvf3OtNeHs5PLz9ErFt6RuhW5agS21UGgrCWvQk6Tcv4rVTeA357LpL4/gsEyJ1g/bDzRXWY+DbRrOGxPj0o5GeqeMkTDRUDg+LKSZZtvp4NB6pLXJilovnW0ip8LseyPS0K9NzLGId5+Vw6B1/MU X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(136003)(376002)(396003)(39860400002)(346002)(26005)(36756003)(66476007)(5660300002)(31686004)(8676002)(86362001)(38100700002)(83380400001)(66556008)(316002)(16576012)(8936002)(31696002)(478600001)(6916009)(66946007)(4326008)(6486002)(186003)(16526019)(2906002)(2616005)(54906003)(956004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?ADi5ioY/1bSXGkE2prqeGU0/bmLOww?= =?utf-8?q?eip3bpfsR7T6W8Gzywtr7XEOccVXxeHVjS0FcPTMX+tahnA453rC/LrPy3hO9Q4iD?= =?utf-8?q?UVS8QdigrdGl+0HlshNKMXfo5Ouupu2LIR/88GoFL7qP7usBl9zoxV+oH656EQsYz?= =?utf-8?q?PPuuN7W/fgWPGs6HXseG3sifgrts4sD6dVd684u/GbxJN1T08RxN3/1N1z8IkETy1?= =?utf-8?q?ZkQKqTPY4r5/8oCCnEpc5rH80K9Ok3dV6NzZN/LKM3fFJZUhbA94cEY1ApGBjO5n5?= =?utf-8?q?2Cf3LFZC8yafpW5sOO1qLQ1ooBAN9cXVoKaJiu1ISW1Wl/g6XJkHZElCF6jVGmrB3?= =?utf-8?q?HE0N4t8E4DI3q65LKKUH/etAuFZRUfkrdPKRiLIUWAAVLg88+xWk/WIYtpvx1c1/5?= =?utf-8?q?RBC3g2kb/UJBPCZt/COX4L2v/Otv8ERMaVmAaIejhlIjYpJtOzIq0XTAWQ6uWiUQe?= =?utf-8?q?oWQhvUxiLe5hpDCB0bUULcKr2I0N8CLwYA5JkOgP7d+2z31Y2JhTTizMvS+x+BuFf?= =?utf-8?q?y+2ULGCO8ZhDtRKJpoEpoSJrfNsDhJiP2vo3Um9UKWt2BmUEva3XmMOVtbgSeC2Tc?= =?utf-8?q?nes8eHsPKzRy2aIY0Y9OooQRSdy4HJWg0FrxLxi1277TD9q4DOjzPQ5X1nntBpDgl?= =?utf-8?q?ETWSp5vzNrKisqLEwq9JLFFRHq4G7Jr0QgUDZhu4Ddc6+H5XLSSajIEODh3Y32LUK?= =?utf-8?q?vSmLZ6jhsmdf/bb/1im33MXsZciraJszvASjQM7x7qjz159rvC7GU/Bs9frdHWiGU?= =?utf-8?q?vacVfd+QtPnlhhOD+hefasjULQZPS/rd5Pi/cPEGPySz5BGIrve0cfr6GzePaHDo6?= =?utf-8?q?74uskGrHBF/nUpZO52+tnzGbc/MBi29EdpsBDNjzGyfRDbIIYifUEP0EX2kppNW6W?= =?utf-8?q?14/F7P39S7DC49qXVufTSQLnD/KBeP/xcg/I4HKY6xhVp84bF/8oUQj+GUqAr6pTi?= =?utf-8?q?H76fAVEjuUvu9L3JdDqgsHMbCniZEmfEmFYgNKOXeyNj1jFwBSeLjCiDfqFGpdFE1?= =?utf-8?q?5ZM6Zfw42ScNMgs3B+4WuYXArd+9cFV0nPs6zeqlXsgPrn8zYCA7qMrCbrZ0uHSMX?= =?utf-8?q?WMVa56Ox4HzGYGciG/Dl9ktU6Zxfb1Kcvl0dRZEY9fcIFjIc4nBOiZMYpEFHP46Ld?= =?utf-8?q?lq2l931izPavy3cV2BSa5yRnG9ino5S/rpp7RgA0//kNUExRbV5PYcZs/C2e+zB9R?= =?utf-8?q?n3cgoT4Ea6eexr9al0JDz2ZqMJahNs2uw4y4Y/qNZQs9eqLU8SkzLn+ynqXcV/N7W?= =?utf-8?q?X8xLnSbBM8Ozvo?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2f47e68-70bc-4d66-68a9-08d925d3f8e5 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2021 14:37:39.5805 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EFviBlCCctwev3AJdKit4Yj1+uQ2sA7ELIEbTuVht9RTYZBP9ADZRpecepiVO9TidFmnMgr54WsE++5GsSFAGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2701 The macro expanding to quite a few insns, replace its use by simply clearing the status flags when the to be executed insn doesn't depend on their initial state, in cases where this is easily possible. (There are more cases where the uses are hidden inside macros, and where some of the users of the macros want guest flags put in place before running the insn, i.e. the macros can't be updated as easily.) Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper --- a/xen/arch/x86/x86_emulate/x86_emulate.c +++ b/xen/arch/x86/x86_emulate/x86_emulate.c @@ -6863,7 +6863,8 @@ x86_emulate( } opc[2] = 0xc3; - invoke_stub(_PRE_EFLAGS("[eflags]", "[mask]", "[tmp]"), + _regs.eflags &= ~EFLAGS_MASK; + invoke_stub("", _POST_EFLAGS("[eflags]", "[mask]", "[tmp]"), [eflags] "+g" (_regs.eflags), [tmp] "=&r" (dummy), "+m" (*mmvalp) @@ -8111,7 +8112,8 @@ x86_emulate( opc[2] = 0xc3; copy_VEX(opc, vex); - invoke_stub(_PRE_EFLAGS("[eflags]", "[mask]", "[tmp]"), + _regs.eflags &= ~EFLAGS_MASK; + invoke_stub("", _POST_EFLAGS("[eflags]", "[mask]", "[tmp]"), [eflags] "+g" (_regs.eflags), "=a" (dst.val), [tmp] "=&r" (dummy) @@ -11698,13 +11700,14 @@ int x86_emul_rmw( break; case rmw_xadd: + *eflags &= ~EFLAGS_MASK; switch ( state->op_bytes ) { unsigned long dummy; #define XADD(sz, cst, mod) \ case sz: \ - asm ( _PRE_EFLAGS("[efl]", "[msk]", "[tmp]") \ + asm ( "" \ COND_LOCK(xadd) " %"#mod"[reg], %[mem]; " \ _POST_EFLAGS("[efl]", "[msk]", "[tmp]") \ : [reg] "+" #cst (state->ea.val), \