From nobody Sun May 5 07:46:35 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; arc=pass (i=1dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1624881484; cv=pass; d=zohomail.com; s=zohoarc; b=kDys7LVMjT+daZBcOkaJbtLzPYdl/XqVXBJMLljqHPNc/AGFalIRkxNKSSL7JBg4fXPJRpvQkFgdLXPl76Z5f/h6Xw2KW1XtOIZaGytsaTeEuhv3+WNUhqkq6i1g0HO5NEtjBUVomby9a50NEFU1o7FkppZJJPiy6aoZ3SfmO0c= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624881484; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=jtO2paUlv26XhxGKVu8ApzECI4X2+KAJunwAtx7j8Ww=; b=Yf8SScl+aOiSUfnfuQ463RmWtSLUUn8AqHbRJ76iVzYO2IaHlRz/CIoSXDopV3F6IugJPBy/0RIUkAKMJkGfugmEMNAI0Ud+Tm7KNnj9VaSHx2AEJ9fnNeB3qWGF7T1uukxkntAFJr+AlRf415I7hQ4wEJn+UNCkeW/6wbDxvmE= ARC-Authentication-Results: i=2; 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; arc=pass (i=1dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1624881484617783.95651871177; Mon, 28 Jun 2021 04:58:04 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.147818.272857 (Exim 4.92) (envelope-from ) id 1lxptb-0006IG-Ng; Mon, 28 Jun 2021 11:57:47 +0000 Received: by outflank-mailman (output) from mailman id 147818.272857; Mon, 28 Jun 2021 11:57:47 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lxptb-0006I9-KU; Mon, 28 Jun 2021 11:57:47 +0000 Received: by outflank-mailman (input) for mailman id 147818; Mon, 28 Jun 2021 11:57:45 +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 1lxptZ-0006Hx-N5 for xen-devel@lists.xenproject.org; Mon, 28 Jun 2021 11:57:45 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id f8ac53c3-03f0-46f4-8880-020c66095cbe; Mon, 28 Jun 2021 11:57:44 +0000 (UTC) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-ve1eur03lp2050.outbound.protection.outlook.com [104.47.9.50]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-3-RCcSi6Y-Nwe7nxlf8Npi1A-1; Mon, 28 Jun 2021 13:57:42 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR04MB4192.eurprd04.prod.outlook.com (2603:10a6:803:4c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.20; Mon, 28 Jun 2021 11:57:41 +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.4264.026; Mon, 28 Jun 2021 11:57:41 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM9P195CA0025.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.20 via Frontend Transport; Mon, 28 Jun 2021 11:57:40 +0000 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: f8ac53c3-03f0-46f4-8880-020c66095cbe DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1624881463; 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: in-reply-to:in-reply-to:references:references; bh=jtO2paUlv26XhxGKVu8ApzECI4X2+KAJunwAtx7j8Ww=; b=W2ps62uwOaB4Az4l+Icw8kVmSuup9gOZsT6RZqC1OJUGeso8+T2cF+ymLZzT8HrV9LsSa9 I5gqJTDhmilXzc/GipU+JSm/uFyaRSLjvQEWnEY7FMnHfC9GUSke9MybaP0kRcNt02vw81 anTUUylTfStFH8tYWDXEgUuYr457YGU= X-MC-Unique: RCcSi6Y-Nwe7nxlf8Npi1A-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QC+QQRyeQU5PAhO3tzbezxiVihyT5k7DnZ2yQ5QE3M16HUiMPMc8cxNr8fLnIpc0rSF5kOXuxUllNAdYsN+L/ywCBAUN/KcpoUhtw8x8YKS/a4HbguxIKmW/DWXRt3ov1ldI5AjILXlm8wIVbsmUy3+QZsdQH8ssrw6FsgFIy7cV5pk3EOBpfkonzxdxd0NxubyQdNfb3LIiC4vZK1TLSnuVfJZbfULVZ6AYNRlEMr+avZQw96n6ugg+i8e+mxaN7Seg0VSToct91CfDGb7zJ79VP8cxAqU6Yhxef4HC/WkgGsTMx8tU2HVkcgqDqpUKhI7lciWELRmmPT4qIqQc7A== 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=jtO2paUlv26XhxGKVu8ApzECI4X2+KAJunwAtx7j8Ww=; b=ip/vmGX9NqkF/j4F1VEs0rmkoJfAqwXu0sLWQOjinvZ2l7sVde8ClczKYRV4qz1QOS/yDZ4O1AV/wJuS3SsCVM8ElYzag1areMXkhbL6xgTR66YT7+iB3mlNxgm79Ql6kgCQfPh/a2fCBP6tb3awVApJISn/+2Qii9nyGhIGEyA2Xcr6x9HXJQL1tGi4JgKZIt1+i5irJ4uqeTHDr+QgI+HkMRRx7OjFmOnAUaQ/Chy2QEZAUhp2P9tu/rBHaNDQtqK7GQvIMXHy1Wu6+UHURSB5ycYEZ1PyufPGDqij3wxPSe7Ra3DA7iHOi+VzGBBoF7PNb2J0rKmY/+CeoJrDjA== 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; Subject: [PATCH 1/2] x86/vMCE: adjustments to unmmap_broken_page() From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: Message-ID: <48a34cd8-e9aa-d251-7838-4edd071050dc@suse.com> Date: Mon, 28 Jun 2021 13:57:40 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Originating-IP: [37.24.206.209] X-ClientProxiedBy: AM9P195CA0025.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:21f::30) 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: 4b921dae-461f-48ce-7708-08d93a2beeb4 X-MS-TrafficTypeDiagnostic: VI1PR04MB4192: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JFfr1IFMP819mmsJ+YHjaPg3xnhQY8hAX0rJ+Jy2kHcvfmGihfEWX9JTiE8MNz0ueB6ZwQBllvBw5JKngyvOeT299cmnF1NVxwOC5d0JKMS7rc8uOEwXdSZs9IOIkv7OGh3bcPIJjFz/8MdFVCVhlDjb9Rh5eiBGeHCeyAtWHxwvD/B1La4GkwMqC76bralUpfDiUmY9USti7lfeIEA0QLIy47Vx/vM41tLDnGCtrvQw4ouL13V87hY0vXdtVFFmKt/1oVWpFSqHG9MCBoc+ue3bYG+rKocDbzR/8yCDOjuDJj9LDxa6dzzTTIc8dfQ0HhSaH++HO2IH5TMfY2rTLVx3VzV/nv1HXjkGC/CnmA8Lvd4i5ecp9RuBJOIGgrsD9Ll8kUGeFWlChSMOZd368KE0K9MXDG23LFMd3s7gT4jCLJVLo1GmT823rrHb/Bv6dO3o/vqnlQPP29uiUSbqkbBstfzbBUuXsHzSR5OWPxx5pb3HFb2aaHeHSqVIowzAIXHn44gdWDLQmU9W2HR7FQ/GX92JGu4lQ+XffoEyyCVDVAy5fygVS5AglylvNeSOJTO7yACL0dPN1Rn2XLANycXp8A7iG2rSYT/cIVpsuB6npGZypqwWvK0GO0HYMUKGAlPrj62dc5n4Ec+zBsZd6RCLnGeoXKsZo+jreYNBJsgrxmd3FoElbKIOZzrbVgCj6qqWe0PIkfFo0Gp65aHetyFMfBDZ8N16DDRlzKq1EHZEXtHVDwYUxFmeZCzn173Q 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:(346002)(376002)(366004)(396003)(136003)(39860400002)(31686004)(5660300002)(2616005)(2906002)(956004)(478600001)(66556008)(8936002)(36756003)(66476007)(31696002)(6916009)(8676002)(86362001)(66946007)(6486002)(316002)(54906003)(16576012)(4326008)(83380400001)(26005)(186003)(38100700002)(16526019)(21314003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y2J5bHlqL05WRjZFRHp2bVZEemhDblB0dmtxQVNwdGdJeTQyNWNxbTBvZ2Z1?= =?utf-8?B?a3dsT0xMU0VqSXBaVjlOZ1RKK0tTS3NjSlVBbVFLNHdNYUdKKzg3Z2M3K3dM?= =?utf-8?B?S0lRUGhNWWtyVG9RcGlSeHZsQUYyWS9rb3QyZ2Y2NDhYbHVnNExkdXVNQkxQ?= =?utf-8?B?enV5bXhvMS96REFWK2pia0NNaTluNkZadHRvNWlWdWVYWVNRNG9sajdzTERO?= =?utf-8?B?MHpHRTZnNlYvc1o5dnp0VzZCeEZDQjkxVi91WlUzSG0yR1Q5L1BLak5YUHpK?= =?utf-8?B?OUJna3FhMktUYmV0bkc4eWJsV0p3RnY2aGtGR3cybXZHTzFnMEhYWis2b0tE?= =?utf-8?B?YXhVQjJ0UEc2dmYxby9NNk84RUFYdkY1Q0pLYVFzbEJwb3hnLzl2QWpnaHdh?= =?utf-8?B?dG9EenVFOWJ4eFNWMUhYeGpCeXhIVWF2RENQcytXa0FpSVV1ajhzc2IxNGNF?= =?utf-8?B?SXJ1aUdQMlZnTjREZnNndFpmYWd4TnZjaG1ralpYQ2dTd0xldTBvbHF4Wkd3?= =?utf-8?B?ZVlCS0tUWVJucFloOTdyekNqRWlLRmUyMHhmN2pZNWdHSVM5T093OC9VTDJO?= =?utf-8?B?dlJtVDFlRUlMcFIvTzhaU3ExK0hyV25xQlJHeldTTHhBV0N2ZGNWOC8vY00z?= =?utf-8?B?YkxGMWNDTk5CR2xIcWxuRHRMaCsyYU5VS01uRTVMakxoZ3RlNVlkZm9SdTkv?= =?utf-8?B?Y29LdG16TkZLR2VyVVJaSkxnT2JraE92WEx4K0t1aUJnaWdua3hlY2NWVUcz?= =?utf-8?B?cnpjMStSSlJPZWQyTHJOVW4rbXB6dVArMkMwVHBWN2xZbWQ1eklGOENuOExq?= =?utf-8?B?bDh0NUVBTDZTL3JHQk1raTNEaGxONGhMbzZMWXNhNDd5UC9KSDM2amVjZXdx?= =?utf-8?B?bmpobENzL3FRZ3VzRVBnK09GT3RvM3R6VXlxT1FWVUhGd0xleVhnNE5tcHZk?= =?utf-8?B?dzNuNnhhWTFEdmt4RUE3UWowUmRRYWtmaHY2eGVIK0lqNjdGejdZRVVuZm5i?= =?utf-8?B?NDhWSmdwRkg2YkhvQ1VST3BIc0kvYkJoTGoxWW5xV2lEVHFGa2pCYlY3Z21X?= =?utf-8?B?bUNVWFhFaTJoL29DTlpSNnl4b1E0c0JqTDIyYlFreTZrREgvaDZyL2xuR0lR?= =?utf-8?B?OFQyanFsUHR0QlQ2VThGWWxGa2t0d2toZVFCanhjcS9nZGl2anFlNEFTZkFW?= =?utf-8?B?a05vdnpWUkwyTVF3bjBtZ3VJa25QNTUzMmwvWTE2WUZuT282MUJLL2JwaFVi?= =?utf-8?B?cGZYbDBIMXFFRHArTk5oMWo3ZHdsaUNHMVhTc1lXZkVOMnh5Rkt6U2lDR0No?= =?utf-8?B?WlVRMzlwNXV4eU5YaGNhWWlFT0lXODZVeG9mUkc1MU8xN21ZT2Rud0IraW9X?= =?utf-8?B?Y0EwWDdIa2x4c1pqS3dkb3AxckhDVUptTkZSdGIrWTZPbDIvQjdVbWpndDln?= =?utf-8?B?S3FUR3VNVzBuZTJGL2lKQVp4cnZNR1RBbHZEcXVPYlRLTjZpMjU1ZDJrbHdH?= =?utf-8?B?Zm1BeHFKbzdEV1dHT2Y1cHVzZkxkWGl0ajJmQnpSQlFwajVZeSs1ZjVEUjRh?= =?utf-8?B?aDlCOXJXNWdqbHBORnlpT3l6VWZRMGJVaWxyOWQ1bnJGYnY5RnJwVXpRdURq?= =?utf-8?B?elcxRVJOLzIzWlBLRFNNYXZLY21tUmlwYkxRZ0ViZlhDU3JhSmZYM0VzbnJC?= =?utf-8?B?by9uYWhWSEQvaks3WFRUK1VaeUh1MjNBRENBbjBDYkh3SXBFOVQ0RmpDV2tY?= =?utf-8?Q?Cm9nz7rJE4P/MNmq5tQhxWMc87GN9sBZUcZhAR4?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b921dae-461f-48ce-7708-08d93a2beeb4 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2021 11:57:41.3454 (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: KFs/ijRVA3/IeekULe4ZoKIH1bAiPQVBAahXSpFnxOxMiDIIYB54pmwiDDS3K0ungBBKHJRFaGhYDCb3gh+DLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4192 X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" There's no need for more than an assertion as to the passed in MFN's validity, as the caller's prior call to offline_page() would not have succeeded on an invalid one. There's no use in checking both is_hvm_domain() and paging_mode_hap(), as the latter implies the former. Extend the P2M manipulation that's there also to PVH Dom0, merely having it using the prior PV Dom0 related behavioral assumption when the page type cannot be changed (yet). There's no point in P2M_UNMAP_TYPES including p2m_mmio_direct. The respective comment is bogus afaict, there are no RAM pages getting mapped with that type for the purpose of becoming UC. The sole RAM page getting mapped with this attribute is the (now global) APIC access MFN. (This page, if it went bad, shouldn't have any effect on the system anyway, as it never really gets accessed; it's only its address which matters.) Make the last function parameter type-safe. Signed-off-by: Jan Beulich --- a/xen/arch/x86/cpu/mcheck/mcaction.c +++ b/xen/arch/x86/cpu/mcheck/mcaction.c @@ -91,7 +91,7 @@ mc_memerr_dhandler(struct mca_binfo *bin ASSERT(d); gfn =3D get_gpfn_from_mfn((bank->mc_addr) >> PAGE_SHIFT); =20 - if ( unmmap_broken_page(d, mfn, gfn) ) + if ( unmmap_broken_page(d, mfn, _gfn(gfn)) ) { printk("Unmap broken memory %"PRI_mfn" for DOM%d faile= d\n", mfn_x(mfn), d->domain_id); --- a/xen/arch/x86/cpu/mcheck/vmce.c +++ b/xen/arch/x86/cpu/mcheck/vmce.c @@ -502,11 +502,9 @@ int fill_vmsr_data(struct mcinfo_bank *m return ret; } =20 -/* It's said some ram is setup as mmio_direct for UC cache attribute */ -#define P2M_UNMAP_TYPES (p2m_to_mask(p2m_ram_rw) \ - | p2m_to_mask(p2m_ram_logdirty) \ - | p2m_to_mask(p2m_ram_ro) \ - | p2m_to_mask(p2m_mmio_direct)) +#define P2M_UNMAP_TYPES (p2m_to_mask(p2m_ram_rw) | \ + p2m_to_mask(p2m_ram_logdirty) | \ + p2m_to_mask(p2m_ram_ro)) =20 /* * Currently all CPUs are redenzevous at the MCE softirq handler, no @@ -515,30 +513,25 @@ int fill_vmsr_data(struct mcinfo_bank *m * XXX following situation missed: * PoD, Foreign mapped, Granted, Shared */ -int unmmap_broken_page(struct domain *d, mfn_t mfn, unsigned long gfn) +int unmmap_broken_page(struct domain *d, mfn_t mfn, gfn_t gfn) { - mfn_t r_mfn; p2m_type_t pt; int rc; =20 - /* Always trust dom0's MCE handler will prevent future access */ - if ( is_hardware_domain(d) ) - return 0; - - if ( !mfn_valid(mfn) ) - return -EINVAL; - - if ( !is_hvm_domain(d) || !paging_mode_hap(d) ) - return -EOPNOTSUPP; - - rc =3D -1; - r_mfn =3D get_gfn_query(d, gfn, &pt); - if ( p2m_to_mask(pt) & P2M_UNMAP_TYPES) - { - ASSERT(mfn_eq(r_mfn, mfn)); - rc =3D p2m_change_type_one(d, gfn, pt, p2m_ram_broken); - } - put_gfn(d, gfn); + if ( !paging_mode_hap(d) ) + /* Always trust Dom0's MCE handler will prevent further access. */ + return is_hardware_domain(d) ? 0 : -EOPNOTSUPP; + + ASSERT(mfn_valid(mfn)); + + if ( !mfn_eq(get_gfn_query(d, gfn_x(gfn), &pt), mfn) ) + rc =3D -EAGAIN; + else if ( p2m_to_mask(pt) & P2M_UNMAP_TYPES ) + rc =3D p2m_change_type_one(d, gfn_x(gfn), pt, p2m_ram_broken); + else + /* Always trust Dom0's MCE handler will prevent further access. */ + rc =3D is_hardware_domain(d) ? 0 : -EOPNOTSUPP; + put_gfn(d, gfn_x(gfn)); =20 return rc; } --- a/xen/arch/x86/cpu/mcheck/vmce.h +++ b/xen/arch/x86/cpu/mcheck/vmce.h @@ -9,7 +9,7 @@ int vmce_init(struct cpuinfo_x86 *c); (hardware_domain && \ evtchn_virq_enabled(domain_vcpu(hardware_domain, 0), VIRQ_MCA)) =20 -int unmmap_broken_page(struct domain *d, mfn_t mfn, unsigned long gfn); +int unmmap_broken_page(struct domain *d, mfn_t mfn, gfn_t gfn); =20 int vmce_intel_rdmsr(const struct vcpu *, uint32_t msr, uint64_t *val); int vmce_intel_wrmsr(struct vcpu *, uint32_t msr, uint64_t val); From nobody Sun May 5 07:46:35 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; arc=pass (i=1dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1624881511; cv=pass; d=zohomail.com; s=zohoarc; b=f8KCQJKBurpUoJObxkXwz10JFv0dr2A5PpY3HqimNveTgVgbKW2kfAAnotojPKEOvWPYeH47NONWH1AOYpA7jLAqhH/ShCKlZDTwwpH+e/ytprALDHfoZyjsyKFdG03LyQBbeGnptJ3eCiZwhwd2vLByF7lpauc9ywUJrKK9qP4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624881511; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=BBtvtRsR+vScZJWOTg32R7Q02yQyzv+05uwRDq5vNt8=; b=P4REShBbfit0hZ7GW4KquWw7FYkyPXM4g1PCwLQuPGmKHeKAj28m7YMd1gLyOW6CpX3wMySeM0qkDVGFG3BmFPusOEXlgypHxBc/zJyREkmFg3rT4nz+Wti3pQjXno3iTmV/Rrss4A+z3zmci4MxhfjT1heFE5yl1WWeF+c3M34= ARC-Authentication-Results: i=2; 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; arc=pass (i=1dmarc=pass fromdomain=suse.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1624881511275398.32107819848545; Mon, 28 Jun 2021 04:58:31 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.147822.272867 (Exim 4.92) (envelope-from ) id 1lxpu9-0006vA-3w; Mon, 28 Jun 2021 11:58:21 +0000 Received: by outflank-mailman (output) from mailman id 147822.272867; Mon, 28 Jun 2021 11:58:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lxpu9-0006v1-0y; Mon, 28 Jun 2021 11:58:21 +0000 Received: by outflank-mailman (input) for mailman id 147822; Mon, 28 Jun 2021 11:58:20 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lxpu8-0006ut-47 for xen-devel@lists.xenproject.org; Mon, 28 Jun 2021 11:58:20 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 62e3e985-97cd-4a7f-9f9b-2416465eae8e; Mon, 28 Jun 2021 11:58:19 +0000 (UTC) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2113.outbound.protection.outlook.com [104.47.17.113]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-35-dY3iSNqnMbWEyLwuqv1VwQ-1; Mon, 28 Jun 2021 13:58:17 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3390.eurprd04.prod.outlook.com (2603:10a6:803:9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Mon, 28 Jun 2021 11:58:16 +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.4264.026; Mon, 28 Jun 2021 11:58:15 +0000 Received: from [10.156.60.236] (37.24.206.209) by PR0P264CA0206.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18 via Frontend Transport; Mon, 28 Jun 2021 11:58:15 +0000 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: 62e3e985-97cd-4a7f-9f9b-2416465eae8e DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1624881498; 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: in-reply-to:in-reply-to:references:references; bh=BBtvtRsR+vScZJWOTg32R7Q02yQyzv+05uwRDq5vNt8=; b=Y4LEWryGdfsCYBp4VsKHOR2wlWdaXcr8GS6W2vTM8pgZujQoZS14+VeUmjpHqjmO47+8Jf OKtEXkx70shE2wUW5jZr7a+aKIFDhAfMwaYXL0gBD7SsyHoh7eFFwGh0dy27VH3jYtL590 09PEWznDy8nWVWgyTX9wOKF50hgYGOw= X-MC-Unique: dY3iSNqnMbWEyLwuqv1VwQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VqsDjWq9i33j5ZgmB3n2A2noQHw78sjoCJjVuq+q3cbwWG0d/nWRNcXdyo9CBRTT+vx7qeDEsPCaGzp7Hej89viD82DENBZSUCJY6gAF28iRbL8TYCsjRkHKc9NM6YMnPItNplSIyuIMhFPTck0Ce91Wdd2nK2lOhSXr4CaQXXBnn6cFj7BK4Iqc2lhpcqzTER8dHTYBp9NsRjXgOQUJBOKufHZGfpg5i2k1qalvet3ZmQW3kW1I1Q5Qc5Vmper0oA9YGN1iRPlaqlNRMRbJCCob5slBDawWC5if7qs1HX/vOmfUJKorKpp4mH8nMvOMqpb5ms0X9ZhHqSWDKnDr1w== 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=BBtvtRsR+vScZJWOTg32R7Q02yQyzv+05uwRDq5vNt8=; b=OXnXKPEys7H1UWnlAkKOZpnphnJwJyOtIMZ+IGMHDWOplmeqxKIF4xLbdA4VJvzs4Hi5Q9xg11e/7HpIjnXqoHqhKZEFzDEjM3BUOXS4T6MMEEF2+/Uskipfc4U2u69iACDSS0bscjnckszg4daO4B/a5EqWKSfKu8eGhOBLW2dXGQR5Qe62EOl6qAKnRc+EH3N7D0EpeMIC6yZYElgtQ/j9gAD8GqP1KeMed5ZvLiWawA3QswXwR/43G1b/yUJUoqkVbMwKAxQEX7t1ugYxo6Nitjl/x3PAh31GZhlFw/JHJZCLq1sBjPSYjeXRSujlBTSdEpnq7ZuiNZJS0ja0dQ== 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; Subject: [PATCH 2/2] x86/vMCE: change address space for incident reporting From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= References: Message-ID: Date: Mon, 28 Jun 2021 13:58:14 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Originating-IP: [37.24.206.209] X-ClientProxiedBy: PR0P264CA0206.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1f::26) 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: 41788579-d552-4f39-df27-08d93a2c0347 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3390: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mH7Xq4gEVM/dxIdRsSYJrMhcn5ZiErLc+aKjH+ufGmM8zSZStElE8VaTPTf4Lj8Ef/KnF35wfycFqlLTYFbu1P8/qll/A33v+Mz9l8OzX3eWvoYze7O7IgCPCzpVK3PI5ryK3KKdi5pPTlKCe4/MIw2T4+q0ZVFZmDK/9SkZYwj9XCpbbux+8OIL8siUszAfQH1BBnykSrrikrTL74pLsE0f4tXQBXNiqgQTumYAl+SjYCOa3K3h2KIzVbzXfwDwiYuv+3leljSlGlBavG3wws4S7zhAN1WhK3PkZZeljSh9mM1jO3ZVqgdcS0cij0Pu7ccJbtDerJVjfo5PsXw7Ziyssc9cvBV5kXAJt/O4YbeAJCKeVTrc88kHF71zs9M5D1nXMggzvYy9X3Yodudo6zSFHaYnqpoZMt3SLkC56VoG8oMzpHLenpTLxD6I4jH2UwKTzOW0Bg9z0KXvA6P1yW17YO87SFErfJMRP6Yrs9IJksx7AanokyJWQcV5DA7OG/oK4fDi4zNy77asA71o4AEX7p6I5+XsdFN9uktw3Z9gQIE33+1htCws/JQq7X7qlepfKHTe5hbQKgehH+RjqHWLJHA9hP2ZT1yl3ybUJQs2ZSErXjBCxTR+am2GMMbMKBX0od8UFxSjxKOaVu5KPJCHQI68foqtxFM3ga01kX8v/MdotiNc5hJ7ekfEQlqPKM1+A5FlU2IY50NwRLNVmhL/P7XyN51ArHosq2TohQk= 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:(396003)(366004)(376002)(346002)(136003)(39860400002)(8936002)(26005)(16526019)(2906002)(2616005)(83380400001)(186003)(54906003)(36756003)(38100700002)(4326008)(66946007)(6486002)(16576012)(86362001)(478600001)(8676002)(31696002)(66476007)(5660300002)(316002)(6916009)(31686004)(956004)(66556008)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q3Y5NEMwalpuMHBoaDJROGxqU3A1b3UzQjAzcFh4UWtJTnBOYUN3ekM1Nmt0?= =?utf-8?B?dytyU2pYTE5OaXV3UTdacnpkM1pQYzBYZEdEc3Zxa0ZvbDVFOWZTc0hXT3cv?= =?utf-8?B?Tk9DeWVPekRBa1BTU250Mkx3L3lZOTJ6OWtjZTgvMkVmVFAyZUtFeG1xNHpq?= =?utf-8?B?c3gxaENKS3ZaR3RHUjR0a2dIeEZSdzNNRi9USExkSXcyTzczODFPZjRNMXNF?= =?utf-8?B?QU0yRVhyMEVMemF4VmE4Q2VpRXk0MnBxRWwwakJHZXlsbnFPcFVRWTZMRlUz?= =?utf-8?B?NHFKRTZ0amxZUWhPeDVvUkN2VUd5N2ZzZytjL3RDYUJiYjJtS3NmVTNnQnRG?= =?utf-8?B?ODJDbHhZRDVsV0ViV0JxUHVYWnE1clVFd3FQQzdoMENGaU5oTlpLcGJDRDVB?= =?utf-8?B?L05LSFYwVTNPM29RbjNReERqcm5NbW9UV1FvdlJYSXljN0liL3F2eitiVmRy?= =?utf-8?B?dWd5N2xJYmR4aVlsdEpOV0RaczY5dWgvV1JiT0Z4aFNyejJ6Z2RsV0xuSnRo?= =?utf-8?B?N2ROb0RRYTErenNyQWx1WFVUV2h4eG03ZzVZWks4V3dEZ3UzSDNnZmFkekVK?= =?utf-8?B?L05VZm9yRk9qYnN6Z1JsNlFqVkE2NmlaVmdwdXViV1JsSGU0RG0wbG51TmZz?= =?utf-8?B?NDNNTDgvazVPTUJ1NTZHQVJRS1pObk5OK2hFajRwR2VWS0xvU1duZzRIcFpq?= =?utf-8?B?TEpWV1hEcVNCRnhjNW1YTTFLWnk5Q3VPTnpIWUdDaXQrd2lsRlNLZFhMREJt?= =?utf-8?B?QW9vbnVwSk43a2xlcW9WNUNGVUpTTWVmYzRjbC9mU0hrTUxFdnRoTytIOHpO?= =?utf-8?B?dUx5ZmJLUGNNdXBlc3FzZ3EyWDNMdC83bEwydFplUndhazluclkzSU1lcWhw?= =?utf-8?B?cWtQZHJzTUVTWnhrSS9rcTdTN1N5M2lxU2ZvVko3UzBUZERhcjByYnRPUTdJ?= =?utf-8?B?ZEs4OStrK3Z0cmsxQlpoSmJmNGdIMEN0VklzVzdtbW0vTStNeXFkWGM4c1hC?= =?utf-8?B?RTZ5b0Z2cEhpODdlRHdvRFZqS3o5Z0NGY09Dc3pqWmpqOWw5bCtJeXlmLzZU?= =?utf-8?B?dS8rdnFSRCtiSjVhWVJXSWE4UldDditTc0NacFFyZ3JTTXRCNTFiSTBlUlVa?= =?utf-8?B?eFJjZlFCeG1qSXR4WlZjM3BMaDRwbHNJQ1BUQUdOdmhPbEE0V3g3Q09FZDB0?= =?utf-8?B?bmd1TS9UM1hxbksxYm5laHQ5ME5YcVI0eXVYdld0VVZBQmJqOEZ5RVhEWTlq?= =?utf-8?B?eEE0cFQ1eG52ekZveXhBcG9nQVJ3dWJTTWx2eHZobm9FS0IzWUtVLzJNV3Bx?= =?utf-8?B?K1ZVSzNFWno2dE9BNUdQbnBxeUtiZElFVUdUaTVhSU1tUkRwaDBCMk1MTklJ?= =?utf-8?B?RDlwelRKeEU4MkZEbVl2SzNYOGc3VTMwMkUxRFl6Zk12Z212SlFRcWlJNGI4?= =?utf-8?B?QzBOaVJlWXFSellMcUZqZGEybXFEbE5xbGJDbmh6VUZXZUVGcVlxV0hEbTF4?= =?utf-8?B?M255VTFJejZYNzRXMHV5cW5qQ2NZamRKa1M1UHQrYjE1WEVYOUxXandkWUJW?= =?utf-8?B?MlNlUDJ6akxxVDY2Q1QxVDJSWEVyU0kzVTE1UkI4cWNkYW0wMCt3OG9sT21L?= =?utf-8?B?ZTBId2tKQTVhTndQYTgwMUJMYUZZeDNodzVHVXF3UEp2aGNoajR5Uk0xc0U3?= =?utf-8?B?eU9xb0JIWkRPRVV1aGhPTkw2STRmSmZISktBMCtUM1VFdXpwY2hxaC8xUk8w?= =?utf-8?Q?bz/Bp4gsQK11r22xS6AqVkXV9hUJjErX8N0ybEw?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41788579-d552-4f39-df27-08d93a2c0347 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2021 11:58:15.8659 (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: Myh23j6xBDpp/cqXauBIK+BUZ0s7mGV4HYoUt99xeYOwrtbMBLRjax16RtHr8W2F8vfTBp0XQAxqZAbPd5ywFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3390 X-ZohoMail-DKIM: pass (identity @suse.com) Content-Type: text/plain; charset="utf-8" PFNs are purely a software construct. In particular their association with MFNs can change at any time. Switch to reporting back GFNs through the hypercall interface (but stick to PFNs / paddr for the MSR one). (Note that unmmap_broken_page() validly expects a GFN anyway.) While doing the adjustments, replace an open-coded instance of PAGE_OFFSET(). Signed-off-by: Jan Beulich --- RFC because of the change to the hypercall interface, for which the address space is not documented anywhere anyway. Aiui the main purpose is to get things logged, and in a (system wide, even if maintained by Dom0) log system wide meaningful addresses are surely of more use. --- a/xen/arch/x86/cpu/mcheck/mcaction.c +++ b/xen/arch/x86/cpu/mcheck/mcaction.c @@ -1,5 +1,6 @@ #include #include +#include #include "mcaction.h" #include "vmce.h" #include "mce.h" @@ -43,7 +44,6 @@ mc_memerr_dhandler(struct mca_binfo *bin struct mcinfo_global *global =3D binfo->mig; struct domain *d; mfn_t mfn; - unsigned long gfn; uint32_t status; int vmce_vcpuid; unsigned int mc_vcpuid; @@ -87,11 +87,13 @@ mc_memerr_dhandler(struct mca_binfo *bin BUG_ON( bank->mc_domid =3D=3D DOMID_COW ); if ( bank->mc_domid !=3D DOMID_XEN ) { + gfn_t gfn; + d =3D rcu_lock_domain_by_id(bank->mc_domid); ASSERT(d); - gfn =3D get_gpfn_from_mfn((bank->mc_addr) >> PAGE_SHIFT); =20 - if ( unmmap_broken_page(d, mfn, _gfn(gfn)) ) + gfn =3D mfn_to_gfn(d, mfn); + if ( unmmap_broken_page(d, mfn, gfn) ) { printk("Unmap broken memory %"PRI_mfn" for DOM%d faile= d\n", mfn_x(mfn), d->domain_id); @@ -115,8 +117,7 @@ mc_memerr_dhandler(struct mca_binfo *bin else vmce_vcpuid =3D mc_vcpuid; =20 - bank->mc_addr =3D gfn << PAGE_SHIFT | - (bank->mc_addr & (PAGE_SIZE - 1)); + bank->mc_addr =3D gfn_to_gaddr(gfn) | PAGE_OFFSET(bank->mc= _addr); if ( fill_vmsr_data(bank, d, global->mc_gstatus, vmce_vcpu= id) ) { mce_printk(MCE_QUIET, "Fill vMCE# data for DOM%d " --- a/xen/arch/x86/cpu/mcheck/vmce.c +++ b/xen/arch/x86/cpu/mcheck/vmce.c @@ -465,6 +465,7 @@ int fill_vmsr_data(struct mcinfo_bank *m { struct vcpu *v =3D d->vcpu[0]; bool broadcast =3D (vmce_vcpuid =3D=3D VMCE_INJECT_BROADCAST); + paddr_t addr =3D mc_bank->mc_addr; int ret, err; =20 if ( mc_bank->mc_domid =3D=3D DOMID_INVALID ) @@ -479,6 +480,14 @@ int fill_vmsr_data(struct mcinfo_bank *m } =20 /* + * Provide a PADDR through the MSR interface, for historical reasons. = What + * we are being passed is a GADDR (i.e. MADDR for PV and PADDR for HVM= ). + */ + if ( !paging_mode_translate(d) ) + addr =3D pfn_to_paddr(get_gpfn_from_mfn(mfn_x(maddr_to_mfn(addr)))= ) | + PAGE_OFFSET(addr); + + /* * vMCE with the actual error information is injected to vCPU0, * and, if broadcast is required, we choose to inject less severe * vMCEs to other vCPUs. Thus guest can always get the severest @@ -487,7 +496,7 @@ int fill_vmsr_data(struct mcinfo_bank *m * vCPUs will not prevent guest from recovering on those vCPUs. */ ret =3D vcpu_fill_mc_msrs(v, gstatus, mc_bank->mc_status, - mc_bank->mc_addr, mc_bank->mc_misc); + addr, mc_bank->mc_misc); if ( broadcast ) for_each_vcpu ( d, v ) {