From patchwork Tue Apr 13 14:01:24 2021 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: 12200627 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=-18.7 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_GIT 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 5CB58C433B4 for ; Tue, 13 Apr 2021 14:02:49 +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 05B1E61206 for ; Tue, 13 Apr 2021 14:02:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 05B1E61206 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=citrix.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.109777.209565 (Exim 4.92) (envelope-from ) id 1lWJci-0005EH-6o; Tue, 13 Apr 2021 14:02:36 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 109777.209565; Tue, 13 Apr 2021 14:02:36 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lWJci-0005E8-34; Tue, 13 Apr 2021 14:02:36 +0000 Received: by outflank-mailman (input) for mailman id 109777; Tue, 13 Apr 2021 14:02:34 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lWJcg-0005DI-Om for xen-devel@lists.xenproject.org; Tue, 13 Apr 2021 14:02:34 +0000 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 65ef5357-2709-4ae1-a310-e4e06467e70e; Tue, 13 Apr 2021 14:02:34 +0000 (UTC) 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: 65ef5357-2709-4ae1-a310-e4e06467e70e DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1618322553; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=6EB34yxtREKRpQgddSh15DRCHEJ1cQ8hc+zSM5cFzGo=; b=ep/PBnF/ttdYAjbyppsd1tzVkqIPg4GGJgbRgQ4yaWjSFg6fQ2Nz29ZV uz82ukvkRoGk2jKJvWH+38GGFt+rBhkW31ow0fOsOhVhAn8y7yveMGMPy 9FdnOaz25TmcPjgGnOang6kxg994uVTRp2STTdBeUsAlwD2ouSh4KPOFi c=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=pass (signature verified) header.i=@citrix.onmicrosoft.com IronPort-SDR: Sj/Xa0h65LTdNTab4d1DHs0sDv20l4Se/NuzOXOEUPv86hEb+/+HxMH9JU5lvU/TiR9FRg3NIq ArJRa34fNTxQDGBWBmG6AXmK11Uk+ZyJH3SCKJDNZFAT4/9tx+/x787SUDTSCM8McvLQMck6L8 st6Uq2bsa12otf0vA6FXePoNU7kGHi+XSMQjEw/DiqxQ3ewnZzEM5+AKopFiweZcxX42hT129L yvxfyZ5qH3BhY/2uBrKt6h4lXYAedggDTeiQCoV8ox4CGE3t5l3FmTNY0I6FCXNK9LKp+/39Xr ZH4= X-SBRS: 5.2 X-MesageID: 41483804 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-HdrOrdr: A9a23:LH1h+aGQWsRdwelIpLqFMpHXdLJzesId70hD6mlYVQFVfsuEl8 qngfQc0lvOhCwMXWw78OrsBICrR3TA+ZlppbQAJLvKZniChEKEDqFHqbHjzTrpBjHk+odmv5 tIXqBiBLTLYmRSot395GCDfeoI5Pmi3OSWifzFz3FrJDsaCZ1IywtiEA6UHglXaWB9ZaYRL5 aX6spZqzfIQx1+AviTPXUZQ/PF4+TCiZOOW3U7LiQ64wqDhy7A0s+YLzGk2H4lMg9n8PMZ3k Xu1yf44aiitP/T8G6n60bjq654tfGk5t9KBMmngtUYJDP2mm+TFflccozHhh8ZiqWC70srjc ntrn4bTrhOwkKURE6Zi1/M3BTtyzkn4XOK8y7mvVLT5fbXaRh/Lugpv/M8TjLpr3AOkfs57Y dwm0WejJZTBQOoplWE2/H4EytEu2DxnWAvioco/htieLpbUpB9h6oF8nhYFZ8RdRiKk7wPIa 1VAMbQ6O0+SyL9U1np+m1mwNmbVn8uBBuxQk8bpsyP0zRN9UoJtncl+A== X-IronPort-AV: E=Sophos;i="5.82,219,1613451600"; d="scan'208";a="41483804" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=joEvALicDJ1p3S8vig9ZE65tnZQWRau/K/sqzSa/PSfs2X8bZbID+cgsA7JmnmBGuTXZWVyDmIzNO0iOCrEkAlTBU5zcFYrM1uOgo1IphCbcttEs9u4jdywXTTXv6i3TDAC1SDKIgQ55gllklStD8bltYuegYe+y5i560hoLEIEJ2fMWk/N3Eer2HNcC8EkJ/Ua+z2ZwZA0zTqQGFJq/7saRo7d0w0rpfHL9vUT+BGa0A7ktTYV0GC56Lmf7vR/CnzGF8d0fcRsizZrbERTBVDONa9CSttoL8cZFdqai+oq3lEoHks0ybULoh+npVU87tZkp+vURG9hR+RA0asMuqg== 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=+C8NC1XmcgG+hR7rhDwEzRtSVqk3ZTRRhzEbmJGLd68=; b=e8x7s+BD5l63z9wD4u/e6dU5iwqd+JTcJXbfwRlsBd8vpsoctt56hjyA/clY4v18IdXT9+a8+BBD+ethVwo/XHFKadtLvk+01CCNaHo7/PUT3xXgP7oe3BcUq/NaIKT4+fLxES+grOYOITm9NHSa5lMkPpV64Zh4t1wTBU4+P4OW9cWVBDO64JEryhZ0VLUmDukQp00nfQcFCTRBJdjuhq6hO9RaVuOPJJHgpB2Dfb1bYYuYaV2kMVXCg5PlW6JaHyJNxa/LGXa+TFubFEADrD/80TxHc5zhcwD7/o3kFfOgxm8B3oYkpamrx2USo/OQhp9hLm3c8MYBlYkaP5jZ8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; 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=+C8NC1XmcgG+hR7rhDwEzRtSVqk3ZTRRhzEbmJGLd68=; b=pcRnrc531tj1Jbw7PBgmrV7/ez477ezNYVjyKGNYOAegRqGJjaEGmVZMnCFPNs3RziCciAqR6LauDKJ8FYwuVBJj0649rYRP75daVlv3fhwf2WTJ6BZ8okN/FPvufXN2gHrP+Hksz4DSwapKeaZnUOD3xaCz0VjqKr6AKhouBYI= From: Roger Pau Monne To: CC: Andrew Cooper , Roger Pau Monne , Ian Jackson , Wei Liu Subject: [PATCH v2 06/21] libs/guest: introduce helper to serialize a cpu policy Date: Tue, 13 Apr 2021 16:01:24 +0200 Message-ID: <20210413140140.73690-7-roger.pau@citrix.com> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210413140140.73690-1-roger.pau@citrix.com> References: <20210413140140.73690-1-roger.pau@citrix.com> X-ClientProxiedBy: MR2P264CA0099.FRAP264.PROD.OUTLOOK.COM (2603:10a6:500:33::15) To DS7PR03MB5608.namprd03.prod.outlook.com (2603:10b6:5:2c9::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 480a7cde-3a81-40d6-6add-08d8fe84c719 X-MS-TrafficTypeDiagnostic: DS7PR03MB5542: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: reCXnJjfy3n9vvTSfczOqbg4xaZvu9ikC2veci6I5QGYvjZds11ijWnwh75PR8bvI8oef+jjDd6KwiI4ejQeAjePp2z9rGNHR/xc8C13BiBD+ZDjZ+Vf4LoM48se8ajwyPzH2iPo7Tv/zmOQ8kiveBh9wrOz80mC0v4pzOhQIimbr02sMFyVNm5pMhOWPzQs5TN8CuSR0H+Su5kAP7vseBjprLwRXC5+xMjJ4XuVrFNULx+z5F/YBE25WKbgHG/Q/YpS7vBzyCaSoc6hAFcOsQ56y+J546xGbBTrXMnKwgj4SBMFFJ9P65X1q2WZ4NrYihFdXY3t1v6oyk+7UeR9bLvekAxK0kd9ub2vXLhDw1qZoa1ffdpKwm/+2F9F8vAwf1Lzh/07Y8ptV6+53UlATwF/qndy7Yf3PG3xyx4/pW6UuF7xIGamE0xvcOVaTVhtoe0zuUI7XTrdnVLKmpcU3diG2IL3qFsakjbZS2TbpzLYs1EREkjJjYmWU9h4v0FUn2ErddJ0mBByuVfr775nBhVBx1RJCrX9KR7q4KBHffaDl9+pU2tRJAKOuQJKgOFIBAqPL1v+rc+/GFset5fHTy8hncx99Ts8LthnQ3NXnwI= 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)(136003)(396003)(366004)(39850400004)(346002)(376002)(2906002)(6916009)(6486002)(36756003)(66946007)(54906003)(83380400001)(1076003)(6666004)(5660300002)(66476007)(316002)(66556008)(8936002)(478600001)(186003)(2616005)(16526019)(86362001)(6496006)(26005)(38100700002)(8676002)(956004)(4326008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?q?ZaqsXAWInLmfT2QMs2Wlm+o6LGCwtu?= =?utf-8?q?MJSHt3qIK6ZqYaJStVHWshhgRevF/QuQWSNLC0gTb8GP94+JGJCgYJadtGxJi00ki?= =?utf-8?q?Lw4V9sPcUongb3zyJCyt3szd1aSkXmPAgOY7YFxl76nEot/NCiPBU5SH5gUykTxx6?= =?utf-8?q?cKXWF27zdN7JZTxus+u+o8eKCDbk8wAuiVfPAPsO4Ab4kg6uFSjCDxtws1Z44f/11?= =?utf-8?q?VY6HmD7QnR/rsQQEpOfjtvftfTP3pn/BuYPDzYj1aZSAz8dHczT1rxCjRcxUBhXpn?= =?utf-8?q?8QWas/K606aD0mzA0oMxDiSt4vP7ltiTnCQGD/Bo1ga1Bvag5tXwKiFvP8tUnLbzb?= =?utf-8?q?aYdo83SicbVctou5ZzdNBzEvjZN34MOYAdEZiP5c1oxMBHSMC9lUa+54P0WnkpnBh?= =?utf-8?q?bCdFOaorB9hLH62+u46FVunNCQFPNF2q+Ioo/AZLfn2J5hgiZJEKeEgD7vnyGSpXu?= =?utf-8?q?iDi/Q38WK2AjxDWkwQatTLqqWdikrguHJD97x7J9j23gnIQqcG0tIwU43W9uVHisM?= =?utf-8?q?0wN62gHUp0/Bxs0IlOipbrjQGJVc5VOHcERVTp7gNpLMi6/6kHYhesXfVUybM66uA?= =?utf-8?q?PJne4ZJL070OXr4ACIJdW+Ni4SacqPzHSzo88JidBT0t6PVoE0665qQdfrJfuVzHN?= =?utf-8?q?mLlHuMenLb9QQmyMHBPKTYEj8FH1ZDRz3ElpHZMLR/+cL5idcL3O+gE08oBWBjaGi?= =?utf-8?q?tFwwL1wjJp2fUdPZ2rLur2ne3uZWEfVTkh0I4c3Fsg4M+FlrsvM3Jd9XEo1mQenhE?= =?utf-8?q?hW2sT2H10KUMHkOIwsUMm3yxsEgsGvTTwEZ+ZwN1DtTdd3Hzjuv+F4Iv/Bgw9zday?= =?utf-8?q?Pwl4VY9PLi41DgNdfm1+wsPI+HuxpgyH4y06VahIUz29lBTQwlskyRoP4TrNwkQCO?= =?utf-8?q?R1vZ55P1UD6FDkDKjOUL5rHL+PlVgQxO+wJw1HZpiZmcnQlqdRpEnKPccs6ua6h7t?= =?utf-8?q?/dCMqUW0/7mygDCx9T/M13DzKD3/tqaLM+PP26csOEPgFiCZRpeykZI3c+gAWFJnU?= =?utf-8?q?qbQ/rtuYQ+BT5Bjz0k1n493olHz9Zx50DIfxAXJYjnaNSsgNeRkjrpJbcH5hYh/Ps?= =?utf-8?q?K4kJZS7YciE5URhH2oa8sM88fS96mbRPk03QuYYGoMgmQPii146Wm6xW5P4K137E4?= =?utf-8?q?ck4zTmFHWrLpoHdj+n6W7HTlavPDeRvhYyGzQ0TTWyRtUwoNKI+/k7P7R/IYEsk7M?= =?utf-8?q?T9KMeKwVW/8Ve9yzwJjjvnt42Kw2IvHadki46M0Qp5AfPE1Fgp6EIYkSVX1zjnaAY?= =?utf-8?q?qfqIW9jWro6wNJ?= X-MS-Exchange-CrossTenant-Network-Message-Id: 480a7cde-3a81-40d6-6add-08d8fe84c719 X-MS-Exchange-CrossTenant-AuthSource: DS7PR03MB5608.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2021 14:02:30.4565 (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: r69qJRuwc4bRB7kPxMRibOxmsJjOlInj41lHBDKVeD15e6tsxwImr56PK8imNcH5x4tEo/cvWc/3cWDXlIssJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR03MB5542 X-OriginatorOrg: citrix.com Such helper allow converting a cpu policy into an array of xen_cpuid_leaf_t and xen_msr_entry_t elements, which matches the current interface of the CPUID/MSR functions. This is required in order for the user to be able to parse the CPUID/MSR data. No user of the interface introduced in this patch. Signed-off-by: Roger Pau Monné --- tools/include/xenctrl.h | 5 +++++ tools/libs/guest/xg_cpuid_x86.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h index 34d979d11da..a4827b1ae6a 100644 --- a/tools/include/xenctrl.h +++ b/tools/include/xenctrl.h @@ -2602,6 +2602,11 @@ int xc_cpu_policy_get_system(xc_interface *xch, unsigned int policy_idx, int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid, xc_cpu_policy_t policy); +/* Manipulate a policy via architectural representations. */ +int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t policy, + xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves, + xen_msr_entry_t *msrs, uint32_t *nr_msrs); + int xc_get_cpu_levelling_caps(xc_interface *xch, uint32_t *caps); int xc_get_cpu_featureset(xc_interface *xch, uint32_t index, uint32_t *nr_features, uint32_t *featureset); diff --git a/tools/libs/guest/xg_cpuid_x86.c b/tools/libs/guest/xg_cpuid_x86.c index 1394e503f3d..918591a128c 100644 --- a/tools/libs/guest/xg_cpuid_x86.c +++ b/tools/libs/guest/xg_cpuid_x86.c @@ -757,3 +757,35 @@ int xc_cpu_policy_get_domain(xc_interface *xch, uint32_t domid, return rc; } + +int xc_cpu_policy_serialise(xc_interface *xch, const xc_cpu_policy_t p, + xen_cpuid_leaf_t *leaves, uint32_t *nr_leaves, + xen_msr_entry_t *msrs, uint32_t *nr_msrs) +{ + int rc; + + if ( leaves ) + { + rc = x86_cpuid_copy_to_buffer(&p->cpuid, leaves, nr_leaves); + if ( rc ) + { + ERROR("Failed to serialize CPUID policy"); + errno = -rc; + return -1; + } + } + + if ( msrs ) + { + rc = x86_msr_copy_to_buffer(&p->msr, msrs, nr_msrs); + if ( rc ) + { + ERROR("Failed to serialize MSR policy"); + errno = -rc; + return -1; + } + } + + errno = 0; + return 0; +}