From patchwork Tue Apr 12 10:27:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12810351 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id CD8D0C433EF for ; Tue, 12 Apr 2022 10:27:55 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.303593.517945 (Exim 4.92) (envelope-from ) id 1neDkL-0003qE-46; Tue, 12 Apr 2022 10:27:41 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 303593.517945; Tue, 12 Apr 2022 10:27:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1neDkL-0003q7-14; Tue, 12 Apr 2022 10:27:41 +0000 Received: by outflank-mailman (input) for mailman id 303593; Tue, 12 Apr 2022 10:27:40 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1neDkK-0003py-7I for xen-devel@lists.xenproject.org; Tue, 12 Apr 2022 10:27:40 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 2d733252-ba4b-11ec-8fbc-03012f2f19d4; Tue, 12 Apr 2022 12:27:39 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2171.outbound.protection.outlook.com [104.47.17.171]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-iA43Ylw9MhGFfjsVmbShfQ-1; Tue, 12 Apr 2022 12:27:37 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by DBBPR04MB6315.eurprd04.prod.outlook.com (2603:10a6:10:d0::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Tue, 12 Apr 2022 10:27:36 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Tue, 12 Apr 2022 10:27:36 +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: 2d733252-ba4b-11ec-8fbc-03012f2f19d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649759258; 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=pjldoVbWk4dOoIvq/Xe9YOBnGVbnNaI2DQunigbNhnw=; b=S5iuABdzAuPduQJ1a4zdjtE/SEPlZL0WjmvP2ZaYli0L0ozr9T1nxYAX9RiYPUM8KG67MB yMj/Or8ZMDWtpMLk1ljyAp0PfE+S6To2tgeUv8naDEqCnDeWhgJQEZ/XgeBnTZw5EZwPyJ UK5WEJsnStb8cApumn1kUEkqZd5XWGM= X-MC-Unique: iA43Ylw9MhGFfjsVmbShfQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nLd7WcPhzCqHZ5EC+x1II3oUv4hDAeYSjf/1gLBcgWZ5SX0urld8vq5kDaqfDdHQJvtkSDd3rsVwyaludxlVuxBv9Lj5TZREGv9aLJ5utugrNQGvJS/P1aRn83bPNU8SsmGDzbYXo9AQ1sKXBwdcfTTdLYGeemOHl17AsuYplepCtWNahnW3FTT/vOZgSj9B5zs8gqnNjgZsUjXt+p/vYfjYixFpJpAQ1RO5n/jaSlCIDzY94vqiz+xxYzsnoYglXh0vwJYl73nZijDsiYKberCVNsdx+YoyE1nhTunf17n/61nGYb8Urzuh7jd4pJ1kaVv0qieOHTCKnx4jZ2Pvng== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pjldoVbWk4dOoIvq/Xe9YOBnGVbnNaI2DQunigbNhnw=; b=NB7uN0u/S2p4uLXyb4L68sZqtmZfpc2Bja0To7DY2xzoTKNV0Np7DnYrJ8j+XywiTGl1/GeRMQvEpS9mPJXvkeSvWinFZk5gjX2L0njf7CIRCosLHDVBP+PM1gOvyJlu+AzFhrMQ00Au8C4i7jgrwdI7fFOoKydFeE4AAKYz11TKOE1svHLa57YkRWK2C8D9z9HRFBJUJ6v0OPh02bPrqp14Quu5Fkx0rCeAQqenpzh4d8Cg5THo8DXEB0pX+WmsAIVczTpQxfFoZwbbHv2SjyNWcnpHM2sPepiGLS5BWNf71+ttUmdugmCYvvLIuVb1A9IHAu+d0/1PE9YEap8S9w== 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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <23509d85-8a73-4d81-7ade-435daf46fcd6@suse.com> Date: Tue, 12 Apr 2022 12:27:34 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 1/2] x86: improve .debug_line contents for assembly sources Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: In-Reply-To: X-ClientProxiedBy: AM6P192CA0070.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:82::47) To DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 14b6ecd3-3354-43f6-3356-08da1c6f0ff0 X-MS-TrafficTypeDiagnostic: DBBPR04MB6315:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kufnx0Qp1M6aE8YATIyKc0ticivtTRk++PCkcmk3nwqKZosYMfj4jL/lX1f1RyRqmtN6RPfBjo3Gp1NmfN5qVQxUiao59SmVEdkI1yyjmJlHzzw/8A2UMhc+s/HwRZSvXS2/Bqx9O0a90HCCxwXX1k8yB/kPr2ruXZurhNNqLkV115p7UW36Ef8IVJnScCUZZWpSZHlgff+jTaXSvSCsa5BPnkiv2C2oEStbeM5T9r/k3eN+K17D7265w/dVp5y6HSSjsON2HyEfdkxI9Vjq345+vcsX6oqj2dOpqQQWPHGn4zHF+jAwyZK0NFZCISQTIDO3jNS1HX06ie59RI8/ijCzotJIJklRfkrNM5/OUe56dMfvwuATDTnQZjqUcS4dmJXVrIAuaIvIEwMQJXxT3Kxgs2cZMw4SrKs3IVMzgX+aTbFZ6Qdk4Qxek162GNwxBtNtd7iU8xSfDut7HCrpjg+TNTX1gbLEuMw0TpJFXeQ1a5ZVbwGxdSOCy2BRFccMH+T6mKiJlJYM3wDn4E48WR8F6rDsSvuVHKgvtQ1GbH3PadNLVhPqh36iCPnr6jnDVnxcYUFV4npcszOVkczmSrxPYqTmaplMA5uKOHVxXcLGrAZY7wrgrJObZm7LaDs4CDl7gue/2rBX2jbIaFgyy63b5526notbnZVWCIrOmPRqZMMXJ5RcXdjdAtjANy3ctfoNrt33UIkg5/wI5gh2jJrMPGDLf2TtQaC6vuBFkVPsa/XywcV72V4T+DYv56HSwBgFcaz9AqLx31wDOonWze+ZvwaRUV1IOlmHV3YX8LZEhi6Jaq81fWdPUSa2LDoMwiBTYOaC6F8ZQ2IacF/H6pcyyIpbyjMBOtfA/D+kz63viyQaaEqSrcBUEvVFp+7tviW86ni+XEK7yHkPCGkRNg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8616.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(83380400001)(5660300002)(8676002)(86362001)(54906003)(6916009)(316002)(6486002)(966005)(36756003)(8936002)(4326008)(508600001)(6512007)(66946007)(31696002)(31686004)(66476007)(66556008)(38100700002)(2906002)(6506007)(186003)(26005)(2616005)(142923001)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?oV6EPCEbtZQfYg4YktRQoNkW2anv?= =?utf-8?q?TvUVXbpdJcWxLqmEjvtGtDSCx2s0KZxVENeYLzlApUXxgaIAj27HkCpPsXBLgddCS?= =?utf-8?q?FhEV/EYRm7/Md9Lm9UzFDg2YXEyMNMj2DjNZir4KzEuMTDezQpcnocBg4i1ZYZkdi?= =?utf-8?q?p3UswteyrzQ1B1rfz39rVlRIfJKsO6HgJRLNobGVh8kkLPM5u0bysMmmGxgqmLiuz?= =?utf-8?q?vOcVM1mS4m1NaZ452Yr2qNvawmLPXHTWSczod3eK9LxJ18XiDLV4mJ3jhZGQ+zbqe?= =?utf-8?q?b1NbZbohGnM1ar1Cpfc3hwg/DCqf7Tw38rrtapP813vyWE8gPWKa/1GUe6F3gEMuK?= =?utf-8?q?0IeJYOzVTHdjZKr8gtd4Ngumq4JNMBxraUkW744SoxEjlQkFiPPUQM5pT0zPR+rJS?= =?utf-8?q?K7uoEhm9V0JS4r6i1edzDpriZSrCoDSKa9fmjIhXC1GZMC1wAH8kuuCI/oJi2a+Zv?= =?utf-8?q?UAL8aVINNR+23ApruezopL3+2yHDKvLio76IiAhwVVJhSKtdpaWcKr4fyk0v6gGwh?= =?utf-8?q?eFM4pGE6PsRnPoCRRsY/0pQi3eizRF7hqboFA7/+eEr0d9zggmFk6Gh815NV/Ehzx?= =?utf-8?q?HUBH+6pWWvDyGif/esIpM8mFa6CVHBHLj+AQ9ba+7KNlNP+XiLvKttCyiDeS1RYx+?= =?utf-8?q?PcK6wiMMSJ1Lh2X1HDVyUfI3X6N3Gm8Ij5cmUtbTaxNSddrDtrMe7SwO9GQzsufI7?= =?utf-8?q?ERBPMKYgXwrG8UsrWhekZZYPUe4k1i62TtLL9lYFBq4ewWGG1RPFVxFCuvXCYn5j5?= =?utf-8?q?JfC5sOLInswtzHMTqjrjTM/VXb//j8GrrySVBf+VdRkwABGfvvR9cWFbpaaCtmEX9?= =?utf-8?q?ahSQLGstSk3d6UglrqaE/hqRX9Ho1jPOMgES3K4HyC1SuTbxG6GZ7rZk89P62llTj?= =?utf-8?q?uSuQlA1v7xt+XFA2XKS9SiKWBTN3N3COAkF1GlqBn/TikPoAmgngPQR1GhqsSboHk?= =?utf-8?q?mcJgImG9dEXmP01Ypti3SX2qa0TFCUPhrRlEPd5A1by1PueLEZKviTWBp3rZdUolk?= =?utf-8?q?Q0J8KA2KM/C0j7wU+QwLsQ2ENeOpMkyhK3wpqVIv3n4LKGsE6gocAeGH6kRnIyZM/?= =?utf-8?q?HiZy68do/BL27Ou1QuxU2UmUKOqVEeoJnLRujbQ9LceWW9GBVPb/RVypNeCB/ZHt0?= =?utf-8?q?F7AuzV3sC5P7jV7BCtDpgwIHjqJrcXU8wkAaZO25bSOYXTqvns2Zi9aoTfFlGYjrX?= =?utf-8?q?2IHt85S/M13z4jqvIb5whQJRkeFoUqZnOaM104Z1+EzTw4g20i6f4Rvbf8BrOKxW8?= =?utf-8?q?9jlIHE2eF3kXoxm8wAunf8nbZK8THjQz+zULiIaGzL+lUzMDv55wRThNl+oHaK3m6?= =?utf-8?q?3XvZpXUmLYj0k54WbMxufGn/H0kZlI3QOwS2kazg0O+UW/cu10XGuTnPAkHau556g?= =?utf-8?q?qyGwsmk1nFusDhsyxBENiFXLpnsDZPQVjpNXzcWlzGiZfbTQs3dRayUGwqJTWmrE2?= =?utf-8?q?wRTbz/B3VETYyoLXyweSzeX3dzQ9d1SS+ollzN2JUVxjlY/nKCBWQFGIMGEIN6t+B?= =?utf-8?q?TAQfnbQ3GCEgz2i2FNuig+Pc+KsQsXzX/2xyZkiwwPEYHeV+t7weR4tUt0tiXZSX3?= =?utf-8?q?3py7kIPsF1e+XEUIAVrs/Z2rH7K6G0Op+eEL0bLjI0FyaTRyPTNEQ/yFgN1G/cGfp?= =?utf-8?q?BUQouo2W4aPhEkfYzLeWMPcQ9qLSQdlQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14b6ecd3-3354-43f6-3356-08da1c6f0ff0 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 10:27:36.1787 (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: /uwwEmx6lON2cv5Nme+0DQaTjxyio6v44rD1CyMkncCIIKoUHWMO/BoEDzDSSfbr21XZCe1A62J4Lhp8H6fWMg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB6315 While future gas versions will allow line number information to be generated for all instances of .irp and alike [1][2], the same isn't true (nor immediately intended) for .macro [3]. Hence macros, when they do more than just invoke another macro or issue an individual insn, want to have .line directives (in header files also .file ones) in place. Signed-off-by: Jan Beulich [1] https://sourceware.org/git?p=binutils-gdb.git;a=commitdiff;h=7992631e8c0b0e711fbaba991348ef6f6e583725 [2] https://sourceware.org/git?p=binutils-gdb.git;a=commitdiff;h=2ee1792bec225ea19c71095cee5a3a9ae6df7c59 [3] https://sourceware.org/git?p=binutils-gdb.git;a=commitdiff;h=6d1ace6861e999361b30d1bc27459ab8094e0d4a Acked-by: roger Pau Monné --- Using .file has the perhaps undesirable side effect of generating a fair amount of (all identical) STT_FILE entries in the symbol table. We also can't use the supposedly assembler-internal (and hence undocumented) .appfile anymore, as it was removed [4]. Note that .linefile (also internal/undocumented) as well as the "# " constructs the compiler emits, leading to .linefile insertion by the assembler, aren't of use anyway as these are processed and purged when processing .macro [3]. [4] https://sourceware.org/git?p=binutils-gdb.git;a=commitdiff;h=c39e89c3aaa3a6790f85e80f2da5022bc4bce38b --- a/xen/arch/x86/include/asm/spec_ctrl_asm.h +++ b/xen/arch/x86/include/asm/spec_ctrl_asm.h @@ -24,6 +24,8 @@ #include #include +#define FILE_AND_LINE .file __FILE__; .line __LINE__ + /* * Saving and restoring MSR_SPEC_CTRL state is a little tricky. * @@ -89,6 +91,7 @@ */ .macro DO_OVERWRITE_RSB tmp=rax + FILE_AND_LINE /* * Requires nothing * Clobbers \tmp (%rax by default), %rcx @@ -137,6 +140,7 @@ .endm .macro DO_SPEC_CTRL_ENTRY maybexen:req + FILE_AND_LINE /* * Requires %rsp=regs (also cpuinfo if !maybexen) * Requires %r14=stack_end (if maybexen) @@ -171,6 +175,7 @@ .endm .macro DO_SPEC_CTRL_EXIT_TO_XEN + FILE_AND_LINE /* * Requires %rbx=stack_end * Clobbers %rax, %rcx, %rdx @@ -192,6 +197,7 @@ .endm .macro DO_SPEC_CTRL_EXIT_TO_GUEST + FILE_AND_LINE /* * Requires %eax=spec_ctrl, %rsp=regs/cpuinfo * Clobbers %rcx, %rdx @@ -241,6 +247,7 @@ * been reloaded. */ .macro SPEC_CTRL_ENTRY_FROM_INTR_IST + FILE_AND_LINE /* * Requires %rsp=regs, %r14=stack_end * Clobbers %rax, %rcx, %rdx @@ -288,6 +295,7 @@ UNLIKELY_DISPATCH_LABEL(\@_serialise): /* Use when exiting to Xen in IST context. */ .macro SPEC_CTRL_EXIT_TO_XEN_IST + FILE_AND_LINE /* * Requires %rbx=stack_end * Clobbers %rax, %rcx, %rdx --- a/xen/arch/x86/indirect-thunk.S +++ b/xen/arch/x86/indirect-thunk.S @@ -12,6 +12,7 @@ #include .macro IND_THUNK_RETPOLINE reg:req + .line __LINE__ call 2f 1: lfence From patchwork Tue Apr 12 10:28:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12810355 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 5FEDFC433EF for ; Tue, 12 Apr 2022 10:28:28 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.303596.517957 (Exim 4.92) (envelope-from ) id 1neDku-0004NY-EI; Tue, 12 Apr 2022 10:28:16 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 303596.517957; Tue, 12 Apr 2022 10:28:16 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1neDku-0004NR-AG; Tue, 12 Apr 2022 10:28:16 +0000 Received: by outflank-mailman (input) for mailman id 303596; Tue, 12 Apr 2022 10:28:15 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1neDkt-0004Hl-6N for xen-devel@lists.xenproject.org; Tue, 12 Apr 2022 10:28:15 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 42447106-ba4b-11ec-a405-831a346695d4; Tue, 12 Apr 2022 12:28:14 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-db5eur03lp2052.outbound.protection.outlook.com [104.47.10.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-31-LrgdbbHaNCaZ7pPxBlKXAw-1; Tue, 12 Apr 2022 12:28:12 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by AM6PR04MB4181.eurprd04.prod.outlook.com (2603:10a6:209:4c::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30; Tue, 12 Apr 2022 10:28:11 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::5592:2abe:fb16:6cd1%6]) with mapi id 15.20.5144.029; Tue, 12 Apr 2022 10:28:11 +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: 42447106-ba4b-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1649759293; 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=7hkQxPfO69f3ADg5a3PalCKGxVvlVBa32J4aqnLZzYs=; b=ToAZfHWfnIIuLkBnYTLN1XAHwv5WjLKYOqHPCyqDxusqh1A8NliRfie1IvBFpQa9irMSHB QdKvBZtcRiVL3KLE01tDMnNf9XXtfK8Z3EeBIPQOq1rXPmcBcF3fPx6JnzyLb7rfEqx1o4 N7k1t6h9VN7H27Gi913GUj457C2fVos= X-MC-Unique: LrgdbbHaNCaZ7pPxBlKXAw-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=naitpdP60afQ9W4uXaTqCu2u+IUvv25b97of08TnyGP7s/uOjP+H9PiVf0GcU6A+oKjlRaY0VZNF6R/oGWHNcVwcd9VoYhrrQ67io6lyDEO6vK1gMSS+gegwDRVakivCyARKDy2mM51+9e0zVotW+sqc24fFBAIx+efNYj5abatoLt/Mbj9scHCBthj8v+tRbFlFgb8k6UIZhg/13kXwJkZ3zRIk8vRWAetTDpWfWmmuN7jGNcVWMJOLYNZ4/ucpXcMSD7iEO2awNfXtzGtZxfLwTMNRV1U8L4vI38Qw39MpUQvOSd7JuHaeSRjSNFVd4+FQHyY279kJLzNjxzpY3Q== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7hkQxPfO69f3ADg5a3PalCKGxVvlVBa32J4aqnLZzYs=; b=AOJAtWB6Kji/B6PII2CxMrLu1fxW8DyQxUxyh8eqTgWHNR5KCSb15aTi4oWXbgpBhzpQsile3RjYH241yxn9UafO7MaGDCcfpsJbg0mcmEzDu7GVmhHEmr/ZWuZLpaPmEDY1BroDggB8bM0tBFaPtAqigEOEDKDl0mMS80+Ea8jbqqdxm98TTaby+kbDmUIPBUSqnhlPEUMvvG33/BFPY4T3SkHmVaWTJf8Q2DvudYEsl6ea+QzJMiwCI8k7t6UeYB1YW/OCov8CmSJ92kBTnaHyz/KcD5n74Bw4iXq86J5N2F3ikhJam6xA0DW+yeiAk8Vf4u6HdbAR0jqwBjLEdw== 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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <531ab7f7-ce5a-12b2-e7e7-528c26f9ff7f@suse.com> Date: Tue, 12 Apr 2022 12:28:07 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH 2/2] x86: annotate entry points with type and size Content-Language: en-US From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= References: In-Reply-To: X-ClientProxiedBy: AM6P192CA0059.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:82::36) To DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c7e56a4-bdc0-43df-fdfa-08da1c6f2501 X-MS-TrafficTypeDiagnostic: AM6PR04MB4181:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7lXFI0CxYBkwEMZJKSwHUM07X1tz4Hek4DKKWzVThgCFKFuPohMEA9qxTqIlxqMjyxHjWu9cCDC6ZIWK0WmgqKhjQEuFFRLf5lsDn9tqRuos7P5herCThcXC63iY7CAeFKkWn0bMWnDy5TbZUZNMuV9TnfhMXpww1+9dE8ApH2pzBUdwuk2d/o4fENtnepxM9D69JRmRykMDwtS/hjffkO/6xfC3m63OBdYXeGiSA10IoopRxRFMXfdU2umYlymAW7uhYRxT7zXHlpe2pDiaMg0tUy07Pq5WV0x66HgCdSD8c+CTe9uGXh9eQxZTbumLanO9WarE/PdygIJRkvF6kjBNsivfAdrufqtYYpcOpYt4x0NoX6fiotfIJPbVnN8roMBpbnT1lImsAofHa//GoSbscmNbG9wrVYX/xSC8ruk34kJjbmujwMXEYZhnYnBA+fEdq0oocGIh37QyvW7c/AI+SRkxCZNadJVnXNfdbokvm42ElZVSXvD03Jni7FczwMZF+PVs5e7Ur7mrr0ptdmOLTJqC3UqHB2oahMnssqAwVSKZhIPIqUX/NhStog7SFoK8pLSr9sUBITzyCPmk/JbQBFzHgnkkUxTeMyv4PiVUAEZGowxEiVud0H88uZvSdN8DriuC8lUlvIp3pRivMvK/iv1r8rVauPt8HKJ9hG1ZZhFuQqELsLQ+lM+R9TPRqSjLZ8KdWwSs92qRez9j43sUwPka9fwcWHOhZVbTSKL86wUmXJOjiLZHy6PdB4RJWUmfHbawVsx5ZCvjS1j1kilp2N8UkNg8OcHNlc7n1+ah8HmpWLiaTYJKCyDkGniJ8BrVxV8H0JLFpRo68MVz1w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8616.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(8936002)(83380400001)(6506007)(66476007)(66556008)(2616005)(508600001)(6486002)(31696002)(6666004)(26005)(186003)(5660300002)(86362001)(66946007)(36756003)(2906002)(8676002)(31686004)(6512007)(966005)(6916009)(4326008)(54906003)(316002)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?r5ooZCGeeyjijeSKKc/m86OM69ZR?= =?utf-8?q?l2wCBPol9kUGTEohMgw6uFVBsOYZIEoZcWxJbG/7ny/INzBFNVNQOdUkbNQP3icXx?= =?utf-8?q?SYmqTGiaGKcURENnJWslRuFn8srxNhZbhxNeBkIrcgDB0y/FWzGBLBuRsF2Z+OIoO?= =?utf-8?q?PpVqH8Gbk7i6QXdD+Qfv04yd+F9mkk8CarCFuvmm+c3sp1AChAu0JxOipGAhiW3a+?= =?utf-8?q?eB+Rngvw2qpGpDVgeTnbRFNWw2EkbaZmzahwt01sm5GxgkainRGIFBLTJQvaXnFJ7?= =?utf-8?q?nkxMZqJ3rIh3ZsUgd5RDb6i4FwNQvOfGIv+rTGjXqNTW1OeBhcge0K7yf3LygRaJw?= =?utf-8?q?kCtJ/7aJBB2rn0o5CyHxQ+K/9XbxP2dE32qe8azvWN8NKR067ZyL96K5GM3zCGIZN?= =?utf-8?q?2r7P6AEz5l3vv/tRPyu24XBNChofBafaCyTiqPg1fH5bJpTg6rw/IchD063JBYRJ7?= =?utf-8?q?yZdD9Wx7WIEHWpkSVBddYvrkRTCvITxIvWlcY9Ejpglbz+kVk7VrSQNBd+anEOOD/?= =?utf-8?q?lZHTPe4ovzoJRtJIFWivwftMtoxWmlCvgGVAF8gwR223KQKag8PseIYMloRZowDgX?= =?utf-8?q?VgVdpliIpX33iUNmjbyiw+p6U0tzR2RU1VTYG9lpQLY+FlPn5/qOmKzeJYpUJ331f?= =?utf-8?q?nUuedsBw7cnbspyPG4ocAYpcJpDtTRlFAUyiWVlTh1qCHTQCgIW0KHgwZXIOPyt4m?= =?utf-8?q?F2MGkQGtPKeV0z5CFAcadrqNE+xmPX7uigUR4IdIIGSX3e30lJtcuKoM07WPWxM14?= =?utf-8?q?iUNrqCZUO9youGOvvoBzVV2/sQpRQqwtpn+2tHN2lKJNAv4WwTEMPC4TCLTHDiQRv?= =?utf-8?q?uQT6+WMzqJ5cPx/mwtINxOsIDCutrZWgPhXFTbdxXDjxNaXiAI6fDpzSdkV4MPYsq?= =?utf-8?q?i3n0qzU5hJ1PSCCGNBEEOz4DYsnJkeZ6zOV4BxqVVsbyJrKauxbS14iE1AZlgbugM?= =?utf-8?q?nyQf/I25RiObxbXh53/Y0xtiY+JuBHUl17nZHWM48YXTF1ZwfrDD48R/8MxtbNr2R?= =?utf-8?q?e23Ah3qt0AasPpmaermfGdy6QmxP371fiK2Mm/EjbneKbxB5x1LmMBQluINOXPyxI?= =?utf-8?q?Sdsf9nTwTPv64g8xVxq8xBSZaAEuKKphProE6h65/5RHR6weD4kCOEALOGcgNtCio?= =?utf-8?q?Ea/49bFz7cGH4pk1AVWUf1Ej/DV4IBQ/OaY8sHFToKsJKVg6tpMnE+qETetYbgdM1?= =?utf-8?q?QsmHdgRORQ8ZKpJXF7GRM6uVG7RWYmUm/QGeFUJU0WMTu9En1QF57lgGqXGFtPhpd?= =?utf-8?q?3jTWQfgutGC64wlsICNXUJsoEWXYuSwXA30WBozh6F5+MV8Za8iQS3yHcPhNJ28qU?= =?utf-8?q?GATHDE+5hwIOtB3Lsp8GQQ5vhMwO99H5f6KWlVV4TvrG2CVPvxDiFJzqHed09kAU5?= =?utf-8?q?clU6ioPUk2JI1IlcL1PDZKqLEPNys+gzjbb1+/9RduoHaX2NfKgyvh+7W815yv3fO?= =?utf-8?q?mCJUoe43auvOt8RsSR9tHM2g9P0DxCQ6Au0WiGEPQBryheaVZkRVIpNuyOkU6adtu?= =?utf-8?q?E9pCbIJUEm5SJ49S0Ph2AYgfT08p0ahAakB6p+hCNcYzvUwCZhxjQaP+asSQ/OeRb?= =?utf-8?q?0T+Lu2actaFyxshDKdyxG/XBocNXEmDNB88/MEHc8Ao/Alwiwl6hiaVWIjxvD1jDz?= =?utf-8?q?b5TA8RcYKzwchtqQ2GmpK1A0fC0lB/xQ=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c7e56a4-bdc0-43df-fdfa-08da1c6f2501 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2022 10:28:11.4962 (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: PrvREJ2x0VTq+NyyeFby8VXhIvqNmTr8+qZ9xUzkB6fepNSPV18nc5TYWy7ezxsCvZGJiXmQQy7Aw/0rqlOeOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR04MB4181 Future gas versions will generate minimalistic Dwarf debug info for items annotated as functions and having their sizes specified [1]. "Borrow" Arm's END() and ENDPROC() to avoid open-coding (and perhaps typo-ing) the respective directives. Signed-off-by: Jan Beulich [1] https://sourceware.org/git?p=binutils-gdb.git;a=commitdiff;h=591cc9fbbfd6d51131c0f1d4a92e7893edcc7a28 --- a/xen/arch/x86/include/asm/config.h +++ b/xen/arch/x86/include/asm/config.h @@ -53,6 +53,11 @@ #define GLOBAL(name) \ .globl name; \ name: +#define END(name) \ + .size name, . - name +#define ENDPROC(name) \ + .type name, @function; \ + END(name) #endif #define NR_hypercalls 64 --- a/xen/arch/x86/x86_64/compat/entry.S +++ b/xen/arch/x86/x86_64/compat/entry.S @@ -27,6 +27,7 @@ ENTRY(entry_int82) mov %rsp, %rdi call do_entry_int82 +ENDPROC(entry_int82) /* %rbx: struct vcpu */ ENTRY(compat_test_all_events) @@ -116,6 +117,7 @@ compat_process_trap: leaq VCPU_trap_bounce(%rbx),%rdx call compat_create_bounce_frame jmp compat_test_all_events +ENDPROC(compat_test_all_events) /* %rbx: struct vcpu, interrupts disabled */ ENTRY(compat_restore_all_guest) @@ -161,6 +163,7 @@ ENTRY(compat_restore_all_guest) RESTORE_ALL adj=8 compat=1 .Lft0: iretq _ASM_PRE_EXTABLE(.Lft0, handle_exception) +ENDPROC(compat_restore_all_guest) /* This mustn't modify registers other than %rax. */ ENTRY(cr4_pv32_restore) @@ -193,6 +196,7 @@ ENTRY(cr4_pv32_restore) pop %rdx xor %eax, %eax ret +ENDPROC(cr4_pv32_restore) ENTRY(compat_syscall) /* Fix up reported %cs/%ss for compat domains. */ @@ -222,6 +226,7 @@ UNLIKELY_END(compat_syscall_gpf) movw %si,TRAPBOUNCE_cs(%rdx) movb %cl,TRAPBOUNCE_flags(%rdx) jmp .Lcompat_bounce_exception +ENDPROC(compat_syscall) ENTRY(compat_sysenter) CR4_PV32_RESTORE @@ -236,11 +241,13 @@ ENTRY(compat_sysenter) movw %ax,TRAPBOUNCE_cs(%rdx) call compat_create_bounce_frame jmp compat_test_all_events +ENDPROC(compat_sysenter) ENTRY(compat_int80_direct_trap) CR4_PV32_RESTORE call compat_create_bounce_frame jmp compat_test_all_events +ENDPROC(compat_int80_direct_trap) /* CREATE A BASIC EXCEPTION FRAME ON GUEST OS (RING-1) STACK: */ /* {[ERRCODE,] EIP, CS, EFLAGS, [ESP, SS]} */ @@ -352,3 +359,4 @@ compat_crash_page_fault: jmp .Lft14 .previous _ASM_EXTABLE(.Lft14, .Lfx14) +ENDPROC(compat_create_bounce_frame) --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -139,6 +139,7 @@ process_trap: leaq VCPU_trap_bounce(%rbx), %rdx call create_bounce_frame jmp test_all_events +ENDPROC(switch_to_kernel) .section .text.entry, "ax", @progbits @@ -230,6 +231,7 @@ iret_exit_to_guest: addq $8,%rsp .Lft0: iretq _ASM_PRE_EXTABLE(.Lft0, handle_exception) +ENDPROC(restore_all_guest) /* * When entering SYSCALL from kernel mode: @@ -281,6 +283,7 @@ ENTRY(lstar_enter) mov %rsp, %rdi call pv_hypercall jmp test_all_events +ENDPROC(lstar_enter) /* See lstar_enter for entry register state. */ ENTRY(cstar_enter) @@ -320,6 +323,7 @@ ENTRY(cstar_enter) jne compat_syscall #endif jmp switch_to_kernel +ENDPROC(cstar_enter) ENTRY(sysenter_entry) ENDBR64 @@ -384,6 +388,7 @@ UNLIKELY_END(sysenter_gpf) jne compat_sysenter #endif jmp .Lbounce_exception +ENDPROC(sysenter_entry) ENTRY(int80_direct_trap) ENDBR64 @@ -473,6 +478,7 @@ int80_slow_path: */ GET_STACK_END(14) jmp handle_exception_saved +ENDPROC(int80_direct_trap) /* create_bounce_frame & helpers don't need to be in .text.entry */ .text @@ -617,6 +623,7 @@ ENTRY(dom_crash_sync_extable) xorl %edi,%edi jmp asm_domain_crash_synchronous /* Does not return */ .popsection +ENDPROC(create_bounce_frame) #endif /* CONFIG_PV */ /* --- CODE BELOW THIS LINE (MOSTLY) NOT GUEST RELATED --- */ @@ -640,10 +647,12 @@ ret_from_intr: #else jmp test_all_events #endif +ENDPROC(continue_pv_domain) #else ret_from_intr: ASSERT_CONTEXT_IS_XEN jmp restore_all_xen +ENDPROC(ret_from_intr) #endif .section .text.entry, "ax", @progbits @@ -667,6 +676,7 @@ UNLIKELY_END(exit_cr3) RESTORE_ALL adj=8 iretq +ENDPROC(restore_all_xen) ENTRY(common_interrupt) ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP @@ -697,10 +707,12 @@ ENTRY(common_interrupt) mov %r15, STACK_CPUINFO_FIELD(xen_cr3)(%r14) mov %bl, STACK_CPUINFO_FIELD(use_pv_cr3)(%r14) jmp ret_from_intr +ENDPROC(common_interrupt) ENTRY(page_fault) ENDBR64 movl $TRAP_page_fault,4(%rsp) +ENDPROC(page_fault) /* No special register assumptions. */ GLOBAL(handle_exception) ALTERNATIVE "", clac, X86_FEATURE_XEN_SMAP @@ -872,12 +884,14 @@ FATAL_exception_with_ints_disabled: movq %rsp,%rdi call fatal_trap BUG /* fatal_trap() shouldn't return. */ +ENDPROC(handle_exception) ENTRY(divide_error) ENDBR64 pushq $0 movl $TRAP_divide_error,4(%rsp) jmp handle_exception +ENDPROC(divide_error) ENTRY(coprocessor_error) ENDBR64 @@ -890,72 +904,85 @@ ENTRY(simd_coprocessor_error) pushq $0 movl $TRAP_simd_error,4(%rsp) jmp handle_exception +ENDPROC(coprocessor_error) ENTRY(device_not_available) ENDBR64 pushq $0 movl $TRAP_no_device,4(%rsp) jmp handle_exception +ENDPROC(device_not_available) ENTRY(debug) ENDBR64 pushq $0 movl $TRAP_debug,4(%rsp) jmp handle_ist_exception +ENDPROC(debug) ENTRY(int3) ENDBR64 pushq $0 movl $TRAP_int3,4(%rsp) jmp handle_exception +ENDPROC(int3) ENTRY(overflow) ENDBR64 pushq $0 movl $TRAP_overflow,4(%rsp) jmp handle_exception +ENDPROC(overflow) ENTRY(bounds) ENDBR64 pushq $0 movl $TRAP_bounds,4(%rsp) jmp handle_exception +ENDPROC(bounds) ENTRY(invalid_op) ENDBR64 pushq $0 movl $TRAP_invalid_op,4(%rsp) jmp handle_exception +ENDPROC(invalid_op) ENTRY(invalid_TSS) ENDBR64 movl $TRAP_invalid_tss,4(%rsp) jmp handle_exception +ENDPROC(invalid_TSS) ENTRY(segment_not_present) ENDBR64 movl $TRAP_no_segment,4(%rsp) jmp handle_exception +ENDPROC(segment_not_present) ENTRY(stack_segment) ENDBR64 movl $TRAP_stack_error,4(%rsp) jmp handle_exception +ENDPROC(stack_segment) ENTRY(general_protection) ENDBR64 movl $TRAP_gp_fault,4(%rsp) jmp handle_exception +ENDPROC(general_protection) ENTRY(alignment_check) ENDBR64 movl $TRAP_alignment_check,4(%rsp) jmp handle_exception +ENDPROC(alignment_check) ENTRY(entry_CP) ENDBR64 movl $X86_EXC_CP, 4(%rsp) jmp handle_exception +ENDPROC(entry_CP) ENTRY(double_fault) ENDBR64 @@ -981,6 +1008,7 @@ ENTRY(double_fault) movq %rsp,%rdi call do_double_fault BUG /* do_double_fault() shouldn't return. */ +ENDPROC(double_fault) .pushsection .init.text, "ax", @progbits ENTRY(early_page_fault) @@ -990,6 +1018,7 @@ ENTRY(early_page_fault) movq %rsp,%rdi call do_early_page_fault jmp restore_all_xen +ENDPROC(early_page_fault) .popsection ENTRY(nmi) @@ -1120,17 +1149,20 @@ handle_ist_exception: ASSERT_CONTEXT_IS_XEN jmp restore_all_xen #endif +ENDPROC(nmi) ENTRY(machine_check) ENDBR64 pushq $0 movl $TRAP_machine_check,4(%rsp) jmp handle_ist_exception +ENDPROC(machine_check) /* No op trap handler. Required for kexec crash path. */ GLOBAL(trap_nop) ENDBR64 iretq +ENDPROC(trap_nop) /* Table of automatically generated entry points. One per vector. */ .pushsection .init.rodata, "a", @progbits @@ -1187,6 +1219,7 @@ autogen_stubs: /* Automatically generate vec = vec + 1 .endr +ENDPROC(autogen_stubs) .section .init.rodata, "a", @progbits - .size autogen_entrypoints, . - autogen_entrypoints + END(autogen_entrypoints)