From nobody Mon May 13 10:53:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1676891139; cv=none; d=zohomail.com; s=zohoarc; b=ElctRp9ws/0fTVX3CxDAOfD2lHp8kojLNdDPqiUAJ/o2zHj+spcLD2r2fNhcyMquXPVQBG73d+RW+9kF7NW2CPwUpRDbGm22jvZ0zZXankbpi79ZwzmbLLLpR8TtXkqZM5rrkCbA3PpEGXy8RZ0EaqOKpDFhb03yKgKEo1IWv74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676891139; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=40q+W00myoenB0yzy9tjT5E2StQznN/h6dknzsFffHs=; b=BFANlZYXKZJ/6i1TXOwTq0EljSHeqNMVZ2iDfUj84zt+C2/O/mkdfOlFWaTTAvMUl5rqziRC4PLYAYVqbHmZVTdje2o/lx/AOcmfu5x3gu5+eAsH0HRJlzKmqs7TRhEmdNtQKKrz6Hi/+5gfEFKce/moKSNZGWZWKnxi46pcfoE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1676891139179381.8736892676999; Mon, 20 Feb 2023 03:05:39 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.498009.768778 (Exim 4.92) (envelope-from ) id 1pU3yZ-0003zQ-Bt; Mon, 20 Feb 2023 11:04:55 +0000 Received: by outflank-mailman (output) from mailman id 498009.768778; Mon, 20 Feb 2023 11:04:55 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1pU3yZ-0003zJ-8C; Mon, 20 Feb 2023 11:04:55 +0000 Received: by outflank-mailman (input) for mailman id 498009; Mon, 20 Feb 2023 11:04:53 +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 1pU3yX-0003z8-KZ for xen-devel@lists.xenproject.org; Mon, 20 Feb 2023 11:04:53 +0000 Received: from esa2.hc3370-68.iphmx.com (esa2.hc3370-68.iphmx.com [216.71.145.153]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 649649bb-b10e-11ed-933d-83870f6b2ba8; Mon, 20 Feb 2023 12:04:51 +0100 (CET) X-Outflank-Mailman: Message body and most headers restored to incoming version 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: 649649bb-b10e-11ed-933d-83870f6b2ba8 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1676891091; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=CsFq8b5LCrQLYxvppMCMp85XRubt/i7qyf+titO7ukI=; b=E5h4JVWAjqM74n7vtk8UOtf4eKb/DyconX+yJo7NUZFbsIZ1Hrb4RFNA jA3fOmho6e1jYC6Q2xbEbQdaBw6PUHjh0h+XN1rOIvp5Lpiox3fkymGdz vfbQNt2k3cwXCxG65RhsO+UqKK0GV4ZDDaReA+Flxo4Pfx+vUQIMWyuN2 w=; Authentication-Results: esa2.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none X-SBRS: 4.0 X-MesageID: 97643589 X-Ironport-Server: esa2.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.123 X-Policy: $RELAYED IronPort-Data: A9a23:64mog69H/U+67uo2Fko3DrUDqX6TJUtcMsCJ2f8bNWPcYEJGY0x3n DMaCm+DP66JY2f9fdtzOom1/U1QuseGzdVrSAc5+CE8E34SpcT7XtnIdU2Y0wF+jCHgZBk+s 5hBMImowOQcFCK0SsKFa+C5xZVE/fjUAOG6UKicYXoZqTZMEE8JkQhkl/MynrlmiN24BxLlk d7pqojUNUTNNwRcawr40Ire7kIw1BjOkGlA5AdmP6oT5Aa2e0Q9V/rzG4ngdxMUfaEMdgKKb 76r5K20+Grf4yAsBruN+losWhRXKlJ6FVHmZkt+A8BOsDAbzsAB+v9T2M4nQVVWk120c+VZk 72hg3ASpTABZcUgkMxFO/VR/roX0aduoNcrKlDn2SCfItGvn9IBDJyCAWlvVbD09NqbDklux OI/BHchUSrdxMWN6ZCdZssruM08eZyD0IM34hmMzBncBPciB5vCX7/L9ZlT2zJYasJmRKiEI ZBDMHw2MUqGOkcUUrsUIMtWcOOAr3/zaTBH7nmSorI6+TP7xw1tyrn9dtHSf7RmQO0EwRjE/ T+WrgwVBDlBL8TGwxvUzkuHudbUnA2kYrtJBv6Ro6sCbFq7mTVIVUx+uUGAiem0jAuyVsxSL 2QQ+zEytu4i+UqzVN7/Uhak5nmesXY0efBdDuk74wGl0bfP7kCSAW1sZiFFQMwrsokxXzNC/ lyOmcngCXpwsbmWYXWH/7yQoHW5Pi19EIMZTXZaF01fuYCl+dxtyEuVFb6PDZJZkPXVKC/X7 3emkxJgxJIopOwt+4f8w1nY1mfESofyciY54QDeX2SA5wx/ZZK4a4HA1WU3/cqsP67CEADf4 SFsd9y2qblXUMrTzHDlrPAlRunB2hqTDNHLbbeD9bEF/i/lxXOsdJs4DNpWdBYwaZZsldMEj SbuVeJtCH17ZiTCgUxfOdjZ5yEWIU/ITI2NaxwsRoASCqWdjSfelM2UWWae3nr2jG8nmrwlN JGQfK6EVChFV/Q8lWTtGrhFitfHIxzSIkuJGPjGI+mPi+LCNBZ5t59YWLdxUgzJxPzd+1iEm zquH8CL1w9eQIXDjtr/qOYuwaQxBSFjX/je8pUHHtNv1yI6QAnN/deNm+J+E2Gk9owJ/tr1E oaVABEBmAev2iGWcG1nqBlLMdvSYHq2llpjVQREALpi8yF7CWpzxM/zr6cKQIQ= IronPort-HdrOrdr: A9a23:wtnDIKPPUD6ZdMBcTs2jsMiBIKoaSvp037Eqv3oedfUzSL3+qy nOpoV+6faaslYssR0b9exoW5PwJE80l6QFgrX5VI3KNGKN1VdARLsSi7cKqAeAJ8SRzIFgPN 9bAspDNOE= X-IronPort-AV: E=Sophos;i="5.97,312,1669093200"; d="scan'208";a="97643589" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu , Konrad Rzeszutek Wilk , Ross Lagerwall Subject: [PATCH] x86/asm: ELF metadata for simple cases Date: Mon, 20 Feb 2023 11:04:39 +0000 Message-ID: <20230220110439.1518972-1-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1676891140757100003 This is generally good practice, and necessary for livepatch binary diffing= to work. With this, livepatching of the SVM entry path works. The only complication= is with svm_stgi_label which is only used by oprofile to guestimate (not completely correctly) when an NMI hit guest context. Livepatching of VMX is still an open question, because the logic doesn't fo= rm anything remotely resembling functions. Both code fragments jump into each other so need to be updated in tandem. Also, both code fragment entries ne= ed trampolines in the case that patching actually occurs. For now, just treat= it as a single function. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Wei Liu CC: Konrad Rzeszutek Wilk CC: Ross Lagerwall --- xen/arch/x86/clear_page.S | 3 +++ xen/arch/x86/copy_page.S | 3 +++ xen/arch/x86/hvm/svm/entry.S | 3 +++ xen/arch/x86/hvm/vmx/entry.S | 3 +++ 4 files changed, 12 insertions(+) diff --git a/xen/arch/x86/clear_page.S b/xen/arch/x86/clear_page.S index d9d524c79ecd..5b5622cc526f 100644 --- a/xen/arch/x86/clear_page.S +++ b/xen/arch/x86/clear_page.S @@ -16,3 +16,6 @@ ENTRY(clear_page_sse2) =20 sfence ret + + .type clear_page_sse2, @function + .size clear_page_sse2, . - clear_page_sse2 diff --git a/xen/arch/x86/copy_page.S b/xen/arch/x86/copy_page.S index 2da81126c5fa..ddb6e0ebbb6e 100644 --- a/xen/arch/x86/copy_page.S +++ b/xen/arch/x86/copy_page.S @@ -41,3 +41,6 @@ ENTRY(copy_page_sse2) =20 sfence ret + + .type copy_page_sse2, @function + .size copy_page_sse2, . - copy_page_sse2 diff --git a/xen/arch/x86/hvm/svm/entry.S b/xen/arch/x86/hvm/svm/entry.S index 981cd82e7c0b..9e3dab768027 100644 --- a/xen/arch/x86/hvm/svm/entry.S +++ b/xen/arch/x86/hvm/svm/entry.S @@ -142,3 +142,6 @@ GLOBAL(svm_stgi_label) sti call do_softirq jmp .Lsvm_do_resume + + .type svm_asm_do_resume, @function + .size svm_asm_do_resume, . - svm_asm_do_resume diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S index 5f5de45a1309..e3f60d5a82f7 100644 --- a/xen/arch/x86/hvm/vmx/entry.S +++ b/xen/arch/x86/hvm/vmx/entry.S @@ -150,3 +150,6 @@ ENTRY(vmx_asm_do_vmentry) sti call do_softirq jmp .Lvmx_do_vmentry + + .type vmx_asm_vmexit_handler, @function + .size vmx_asm_vmexit_handler, . - vmx_asm_vmexit_handler --=20 2.30.2