From patchwork Tue Jan 25 14:49:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roger_Pau_Monn=C3=A9?= X-Patchwork-Id: 12723909 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 86B37C433FE for ; Tue, 25 Jan 2022 14:50:21 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.260406.449848 (Exim 4.92) (envelope-from ) id 1nCN98-0005CN-I2; Tue, 25 Jan 2022 14:50:10 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 260406.449848; Tue, 25 Jan 2022 14:50:10 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nCN98-0005C9-Ds; Tue, 25 Jan 2022 14:50:10 +0000 Received: by outflank-mailman (input) for mailman id 260406; Tue, 25 Jan 2022 14:50:08 +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 1nCN96-000334-QA for xen-devel@lists.xenproject.org; Tue, 25 Jan 2022 14:50:08 +0000 Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com [216.71.155.144]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id fd83f6db-7ded-11ec-bc18-3156f6d857e4; Tue, 25 Jan 2022 15:49:27 +0100 (CET) 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: fd83f6db-7ded-11ec-bc18-3156f6d857e4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1643122207; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=b8gUfnxfMT9jaop10Gl1R/jrvfY+DfW2W+UdEuJu/hM=; b=Gw7aE3fmcM4GIBPf6QXJtc/3L1A2/DZX9Vmy2g6csdV/oYClpYL5KWeF OWdlsszXDG2IABYUVMZjvFI/ru8FZ81dy7pRCQXy+DFZRmqJ9ZLlE2gUC YP8DNRd3JnCFZ0h/6+kvHK6Q8XGF1Rzz8sPqBaFNHADoHg/f4eCrHudFj U=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: TtqoIkttRPuZ5a0Yl4W8lu8MFtC52jinK4d1Do1ndrzzwl3ljTFPYUxIZwmpP4MsH+6McWbkp6 dcRNmPiqOB3LBpqzFKwq6rQ4AjB6nhSNp8UspioaDmi0KA8Hpf56b7eysFoLl1cUwINA1hwNyH ahENqpCrqci2mTb7iU5NoRVUGTqGbBKFcn03wHXH7r2w1PC6l47YgIdWqeCfWmStMMFetUv+/A SnBLfRHu9mSCpGnFoUbZcGuDID5wwm3QhqaWN8SXKUzCe5LtPvDOni0wA3pQBo8f3oOS6+YBXF sVo0i6McWMgWsFXUG1kKhodW X-SBRS: 5.2 X-MesageID: 64880007 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-Data: A9a23:q4Wyeaq1iOy3PCJ4deK/AvB5HXBeBmLpYhIvgKrLsJaIsI4StFCzt garIBnXPamIajb9fdp+Oo+09kNVvpLdn9NhS1E9rC4xFX4X8puZCYyVIHmrMnLJJKUvbq7GA +byyDXkBJppJpMJjk71atANlZT4vE2xbuKU5NTsY0idfic5Dndx4f5fs7Rh2NQw2ILkW1nlV e7a+KUzBnf0g1aYDUpMg06zgEsHUCPa4W5wUvQWPJinjXeG/5UnJMt3yZKZdhMUdrJ8DO+iL 9sv+Znilo/vE7XBPfv++lrzWhVirrc/pmFigFIOM0SpqkAqSiDfTs/XnRfTAKtao2zhojx/9 DlCnaKxZAsMJfDlo+EyFBNITnAvBrBN2IaSdBBTseTLp6HHW37lwvEoB0AqJ4wIvO1wBAmi9 9RBdmpLNErawbvrnvTrEYGAhex6RCXvFJkYtXx6iynQEN4tQIzZQrWM7thdtNs1rp4STaaGP 5JGAdZpRATKZTx+O1E8M707xLqWukT1eSVcrF3A8MLb5ECMlVcsgdABKuH9eNOQQt5Otl2Fv W+A9GP8ajkYPtGCzTuO8lq3m/TC2yj8Xeo6BLC+s/JnnlCX7mgSEwENE0u2p+GjjUyzUM4ZL FYbkgIxqYAi+UrtScPyNyBUu1bd4ERaAYAJVbRntkfdkcI4/jp1GEA6TxNNTcd7nfQzansgx gLYzuj0DhxW5ej9pW2myp+Yqja7OC4wJGAEZDMZQQZt3+QPsL3fnTqUEI89TffdYsndXGipn mvU9HRWa6A70JZTv5hX62wrlN5FSnLhagcurjvaUWu+hu+STN70Ptf4gbQ3ABspEWp4crVjl CVc8yR9xLpXZX1oqMBraL9RdF1Oz63dWAAweXY1Q/EcG82FohZPh7x47jBkP1tOOc0ZYzLva 0K7kVoPuMQLYCr1MvEmMtrZ5yEWIU7IT4iNuhf8NYImX3SMXFXfoHEGibC4gQgBb3TAYYlgY MzGIK5A/F4RCLh9zSreegvu+eRD+8zK/kuKHcqT503+idK2PSfJIZ9YbgfmRr1nvcus/VWEm /4CZpDi40gOD4XDjtz/rNR7waYidyZrXPgbaqV/K4a+H+aRMDhxUqCKmeJ4JdUNcmY8vr6gw 0xRk3RwkTLXrXbGNR+LejZkbrbuVox4tnU1IWonOlPA5pTpSd3HAH43e8RlcL852vZkyPIoH fAJd9/ZWqZESyjd+iRbZp749dQweBOujAOIHiykfDlgIMIwG12XoofpLln16S0DLiurrs9i8 beu4RzWHMgYTAN4AceINP/2lwGtvWIQkf5ZVlfTJoUBY13l9YVncnSjjvI+L8wWBw/Ewz+Wi 1SfDRsC/LGfqI4p6tjZw6uDqt7xQed5G0NbGUjd7Kq3anaGrjbyn9cYXb/RLz7HVW7y9KGzX slvzqnxYK8dgVJHk4tgCLI3n6gw0MTi+u1BxQN+EXSVM1nyUuF8ImOL1NVkv7FWwuMLohO/X 0+C94UIObiNP8+5QlcdKBB8M7aG3PAQ3DLT8e40MAPx4youpOiLVkBbPh+tji1BLeQqbNN5k Ll54MNGuRaijhcKM8qdinEG/muBGXUMTqE7u8xIG4TskAcqlglPbJG05vUaO31ThwGg6nUXH wI= IronPort-HdrOrdr: A9a23:Rc8Sdq9Cm4KwovIabf9uk+FAdb1zdoMgy1knxilNoENuHfBwxv rDoB1E73LJYVYqOU3Jmbi7Sc29qBTnhOJICOgqTMqftWzd1ldAQ7sSi7cKrweQeREWs9Qtrp uIEJIOeeEYb2IK9PoSiTPQe71LoKjlzEnrv5al854Ed3AVV0gK1XYfNu/0KDwSeOEQbqBJa6 Z0q/A37AaISDAyVICWF3MFV+/Mq5nik4/nWwcPA1oC5BOVhT2lxbbmG1zAty1uHg9n8PMHyy zoggb57qKsv7WSzQLd7Xba69BzlMH6wtVOKcSQgow+KynqiCyveIN9Mofy9gwdkaWK0hIHgd PMqxAvM4Ba7G7QRHi8pV/X1wzpwF8Vmgnf4G7dpUGmjd3yRTo8BcYEr5leaAHl500pu8w5+L 5X3kqC3qAnQy/orWDY3ZzlRhtqnk27rT4JiugIlUFSVoMYdft4sZEfxkVIC50NdRiKp7zPKN MeTP002cwmMm9zNxvizytSKZ2XLzgO9y69Mwk/Upf/6UkSoJh7p3Fos/D30E1wsK7VcKM0lN gsBJ4Y4I2mfvVmHZ6VO91xM/dfcla9OS4kEFjiaGgPR5t3c04klfbMkcAIDaeRCds18Kc= X-IronPort-AV: E=Sophos;i="5.88,315,1635220800"; d="scan'208";a="64880007" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eekxc+HW1UDGs70oPp3o71pMTQ2NwtI1P1znXComzjMifa4CvnNS6//RFAnGQ7Ok1vdDFDwHmdJ8zuvqaN1TxqdUHpWklo9Tb4hMAiDW16zO1G6BYI8FL1/G+UIneUOJ5S0sQxLDrNi1N5M5FXd1rmCQ1qzWdoBT7WnpISOjZQwrJST4hLNdsaShM3Tv5kZp6BAhiwI68IaRNYeCFN0nFR5mHIjpwcUgA3W4dQK7ykB+olsKWblkSIi9UixH1ud91b4jc205qHIMSaEtRdz3rQrekl9FjOH33JGigwrrthxBlcSelWAVFJJHzaOYmC41+k24gNRhgsPwNn8AhnuKog== 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=2UP6F+DQsCKngxfuXZykNG42jx0HaHpJ8RyucFFd0lY=; b=hOlJhNxhktgA02qQ+OcSFHhb80vQ+zpPPkGdr7ad9ZFrzk0dBxapFGhDNTP0iQEjT55SQ7eWYFQ4gi2M08W9qMloHfrm3T5cNkahAuKXVotSBneSxlMB+jRt/KPMZZTNZrdI6MWc733OX80y7+haHnvUk+RFYBXbnqoJQuPZKd7HL6WbijeneedNJcU7bjPYvPVtm9kG/4XL+jQ1C/2ssUQcnFmpFbgtsOyCKGmcsaUEaaesJUC5I/lJR9aLtJOLVS6jja6m3Kiars+RpcFBZSsRdj9jgY8NF3lf852/ur3ZWMY+LFbP2aq5xN+ltNdExJqX67s2F6LI4yX9siIwQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=citrix.onmicrosoft.com; s=selector2-citrix-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2UP6F+DQsCKngxfuXZykNG42jx0HaHpJ8RyucFFd0lY=; b=ibTj5S9vS33CGpUQpmzVmsun79JfvLbkrSjlZG/KxlP87ivLESStgWK4JyPmnZ4oK0LpUKcfP+bciXwbwZk37fC1iaYlw0aV4D69Sxu2HCQJy5e/ByY2k0akhD7fpsLhZxFGwlT/xdIEMpoU5Sqav4sZkbdUz2lVJJYkx7I4BUc= From: Roger Pau Monne To: CC: Roger Pau Monne , Wei Liu , Anthony PERARD , Juergen Gross , Jan Beulich Subject: [PATCH v7 04/11] libs/guest: allow fetching a specific MSR entry from a cpu policy Date: Tue, 25 Jan 2022 15:49:28 +0100 Message-ID: <20220125144935.44394-5-roger.pau@citrix.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220125144935.44394-1-roger.pau@citrix.com> References: <20220125144935.44394-1-roger.pau@citrix.com> X-ClientProxiedBy: MR1P264CA0076.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:3f::19) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54fac90c-7dc9-428a-0416-08d9e011f85d X-MS-TrafficTypeDiagnostic: BYAPR03MB4568:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T/64cUynr0F6G3dt/MDY8gY2tTl2fqFoMCoAZG9tj5qdXJO14SuKIpZePkLtbO07hUXsExc+FGTv0rPFDuYjkSbBFJUXkKUABGa7NWr49eQHA4+TSMeP5lY1512ukafdniR28wYlzhRuPC5ewRHpJfdhxxP6Y5K0bUuuZQuUxBni3yNddfO7ESvkxO4cJlgamoLvFqLKY2qrpW1uMe8IVgeWxG9zFszjmatA5PW3xEiBMXAMiA2EzbpSllUvypfbwMxVSLxzp0LSP6p8WMoqVQpCn9EQE9vPZSsH69blSkRwmKJ8X5upcOIch/LAqUS2EHgNfru80uPaIPuoNkSItGf74pkyoqwmoBHFG39stWvZZHbcpiNsywSHgJBHYCmUeAZqo2edhhF2cA1u00kzEUpkR6MQFKuJp8UN8aj1yjlhTjcpNR1cBhMuvm6ggX9lCaMhIOX5PhPG96U58KPae8XTI/UttrZZnhw7gsio94/vdNW0vsZN1g0LMFrPHdEJIdsigJfqAPhd67z6lpTIYaoTEoBFJFsMbaarSBJ9vRxSbCltHXl0dVH+1wfZ5GecYNHWxjx/CNiwCxZvQS6UsIwa1eMiMLVSW/ouy7vWmhBRwiF7LW+bQx4EoSkEDoP5vNcjarooRONthlAE4hqVEA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR03MB5608.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(4326008)(8676002)(26005)(1076003)(2616005)(6512007)(508600001)(6916009)(83380400001)(54906003)(36756003)(2906002)(316002)(8936002)(66476007)(5660300002)(86362001)(6506007)(82960400001)(66556008)(6666004)(186003)(66946007)(6486002)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?osuNG/U40KciIqg+lJUXQJVEQSOG?= =?utf-8?q?UjlJfVzZdL4utY3AZYvP/PR47o8Gza1gOM5VGrOTdZITuPwcms43vmxrMZxZyPq4h?= =?utf-8?q?EiDag4/txNrmheVHTPaH1LTp4oAjO2DiBjKDSnKibTZByl+M6LcZs8VAA/as4byqq?= =?utf-8?q?eIANhLMepWq40xi5cTdazzpMkiG0xiTZiH72Yq0WcBbOicmh04uEA1E11YmzA4y+k?= =?utf-8?q?Up5pqQs+I6EcNpITxsAs1ZKuSqybesxtgfc5X3xz3BS8rF01hg3b3gRGOZYcDv5K8?= =?utf-8?q?D5W9021qesHUdeWFAqjWuLhbvOJmHtH+GPzkYpbWyKDKrOH7oQBTIQh+Ia/OI47p5?= =?utf-8?q?rIRQ+7GCAoL45KEZZ0s6lEiuPlh+4wIzvAg+haB9QNudjJQ00pCXVOqrsMMy3y/IA?= =?utf-8?q?pnAnXu7v3goJ0nkusOUyMi+jLNfaZ67VMTCkaItNIy5zT7B13eQHxImrQN2MNfHB3?= =?utf-8?q?VHtkJB58rsLTfJ0CwqGDWMsxyyfv2Me1HH2sdvswaj3XaM34vdzNbS0WU7bGzQ0P8?= =?utf-8?q?aQ8+z/C7xt+yGKj2mJ5tOz7f4uKVw4nqtzNtu4jJwtPHMiE4QWteL3tLC/66Nvfkq?= =?utf-8?q?xKYd8y+WCEo8wVO9NiIzmUJI3860vbirD+RcWYsmdf2dDDzDkiEICAr7106A/2X9o?= =?utf-8?q?xickeYlt1qfl+kVAhQC3huLWuIP5LROC+AjaAqHzT2W/zB0zezSHLruV9NbYY3QRl?= =?utf-8?q?mJZr5nzsI+2J90dAADj/m7JO88TqN4hcOMS1poeJzHyWa7eILJuvosIa58ZUZCHFf?= =?utf-8?q?WAAJsS9h6xVHEcp2PBYlKXaRfdS2rFbdnB3Np9VBEMcVpoMH7oewjYLsWwkcfe07E?= =?utf-8?q?Y0u/2xfYXzghzYUd5EqetWeLrLeq+A9vEx9mUCPtl4BtH+gPum1ASi8JZe9bOSG0f?= =?utf-8?q?G3F7cOOq3cyNBzfI7dQRnoBWrhOlzCjq8T8JXkDqsfyxXaSosrR5KG9WI/VKjXspY?= =?utf-8?q?sjvEzft3dZxBUAcFx94w2dHlN3+oOYkyQmIzP456JTnqGABualt2jJLtViEbRDANb?= =?utf-8?q?HZ+nralMRaHCNl4U3gWE5s8xl94hhfxMDB3wldcsgUv0z2w4A3aOSbVi7AMU50H/a?= =?utf-8?q?M5Hi8EdkavcIY6UtXrt+wfLr8jmX9dsO66omCdDORua2RnsLwqMJY6/S4ZHfopOo+?= =?utf-8?q?ZT3U1rAAs3BykodHQH5ayjHp1WDj9+r5oU9uvqX7RdOfFUKVqilv8Z/bfUOonHKt5?= =?utf-8?q?tFrQYjoT4P3knnLsHNOAVsbQTzKLEAtGgCkwSzCY0VBYW1O/DRKdxMg7EmquoUROU?= =?utf-8?q?w4qgaDzrXMKknjXrSX9i5CxVRWfdb867jeEzq/lzWfmwL/DVYMQ+XOu3lFwWbObsE?= =?utf-8?q?/Alk5CXcZcgMGqViHwoG1+J/wqSG0fWREpzvm92IO55jHeVVfe8s623LNZpsBewzY?= =?utf-8?q?0kZ6PivXMYA7lBtAEan/Agwv1Mhn2Y5f0E/ZKXX6j/uMmvgk5p8K9ouk/3LD49qae?= =?utf-8?q?ho0oz3hzfA99Mr5xUXcDWvf8nGOUArmAqt7gb+iQx2qppkSPWi5MZq3BFX6IVwA9G?= =?utf-8?q?IH3yNldfSowR5iwjI4Jxh+Rf0hcpeb/sd+Rp2s/t4RUIxMfiS3liemE=3D?= X-MS-Exchange-CrossTenant-Network-Message-Id: 54fac90c-7dc9-428a-0416-08d9e011f85d X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2022 14:50:03.7747 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335836de-42ef-43a2-b145-348c2ee9ca5b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8rkwKs/qSVsjOWL/yeBsbIjvfjhxWjS8rYBfRvhV7J0y4Eem0roXza1dRYWeEQNdR9COxnMelGPdHkVxGM30mw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR03MB4568 X-OriginatorOrg: citrix.com Introduce an interface that returns a specific MSR entry from a cpu policy in xen_msr_entry_t format. This is useful to callers can peek data from the opaque xc_cpu_policy_t type. No caller of the interface introduced on this patch. Signed-off-by: Roger Pau Monné Reviewed-by: Jan Beulich --- Changes since v3: - Use x86_msr_get_entry. Changes since v1: - Introduce a helper to perform a binary search of the MSR entries array. --- tools/include/xenguest.h | 2 ++ tools/libs/guest/xg_cpuid_x86.c | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/tools/include/xenguest.h b/tools/include/xenguest.h index 0a6fd99306..2672fd043c 100644 --- a/tools/include/xenguest.h +++ b/tools/include/xenguest.h @@ -810,6 +810,8 @@ int xc_cpu_policy_update_msrs(xc_interface *xch, xc_cpu_policy_t *policy, int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy, uint32_t leaf, uint32_t subleaf, xen_cpuid_leaf_t *out); +int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy, + uint32_t msr, xen_msr_entry_t *out); /* Compatibility calculations. */ bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host, diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c index ad6b349680..af5b8e47f4 100644 --- a/tools/libs/guest/xg_cpuid_x86.c +++ b/tools/libs/guest/xg_cpuid_x86.c @@ -881,6 +881,26 @@ int xc_cpu_policy_get_cpuid(xc_interface *xch, const xc_cpu_policy_t *policy, return 0; } +int xc_cpu_policy_get_msr(xc_interface *xch, const xc_cpu_policy_t *policy, + uint32_t msr, xen_msr_entry_t *out) +{ + const uint64_t *val; + + *out = (xen_msr_entry_t){}; + + val = x86_msr_get_entry(&policy->msr, msr); + if ( !val ) + { + errno = ENOENT; + return -1; + } + + out->idx = msr; + out->val = *val; + + return 0; +} + bool xc_cpu_policy_is_compatible(xc_interface *xch, xc_cpu_policy_t *host, xc_cpu_policy_t *guest) {