From patchwork Tue Jul 13 07:22:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12372985 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=-17.3 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,USER_AGENT_SANE_1 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 792D0C07E95 for ; Tue, 13 Jul 2021 07:23:01 +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 21EA76120A for ; Tue, 13 Jul 2021 07:23:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 21EA76120A Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=suse.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.155037.286335 (Exim 4.92) (envelope-from ) id 1m3CkY-0004Vl-W6; Tue, 13 Jul 2021 07:22:38 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 155037.286335; Tue, 13 Jul 2021 07:22:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1m3CkY-0004Ve-SP; Tue, 13 Jul 2021 07:22:38 +0000 Received: by outflank-mailman (input) for mailman id 155037; Tue, 13 Jul 2021 07:22:37 +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 1m3CkW-0004VY-Vr for xen-devel@lists.xenproject.org; Tue, 13 Jul 2021 07:22:37 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 1836dca8-e3ab-11eb-8728-12813bfff9fa; Tue, 13 Jul 2021 07:22:35 +0000 (UTC) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01lp2052.outbound.protection.outlook.com [104.47.0.52]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-4-mCZHXbfTOuCRdYVv55B5vA-1; Tue, 13 Jul 2021 09:22:33 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB2829.eurprd04.prod.outlook.com (2603:10a6:800:bb::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.25; Tue, 13 Jul 2021 07:22:31 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::99d3:99cd:8adf:3eea]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::99d3:99cd:8adf:3eea%5]) with mapi id 15.20.4308.027; Tue, 13 Jul 2021 07:22:31 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM0PR03CA0024.eurprd03.prod.outlook.com (2603:10a6:208:14::37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.21 via Frontend Transport; Tue, 13 Jul 2021 07:22:30 +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: 1836dca8-e3ab-11eb-8728-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1626160954; 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; bh=YGOrdCOMlh6d+dkgExNRzWBXwcOU2OHQ/LG4J2hiiWs=; b=f6MxehUT+wvodfOt0JvJxrTt88eKz5DinXLdQN461/qSJSQ6xqjuBrsofM1KvCrfTXtmAj t+7vZLRFU5UIdFLvi128LVnrLYJlhZciSmCqevz1QctA1Yok+VrvXIiR/lSY8BORrNuUU+ Q75T3/Z7zSYD+e91PE3Np0xA4LSdVI8= X-MC-Unique: mCZHXbfTOuCRdYVv55B5vA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LdhKHY3PW+71sqJ4yTILHf+KO+y32UQINGuv0diXdfM2krUWHwMQWvQdlxcQmpi3k26oALUKQXgXaoeXHrGQcYYm/b0QwhjmYKXbUMftD9fjEKRTWWXdQzxaPSgzWWCiaJm8/6m6u9qXI9KphFsYZtdQMWZeRoilsjRigfmz9Ez+oEeyGuVcmLUv4JxbavuzlDIOAE/xQ/e9S40kuK6Exi43918Yomh+NYt+5fSSDg5pR6WkjR6BtmuWflqUEd+M9pvaM0LoSmemKLfDalxDYhyMJf+779ojw3EziXbRxojeJfkUxS/+YS/2RteyLbD2hCpmFjTxT65hDqRxQGdCSQ== 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=YGOrdCOMlh6d+dkgExNRzWBXwcOU2OHQ/LG4J2hiiWs=; b=j/8Sjhf1ejpXy6HWlhZIWWspJX1z1ZJ5kw9SvW19+mCWrmFQyhtfrTu1UkakcWX4AO1n4C6J0Y1yUclT8r3qFzW/nbkdlSIZnLlQkpVEgSwgSAH790sXeTxBAiK6Uj0/Kk3do6HoAsGhskdq4OPvDCzdbryyFwoivHRQ9HY9Kxs+BAqYinU5vGheEy0BMN5NtH5ITYCKpMvdFlSBJXzPkGoJpI4xNlhJ8wZAkQP7sxJWBeuse7lsBl8WZzcsQD7Y9PTY5XMxrYZWiLwyQyMk5IMbMz2BbJoyd+LJpFm7LKuVbqtww2TIOUDWPtXYHTYbpj+hwOnrNX6G7m6q7oQn2Q== 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: citrix.com; dkim=none (message not signed) header.d=none;citrix.com; dmarc=none action=none header.from=suse.com; To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?utf-8?q?Roger_Pau_Monn=C3=A9?= From: Jan Beulich Subject: [PATCH] x86/AMD: adjust SYSCFG, TOM, etc exposure to deal with running nested Message-ID: Date: Tue, 13 Jul 2021 09:22:33 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 Content-Language: en-US X-ClientProxiedBy: AM0PR03CA0024.eurprd03.prod.outlook.com (2603:10a6:208:14::37) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0873bcc6-d74f-4370-4c66-08d945cef9dc X-MS-TrafficTypeDiagnostic: VI1PR0402MB2829: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4012Cm59RuDHPmALJLatlAGUOt+Epz90RTX5Afri4KQ5HXBZbVQFyg7TAyAVumhWsHDV42y+XPo7uiJzz4uQiCMAnVN81yQGq+pHH6j8UGsIfO8B/xBSeBLL7EEDFGkNcSzUs5MVdwkT+E90eoLAI/OIGbDwTwIex/nRwnSDp0+kEkNC2pWJvd20vkgC0zDDpE0c/Cp+2tFBfdN8EaszbnPSKq1bIzUDfxr9db6p1rB84KiAna0JVROufUgp430xOYqH/RTSmCc8T1k+wNaaHukm/LGsazPqh3Lj0N72cE8ghk1bdNdEjepvD+vA1+bgLZL273TFKrwP850ReV39NfAN7zG6tQN466YvYs90ASl4HdRHJvn/lhtsR4ooccGRBou7uuR7SsSAGFULcpR88HCruxN1lIuOzhz6L1JwF1wxgQeVDBMxNTuzDn42guBX7kTPhTE3AK8QcBiUCo2EYOJF9QUWyPhIG8uZ0DFq/56UfLAvjMe0ut8E3yUs9YkcFaC+X8o0otuuYNQ9q49YuMYcePXpIiHka5ZQcnpCqHdfcjthBNlz1RPa749+jwLYbVnVYhclk4/lJNbqYPjC+DJOVKnCXoUcFH8VlREQaC6ONlLh08NIMXjwWg58COeXdujFJQiuAS3BK6HbDvy8EcPeDxLC95x5be3BxYLHUEyglfTpUpNGNEIux7cophaqAM6ztquOIHPWY8MvWShvhHGj5yDKEftcXUJfLs7SXKE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR04MB5600.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(376002)(39860400002)(396003)(136003)(346002)(5660300002)(26005)(6916009)(6486002)(186003)(2906002)(36756003)(478600001)(8676002)(31686004)(66946007)(66476007)(66556008)(83380400001)(16576012)(316002)(54906003)(31696002)(956004)(86362001)(8936002)(2616005)(38100700002)(4326008)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?1PkIK1+gUoE/upP/A70Xot37b9Nt?= =?utf-8?q?GfAlPRrnbYELZz0U+Wz5Uj4fFqLg9kFmwCe9qldu6j4bK/oQaz50SwntC330e7//S?= =?utf-8?q?aZlbmbpEVUNcYrByzUlAQ82fOSSVCvI+A1ArVi5+h2B61UKfFLeIUOY3TvvycDqb9?= =?utf-8?q?aeccmIgxv0MXaDiB4tmO7oMF/OH/1Bqzww5GQ0dQV7GMRZh8+UxIMeQrC3lekwgDC?= =?utf-8?q?gU7POkegxiO83DAaTcRZ54pX13Duh0pVN+dbjdcaCk5R7OWTDC5aDXWKRaVA7NL7/?= =?utf-8?q?3zxWBpW8EOxXSRCUqGxvETVSxXubA8aTfOWxO/3aBTmwl95HtUnkzy3nrXmGOIugK?= =?utf-8?q?gaQ49sT04gUdhqlXaW9x7fV1Sv44c+M9NYwNhQDQBOJMZalMbtipeY1iibESzT8yx?= =?utf-8?q?445NA48AFB8ewG/VPyfbKfwkBcU+F3I6bJ62L6SKq3MCwfddkpduwy54Z9tgRcUl/?= =?utf-8?q?B8hQTqXJchVRg1jIP0rKAmXX9z/GWBWVXdxBhm0x5PUks5JBC6BURdIwZrnxT4dtK?= =?utf-8?q?DrF14+jH1di6sO6EgWhV65GqxQO6EnFvplDoHn7KQPsiwJA/sdjqDbT55bLSFc49g?= =?utf-8?q?u/LKrHkB3PfDorFTGvJU9mgBrCygsKpI5PT7rEbs81+S0WJTYP+0LcocRCW5WyuvK?= =?utf-8?q?gC0xcEXiDIZbUp5LC6SCFquo8P9dw9IIvoZffoXpgYWJ82gUqfMk/wAm1SSVv2eMz?= =?utf-8?q?kUFsQLMciJIkh1zxBloRJWrFjOGQtkhC4g7qyUDsk5OTD8yJR72Fydr52z6wv79iB?= =?utf-8?q?+FpBbalQK1r2+4qlZSCCNnMgMYIdgt6Ur9trP8SqkwcjIcQ5nu+qjD7NqhlNUNKcZ?= =?utf-8?q?Eu2ZDbqeOfkTahnWogKbeNpr5BzJm1+Sg+loZ89ATDN/pje1kvl7gyVJLPTMkcuXV?= =?utf-8?q?k9u/3uxuxZCL+rS/jNFXdkG92jILM899XEPMnk0L3no3iPVMVeEaKxk1W8S5Mq2iG?= =?utf-8?q?uZeEAwrvyVcgLtpfqshdeyc5cJCj0TMvRPqY745XnWTCxLJ9rkEwzn2xkS/4vwIPI?= =?utf-8?q?i6ZWWVL6tuHjE0ytYtf6OsrIZqd/1HQRTlXvsCKSO8WpgoFNXN+g6exAlSoA8QA+1?= =?utf-8?q?HAd/+cK2poZITg/FHWyo1CmQd/CqunpJMNvsmIH21TpQroU9cSLIZU93kNakF92AE?= =?utf-8?q?+cK5cRqVfkc6xKahdC6sqaQ8BnHagMdF7nIP18/cd9hp2HckLbNw3OjZvwv3nNTxU?= =?utf-8?q?qVkrYplespMLwqQ61PcUEcXaGSqY06kMqdx3cObzuPzibgr5LWl6MzgMiw0cn806z?= =?utf-8?q?EXodlkNBC+cblyKd?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0873bcc6-d74f-4370-4c66-08d945cef9dc X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2021 07:22:30.8119 (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: gV8m3NJsRGwIfK3L1kOeqVp8muQZI4TiWreDFVgl1nTT5AlqlZBZzNTj4MnFXcFDGQkilNY9z2oFl+blIvoLmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2829 In the original change I neglected to consider the case of us running as L1 under another Xen. In this case we're not Dom0, so the underlying Xen wouldn't permit us access to these MSRs. As an immediate workaround use rdmsr_safe(); I don't view this as the final solution though, as the original problem the earlier change tried to address also applies when running nested. Yet it is then unclear to me how to properly address the issue: We shouldn't generally expose the MSR values, but handing back zero (or effectively any other static value) doesn't look appropriate either. Fixes: bfcdaae9c210 ("x86/AMD: expose SYSCFG, TOM, TOM2, and IORRs to Dom0") Signed-off-by: Jan Beulich Reviewed-by: Julien Grall --- a/xen/arch/x86/msr.c +++ b/xen/arch/x86/msr.c @@ -367,7 +367,8 @@ int guest_rdmsr(struct vcpu *v, uint32_t goto gp_fault; if ( !is_hardware_domain(d) ) return X86EMUL_UNHANDLEABLE; - rdmsrl(msr, *val); + if ( rdmsr_safe(msr, *val) ) + goto gp_fault; if ( msr == MSR_K8_SYSCFG ) *val &= (SYSCFG_TOM2_FORCE_WB | SYSCFG_MTRR_TOM2_EN | SYSCFG_MTRR_VAR_DRAM_EN | SYSCFG_MTRR_FIX_DRAM_EN);