From nobody Sat Apr 20 08:13:30 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=1642081913; cv=none; d=zohomail.com; s=zohoarc; b=QunBG03FZJJD+LP5L2CN1tP6N3kKlRYxtBga23cHXuodyidmawTRXQUknIaCzDNfrUEA/w/0E6Bsq3YbxUyFgd9Msx9t3zUbzozk7GKm5weyH4oHHLmfaB/vymYIO1HiDIe7LWY5X31Oxf1SNZYn7l9kI5N9MKY3cQ7j4dy/e6Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1642081913; 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=uS4aR1k8TW+pbY5Uce9l74OUlJ36UNPPyqza3t2Njk8=; b=CYJHbGjGwERTq6/T0o723M5L9RVXHnS3KB0F6Um7+vQi9p7Hm4LlZzJ1j+0wToBHRW+R7ieNSb/jYWVEq94GSRI/4EoDgs0Me02IyRSPNQKmb6qp9eny/ItHtY5vUPc4YXhy429RE2VytwqBq1hsY5PMaED9aQ0rIpuHvYrP+Vk= 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 1642081913582231.32155026430974; Thu, 13 Jan 2022 05:51:53 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.257227.441956 (Exim 4.92) (envelope-from ) id 1n80Vg-0005jH-FM; Thu, 13 Jan 2022 13:51:24 +0000 Received: by outflank-mailman (output) from mailman id 257227.441956; Thu, 13 Jan 2022 13:51:24 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1n80Vg-0005jA-CW; Thu, 13 Jan 2022 13:51:24 +0000 Received: by outflank-mailman (input) for mailman id 257227; Thu, 13 Jan 2022 13:51:22 +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 1n80Ve-0005j4-Qb for xen-devel@lists.xenproject.org; Thu, 13 Jan 2022 13:51:22 +0000 Received: from esa6.hc3370-68.iphmx.com (esa6.hc3370-68.iphmx.com [216.71.155.175]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id e287c8d8-7477-11ec-a563-1748fde96b53; Thu, 13 Jan 2022 14:51:21 +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: e287c8d8-7477-11ec-a563-1748fde96b53 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1642081881; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=HuVwzl2dTBFRt065R7TXfUhehKG/ptrawwgpkETPl9o=; b=YgTKh/wvpvixYR6IOovj3UFYmI5zHT2jzI0jyUY4qFhRoAiTKvNpGDpG gNfZUcJ49sOaIVZjp7s/YxAZQmlpVfJ6PD9wPuuV+7zVAMhwerBQuLDpv IkJhGEy4v36T2z5Ih6F7cujpKyaUvPjdmx+FtD1v35u+15fd5xN7WFTSX U=; Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none IronPort-SDR: TgXrbY/lMr9iSDxOUJGTgMo1IVtlGOCu0A8BOLRDpKBQcDX4MOk2J/K0xxQDXKWWKosVm1h37F HSxUzzdLzyp8UO8G02WSlCCoVrWaRgWdAh1hKsbVboQAbgYBVlJEIAIqDAuDxQIt0B5xFb6NuZ 7iVw+YgjGieMt/2ovNxxqW4tQos8FIlSNngh7SMwaOI29sxVz5U5z3arIz2doaHC+vtTGJzL7d Fs2ZKhzyAPItiM1q6ffRrXN8L6yZyZanPWfY2NUgiJ7vEdJHQ34Cz7RPPEGElbsBmP4loOnHFG SXqK8v9jr74LQs3LaAOIBCor X-SBRS: 5.2 X-MesageID: 61837954 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-Data: A9a23:InHIaa34T8g8hmE2rvbD5Qd2kn2cJEfYwER7XKvMYLTBsI5bpzxTy 2sWXj2OOq2JZzP2LtolYdni9kkG78KEydZnHAJkpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt Zh2hgzodZhsJpPkS5PE3oHJ9RGQ74nRLlbHILOCanAZqTNMEn9700o6wrVh2OaEvPDia++zk YKqyyHgEAfNNw5cagr4PIra9XuDFNyr0N8plgRWicJj5TcypFFMZH4rHomjLmOQf2VhNrXSq 9Avbl2O1jixEx8FUrtJm1tgG6EAaua60QOm0hK6V0U+6/TrS+NbPqsTbZIhhUlrZzqhg+p/0 9VOvLeKUgo7J6rAws0kcztADHQrVUFG0OevzXmXtMWSywvNcmf2wuUoB0YzVWEa0r8pWycUr 6VecW1TKEDY7w616OvTpu1Er8IvNsT0eqgYvWlt12rxBvc6W5HTBa7N4Le02R9u35AVQqeDO 6L1bxJjSgjfXA1fNW0XDasfpsi22FfdQzRX/Qf9Sa0fvDGIkV0ZPKLWGMXRUsyHQ4NShEnwj kDs8nn9AxoaHMeC0jfD+XWp7sffkCW+VI8MGbmQ8v9xnEbV1mEVEAcRV1awvb++kEHWZj5EA xVKoGx09/F0rRH1CImmN/GlnJKalgImVcFQEOQR0hqA2LPT71ywP0gmViEUPbTKq/QKbTAt0 1aImfbgCjpurKCZRBqhy1uEkd+hEXNLdDFfPEfoWSNAuoC++99r0nojW/4+SPbdszHjJd3nL 9lmRgAajq5bs8ME3r7TEbvv02P1/cihouLYC2zqsoOZAuFRON/Ni2+AswGzARN8wGCxFAnpU J8swZn20Qz2JcvR/BFhuc1UdF1T296LMSfHnXlkFIQ7+jKm9haLJN4Mumknfx83bpZfI1cFh XM/XysLtPe/21PwPMdKj3+ZUZx2ncAM6/y4PhwrUja+SscoL1LWlM2fTUWRw3rsgCARfVIXY v+mnTKXJS9CU8xPlWPuL89EiOND7n1gmQv7GM6qpzz6gev2TCPEEt8tbQrRBt3VGYvZ+m05B f4FaZvTo/ieOcWjChTqHXk7dgFVfSNlVMGv+6S6tIere2JbJY3oMNeJqZtJRmCvt/U9ej7g8 i7vV0lG5kD4gHGbewyGZmo6MOHkXIplrGJ9NispZA76138maIepzaEea5poIuV3qL09laZ5H 6sfZsGNIvVTUTCbqT4TWobw8d55fxOxiAPQYyf8OGojf4RtThDi88P/ele97zEHCye67JNso 7Cp2g7Bb4AEQgBuUJTfZP61lgvjtnkBguNiGUDPJ4ALKknr9YFrLQ33j+M2fJ5QeUmSmGPC2 l/PUxkCpOTLr4sky/XzhPiJ/9WzDu9zPktGBG2Hv7y4AjbXozi4yohaXefWIT2EDDHo+L+vb Pl+xu3nNKFVh05DtodxHuo5za864Nez9bZWwh49QSfOZlWvTLhhPmOHzY9EsagUnu1Vvg6/W 0Su/NhGOOrWZJO5QQBJfAd1PP6e0fw0myXJ6aVnKUr30yZ74b6bXBgAJBKLkiFccON4PY5NL T3NYyLKB9hTUiYXD+s= IronPort-HdrOrdr: A9a23:xf7ESaHqRoyJcDwNpLqE5MeALOsnbusQ8zAXP0AYc3Jom6uj5q eTdZUgpHvJYVkqOE3I9ertBEDiewK4yXcW2/hzAV7KZmCP0wHEEGgL1/qF/9SKIUzDH4Bmup uIC5IOauHNMQ== X-IronPort-AV: E=Sophos;i="5.88,286,1635220800"; d="scan'208";a="61837954" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu Subject: [PATCH] x86/hvm: Improve hvm_set_guest_pat() code generation Date: Thu, 13 Jan 2022 13:50:35 +0000 Message-ID: <20220113135035.23361-1-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 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: 1642081914661100001 This is a fastpath on virtual vmentry/exit, and forcing guest_pat to be spilled to the stack is bad. Performing the shift in a register is far more efficient. Drop the (IMO useless) log message. MSR_PAT only gets altered on boot, and= a bad value will be entirely evident in the ensuing #GP backtrace. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Wei Liu --- xen/arch/x86/hvm/hvm.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index d233550ae47b..e3c9b3794544 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -299,13 +299,13 @@ void hvm_get_guest_pat(struct vcpu *v, u64 *guest_pat) *guest_pat =3D v->arch.hvm.pat_cr; } =20 -int hvm_set_guest_pat(struct vcpu *v, u64 guest_pat) +int hvm_set_guest_pat(struct vcpu *v, uint64_t guest_pat) { - int i; - uint8_t *value =3D (uint8_t *)&guest_pat; + unsigned int i; + uint64_t tmp; =20 - for ( i =3D 0; i < 8; i++ ) - switch ( value[i] ) + for ( i =3D 0, tmp =3D guest_pat; i < 8; i++, tmp >>=3D 8 ) + switch ( tmp & 0xff ) { case PAT_TYPE_UC_MINUS: case PAT_TYPE_UNCACHABLE: @@ -313,10 +313,9 @@ int hvm_set_guest_pat(struct vcpu *v, u64 guest_pat) case PAT_TYPE_WRCOMB: case PAT_TYPE_WRPROT: case PAT_TYPE_WRTHROUGH: - break; + continue; + default: - HVM_DBG_LOG(DBG_LEVEL_MSR, "invalid guest PAT: %"PRIx64"\n", - guest_pat);=20 return 0; } =20 --=20 2.11.0