From nobody Sat May 4 20:24:21 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1634810323; cv=pass; d=zohomail.com; s=zohoarc; b=noyy6hvpRwSuXfkjAXpen0qoCJ1cQ4EfRZHsCQxu00qbzWRm1287l0CAHgKaWUUCKfyn7AYHJGhoePlyYqFWrEJ9rgfIrsnrwLyH/wm83bNtZ5EaDkIhMRBHxDHFDBJFClGcF10a9TTbYXM5LEd3AqGdSgUstMMk80CVXoBtMSo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1634810323; 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=uNxaaOTDiAFX60qMVwLfMAPbo6sm/y2BMjhq80ooH2c=; b=bWXrGvj/VFZSxQGwmCt1OaA7dUwZWrts2OFht7fF2pAnnkIelPEczWR7l8pcJD2lgAZmqqS7H/DhwJzFvAJEjFWwUgUZDHPgyUVirxgJ90vYJDYQSna3Wn/tMQcwXq38msdTrFSyk5PFnv+Cw6mlePv/amNva3+werAGrPJt30E= 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=1 dmarc=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 163481032316491.6558188207913; Thu, 21 Oct 2021 02:58:43 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.214273.372778 (Exim 4.92) (envelope-from ) id 1mdUqA-0001OK-QF; Thu, 21 Oct 2021 09:58:26 +0000 Received: by outflank-mailman (output) from mailman id 214273.372778; Thu, 21 Oct 2021 09:58:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mdUqA-0001OD-Mx; Thu, 21 Oct 2021 09:58:26 +0000 Received: by outflank-mailman (input) for mailman id 214273; Thu, 21 Oct 2021 09:58:26 +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 1mdUq9-0001O5-Vo for xen-devel@lists.xenproject.org; Thu, 21 Oct 2021 09:58:26 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 6e20e246-3255-11ec-8373-12813bfff9fa; Thu, 21 Oct 2021 09:58:25 +0000 (UTC) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02lp2059.outbound.protection.outlook.com [104.47.5.59]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-9-Pj40-NccPdGmwrf4w8spvA-1; Thu, 21 Oct 2021 11:58:23 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 21 Oct 2021 09:58:21 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4628.018; Thu, 21 Oct 2021 09:58:21 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6PR08CA0017.eurprd08.prod.outlook.com (2603:10a6:20b:b2::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Thu, 21 Oct 2021 09:58:20 +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: 6e20e246-3255-11ec-8373-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1634810304; 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=uNxaaOTDiAFX60qMVwLfMAPbo6sm/y2BMjhq80ooH2c=; b=bL+M7ndrNx3pu/ZO3Fm5pI5EpYVe2kxZRo9a3Mgb2PWWQnrqVtqMY9hpG3muOLeljH8UIz /RLwGD7DD5R8ZBNZM5vdk3J7uyWqTM67OELXv9nO0u5QTf1lqIqyaJfvO74lx5WoeTnLNP UIXNzHKHLWMRA7xyzolmCN5KlkNBwAQ= X-MC-Unique: Pj40-NccPdGmwrf4w8spvA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PrFCDPx4YPNSAwIAoO+aaljJpzL9dZgnV0eFuWA2kXy6sI2WFR+pjwmU+hahBkYmBXWQv2vV/vmgoHni5vDndlUw+/0bA7Py9X0Ptlo/bgf/WaXTa0UVdKMo5t9RS+K29nhl2wHpmPe/D+S8sp4Qbi5dvfYs2o/cv69BPFmTW1EcdAm3DUIEk9DVDY3JffaAvkCYrLkhUyMzc5lRe8EddOESCLmF2s0DvAjAYtwMDMnkUcnHckv5cVz7az3+wZam+92SJkknfLHy3eKP6/mCDJgCyTruq+Lwjy94sOWf48bnl4aT9mB4kocGbayThpe5YGvi8fBfL3lI+JlHaPb1Vg== 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=uNxaaOTDiAFX60qMVwLfMAPbo6sm/y2BMjhq80ooH2c=; b=BTULTezE0dM2iWBAJwfYSzz14lHmIvMLI/q47jfg0NbbNtatZivZvpIQuBjshtj5/BrrbRnmxwaVqDgphmwmrzvxK+E9o2INqTQh6lPVQu2lYJtwa00zJBrnHlz4X0eBRdc0uES7yYPkqHJ0JGzfZRqIoa9dD8YMZ6ZgknbCDiuY9GfKngabbsyAq1wLLGH4LYy0jJzkyoctX4jRUYbvCknlR9i5gTE9mNv0svY7RBNgKDo1yZ4y/tAr0vOjUCR3h7ZRiJvgNXPNv2pyjKQKN1+w37UTEz8gHBDqphAIi16lhXvw+/IG46qITm3hGTeenz+765Ih3U1EVvZHdH8i2A== 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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Subject: [PATCH v2 1/3] x86/IOMMU: mark IOMMU / intremap not in use when ACPI tables are missing From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Paul Durrant References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com> Message-ID: Date: Thu, 21 Oct 2021 11:58:18 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR08CA0017.eurprd08.prod.outlook.com (2603:10a6:20b:b2::29) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 75d2a24f-161a-4bc1-ca99-08d99479506a X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2803; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NWHrmC08xXzWVmkj2hIXws/oPAKKF291R1esl2D2uH9+3OtU5lTI5XFvnzYNZezvmIJ+GQPrSr5utrDo9t8N+jDq9/l2AHIJ0eLnK6fEntFq7wMLgaQf6p5mKwLty4hbgLuBfk2gPRQhl0VIHoOyQ2Pvv1YlL9Y3VKUpKo/4j2Zq3vdGEk5NBaa2SspFq6BNUNxlBX26rrA10MDcj1BED30alO6Ta6JP6Psc6iauQ46Swr87K7TlWscNHRQYpkDG+aviaYuV2x/tshOlGK71xbfpR4ImABNokhZ8i5pnDe+j12iXF/WyAwJlf6H8fGuC53zCjWDncGAb9WXWx/BdVq6R9hTKDhNeLzchvamZyLQYtTqaEXXSAF7km0tZrPuYzJc6f3IGgYjSFRPC+eo3H9fR5di5Ozye7OjeBDpRjdeNvfbbubSQoGcdgfsg/IRFF+tRoFibybLt6jGMLj/Q7zcLXSf9uU+ZBoTNImhcEZFx9jKBhMW0Nj2tBYavvb4Nin0x3L+RljrBYH0UzcwezfdK6sdxjEgh3tsvMToUQhDA4pmYvcDpopx2VhgSqeUayIbcmL/nmwMG/kXULW8MXop/GW6c4oh+0vdYW7jLslMFrKa/PcSO+xEhZc8qqSzD0aqi1Y2WDkxoYBZlCSu3jvYowok+ZhEi0VSpdkV7IGRCpA/PiMpD5zvJ5+br8WfY63SR84CQP4XmPPSN4OwBCp24fD+3bsUs7awqH0tXvfyXPhewQMFwyNzZsVCJBCkp 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)(2906002)(316002)(36756003)(16576012)(83380400001)(86362001)(6916009)(8676002)(8936002)(31696002)(31686004)(186003)(66946007)(66476007)(66556008)(26005)(38100700002)(54906003)(4326008)(6486002)(956004)(2616005)(508600001)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?KzhPMVJ6OGcwaCtDZmZrMTNJT0ErNWx4bFZTMTNaYTdBbnllV0t1VnpqSUZi?= =?utf-8?B?NmJtS09kU0VZQWlCK3kzL1BCUVlKeDRoQjlHcGFhNW5HQURNRjhaYjB5alIy?= =?utf-8?B?Vm95YlcycTNvam9CMmpZOTM2dzlIbndoaDFSZFRBQXlIK0dXQnVHVk1ueUFJ?= =?utf-8?B?NmJNVHVPTUJTTUVxV2dETkJReGdqWDcxakFlSHhmeXVNNkoyZVZVNXlrUUdh?= =?utf-8?B?ODBJdTVPVG5wZVdGQmJSN2NRaGpHbVd6L3pNNDFSeEkwcm9rK0lVN1N4U3V1?= =?utf-8?B?aTBzTW9vN1JSS2J3c0xwZDdFaTdDTFZ1OVZrTUw3ZXNYMGRmNVRJeUVjVDZ6?= =?utf-8?B?TG1WTXJjUzRXbWtBMndOS3JEeERGTWxmK21XZkZwT0ZwYUh5NzhBdkduSkZp?= =?utf-8?B?K1hlM0picTlYYSt6enJzNlpQVWhOK0F6ODhlM2QwU2p3R0prRm9XRGQyd0FB?= =?utf-8?B?OEQ1VlJ5M1BxRHFpWFdqZHNzVENpSkpocFJrVDVVakEzdWNGMythNmZqM0F1?= =?utf-8?B?ZGU2UEVINDM5cEhWRENtWE1PMGNXMnlxd0M2dkY2elo5NlVkdWJ1aVB1cm1w?= =?utf-8?B?d21VVlYwRll1RlZ6T1NhOUQwK2xyVmMxT29wNlFGbExHQUx0V1lkUFVEc1lx?= =?utf-8?B?OWhIR3lLNnZDekVYck5uK1I1ODB3WFV5UlFVbVVrb0Jvc2RsdExYZzliWTJS?= =?utf-8?B?OTRDenZsNTFubkZQd0RjbTZ3RFV6SDdKTlZkOFpZRkszUHhJTDJmc25RdFB2?= =?utf-8?B?VEF2ZjRyTFViSDIzSEVBeTdYZTJtSnF0V3lqTTJSdXlONUN6cEVuTmZVOTZj?= =?utf-8?B?ZTJzY3JXUUtYcG5tV1lQcnpyS1dlOE1EQ0Ewa3JJSjNwMm1pZVo0ZmMwQ2Nu?= =?utf-8?B?Z0g1M2FDVE0zS0ovSFg4ZW1UaE9SQlFtN0FTWFE1U1ZLaVB1YU9qOHpzRVhM?= =?utf-8?B?M09STE45c2JDZi9qVm9Mb2ZvenlnZk03TFJxRElJUU01N0toZERjU25UNnpL?= =?utf-8?B?WHNvK3B0Zmk3RjBQc2MyWEg2Sm9tQUFsL0lzRHNNYXRpejA2eW1TNGI4bXdQ?= =?utf-8?B?T3ZWR2M3aS9QL0loRGJPN0YrSlB0SnkvRU5lVU9Qbk9LQkpFK25Mb2Q0YzZu?= =?utf-8?B?bE1Kb3M0L3E2MnQ2NFIwS0JlMlpKdFFqTmVtYnllMEhwME03TWpnRDYwTnNJ?= =?utf-8?B?RlZkck8rcXFOUVhUOVRsdVZvLzd1bjE5UHBIUktzTFVWMmQ5TXpRQkdDS0tN?= =?utf-8?B?c2JEVnpUMDEzc1lvV0RVckhad1Q2MWpSUGV6NXZQeVdzVDBQM0ZKaldxNG0x?= =?utf-8?B?SThVS2RsZ3BtaHBtbkpvY2Z1eFg1di9vMlF5cU51R3JhcHQyOXBDQU9LTFor?= =?utf-8?B?RzdQK1dhajRBby8wVTZOUkpnNjNLak5kNE9MVlVjVEpBNGhHKzR1TG92czdn?= =?utf-8?B?bG1aQVRPb1BhNldHbWRWRlhYSU53NTNCMU5PbkFTelhHMlVIWHdMZHM4MVN6?= =?utf-8?B?dEw3NW96Sk80c3Jwb01ZWis4VGhubHlXT0FKTjRVTWhmMmJPQ3hHS3ltaFc4?= =?utf-8?B?Nkp4Z0daY0xwSmZicVh1SklzWDY0NFd4SVVKd1Znd1F0UzhENmtBYlZndjdo?= =?utf-8?B?MUsvTGE3eHRHbWJWOUJPTGU1dWk2VlVMdFgxV2JnR290bU5NQy80SnpNeTdN?= =?utf-8?B?OE1GVWRSQkU5Z2QrQXBibThicDJTN3pGVGxwNEs5aWNHb3NOa2JsdmEwRmky?= =?utf-8?B?SkFYcnBmMGxmdUtweHJReVE5SG9RYnpuR2hkRXk2UVdKckJGTmlwTUVGVjlD?= =?utf-8?B?TXhNK09jZE9UV3FYTEJoNXRxM3lOQjREUWVRcWVUNUN5NGZpbVVSUUM3aDRy?= =?utf-8?B?VlduZ0tjemk2cm5zVFdLRnJUYldJMFg1MFZ1Ym1tS0QwbzZnZytWSVl5VVFJ?= =?utf-8?Q?4c4e+K1ONf4=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75d2a24f-161a-4bc1-ca99-08d99479506a X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2021 09:58:21.2124 (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: jbeulich@suse.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1634810324464100001 Content-Type: text/plain; charset="utf-8" x2apic_bsp_setup() gets called ahead of iommu_setup(), and since x2APIC mode (physical vs clustered) depends on iommu_intremap, that variable needs to be set to off as soon as we know we can't / won't enable interrupt remapping, i.e. in particular when parsing of the respective ACPI tables failed. Move the turning off of iommu_intremap from AMD specific code into acpi_iommu_init(), accompanying it by clearing of iommu_enable. Take the opportunity and also fully skip ACPI table parsing logic on VT-d when both "iommu=3Doff" and "iommu=3Dno-intremap" are in effect anyway, like was already the case for AMD. The tag below only references the commit uncovering a pre-existing anomaly. Fixes: d8bd82327b0f ("AMD/IOMMU: obtain IVHD type to use earlier") Reported-by: Andrew Cooper Signed-off-by: Jan Beulich Reviewed-by: Ian Jackson Reviewed-by: Kevin Tian Reviewed-by: Roger Pau Monn=C3=A9 --- While the change here deals with apic_x2apic_probe() as called from x2apic_bsp_setup(), the check_x2apic_preenabled() path looks to be similarly affected. That call occurs before acpi_boot_init(), which is what calls acpi_iommu_init(). The ordering in setup.c is in part relatively fragile, which is why for the moment I'm still hesitant to move the generic_apic_probe() call down. Plus I don't have easy access to a suitable system to test this case. Thoughts? --- v2: Treat iommu_enable and iommu_intremap as separate options. --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -183,9 +183,6 @@ int __init acpi_ivrs_init(void) { int rc; =20 - if ( !iommu_enable && !iommu_intremap ) - return 0; - rc =3D amd_iommu_get_supported_ivhd_type(); if ( rc < 0 ) return rc; @@ -193,10 +190,7 @@ int __init acpi_ivrs_init(void) ivhd_type =3D rc; =20 if ( (amd_iommu_detect_acpi() !=3D0) || (iommu_found() =3D=3D 0) ) - { - iommu_intremap =3D iommu_intremap_off; return -ENODEV; - } =20 iommu_init_ops =3D &_iommu_init_ops; =20 --- a/xen/drivers/passthrough/vtd/dmar.c +++ b/xen/drivers/passthrough/vtd/dmar.c @@ -777,11 +777,7 @@ static int __init acpi_parse_dmar(struct dmar =3D (struct acpi_table_dmar *)table; dmar_flags =3D dmar->flags; =20 - if ( !iommu_enable && !iommu_intremap ) - { - ret =3D -EINVAL; - goto out; - } + ASSERT(iommu_enable || iommu_intremap); =20 if ( !dmar->width ) { --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -41,6 +41,24 @@ enum iommu_intremap __read_mostly iommu_ bool __read_mostly iommu_intpost; #endif =20 +void __init acpi_iommu_init(void) +{ + int ret; + + if ( !iommu_enable && !iommu_intremap ) + return; + + ret =3D acpi_dmar_init(); + if ( ret =3D=3D -ENODEV ) + ret =3D acpi_ivrs_init(); + + if ( ret ) + { + iommu_enable =3D false; + iommu_intremap =3D iommu_intremap_off; + } +} + int __init iommu_hardware_setup(void) { struct IO_APIC_route_entry **ioapic_entries =3D NULL; --- a/xen/include/asm-x86/acpi.h +++ b/xen/include/asm-x86/acpi.h @@ -141,16 +141,10 @@ extern u32 x86_acpiid_to_apicid[]; extern u32 pmtmr_ioport; extern unsigned int pmtmr_width; =20 +void acpi_iommu_init(void); int acpi_dmar_init(void); int acpi_ivrs_init(void); =20 -static inline int acpi_iommu_init(void) -{ - int ret =3D acpi_dmar_init(); - - return ret =3D=3D -ENODEV ? acpi_ivrs_init() : ret; -} - void acpi_mmcfg_init(void); =20 /* Incremented whenever we transition through S3. Value is 1 during boot. = */ From nobody Sat May 4 20:24:21 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1634810338; cv=pass; d=zohomail.com; s=zohoarc; b=H2qgJIB+fdbMTCESTOxXGsnzGIcXd0mnPQ6b3ZxPopNp++aGI0moFYfm7IVokt7H/lll7pb6Q5+BUOSCwFsfjkS3Y/3zRui/f1yIjt4If9j5kRY9RrsNxdXuKfJusRk8Zp2LUDIneQLbVA1xxumQ4BTphcwmceMzPwQSzT0lgCE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1634810338; 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=XttmN+xWknonju2h1s9l5A0Df7pJEnl/TZUURByJQLA=; b=FPkey6Nzb1r7k1jk8mQZt7T7/ulU8JjG/gwV4iL/0WcslUCFZbYz/67Bc50byx5BVcVG666G4J5XzNL/Nc3LaFEHX4vCER1g7udY18CIDbTCkf6uodxtk+pJlPu9ccrIDAb43eSLEvnEYJB6eJsrcf5M0NdXAEQ8aZkGZEMeRH8= 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=1 dmarc=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 163481033807289.14189910058701; Thu, 21 Oct 2021 02:58:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.214277.372789 (Exim 4.92) (envelope-from ) id 1mdUqT-0001rS-2M; Thu, 21 Oct 2021 09:58:45 +0000 Received: by outflank-mailman (output) from mailman id 214277.372789; Thu, 21 Oct 2021 09:58:45 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mdUqS-0001rJ-VZ; Thu, 21 Oct 2021 09:58:44 +0000 Received: by outflank-mailman (input) for mailman id 214277; Thu, 21 Oct 2021 09:58:44 +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 1mdUqS-0001on-48 for xen-devel@lists.xenproject.org; Thu, 21 Oct 2021 09:58:44 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.109.102]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 7902b112-3255-11ec-8373-12813bfff9fa; Thu, 21 Oct 2021 09:58:43 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2054.outbound.protection.outlook.com [104.47.13.54]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-19-3A4_rDsMN8u2Mt2puvoJBA-2; Thu, 21 Oct 2021 11:58:41 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 21 Oct 2021 09:58:40 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4628.018; Thu, 21 Oct 2021 09:58:40 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6PR08CA0009.eurprd08.prod.outlook.com (2603:10a6:20b:b2::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Thu, 21 Oct 2021 09:58:39 +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: 7902b112-3255-11ec-8373-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1634810322; 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=XttmN+xWknonju2h1s9l5A0Df7pJEnl/TZUURByJQLA=; b=ICeAUAOS4Xu+MNWRlypOGobmnnU2diSrg4UL99ckHmigZustM4noDF960x7cN5X9JSuSZu vryTyJrdOTvsH5G1PNLwBEfyFnYI0/aaktU/IFPLAUypnhHwC9L3gVDlJ0v7Pp5IO2gbm3 TsFLv8teS8CIBZ4U0Rf8GBcjqzwxm6E= X-MC-Unique: 3A4_rDsMN8u2Mt2puvoJBA-2 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G5sDVc/gRHT0W+VbZSgFYnJgnt3F90Jo8ksNFR+qzk8wb9TXAkNEHnhigyiX63Yb2d2pJUkkmk3Cu6U7UkCpppExY2UJy4aDkDDM7aK6ePkXTZyfiJSjbxxPBm4yM0s/aYegNANwa7PUNld30tafedR7Y7OywGhGmFgJgb7fODIAPsWcBm49/x5xnNZ/xVSkg0iFDZzyK+D82Gx2sSyHlMxxBQYJdzN6jVimS4tkIvRJzOLOCfpA+rS8BvPiFg2uJB1fIPFwzOrmPAztb2GxgMphds0VFxZc/l4SIfCgEK8/IONVKJQCnK5qL6AVtVfenJtZr0IKl2OiPukBRXi8YQ== 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=XttmN+xWknonju2h1s9l5A0Df7pJEnl/TZUURByJQLA=; b=MtlICZTW0X7RUmlsDDoPxdqYuDMHpIgvBeEaQiJQxN+3OgEd/8lz6k9wAJl3e5cQjQPFQ73S6bmD523t4yw4iFJB87W0vJiRBKaAOn8WykAijmdEBvTJHS9TnmFevOPzSICYfaYCc0ycHMkthWVVkc25nRaRLR+5TGPWYx/Jn4KyQPBf0h231IQDO92VAhGUqzYfsCClXUR3XL+kJGsXuJRMQGT2fIqejjpTQ0jZcE15/zqCBg67mATdUWcIhUMXv9COKve9+2nDFnjVnqOY3d9/Y/XidGqu8q420cQa5c3AsRbgYPeDOygv3jGs/m2i9GWc13SE66SfV7/cwU5xLw== 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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Subject: [PATCH v2 2/3] x86/APIC: avoid iommu_supports_x2apic() on error path From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Paul Durrant References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com> Message-ID: <35f9099f-1111-1a66-83eb-bc5a3887f9aa@suse.com> Date: Thu, 21 Oct 2021 11:58:37 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR08CA0009.eurprd08.prod.outlook.com (2603:10a6:20b:b2::21) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 26e31da8-ea6d-4ee5-16d0-08d994795ba2 X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DreuMRLq0uKsKJbK3ZpSQk/O6eWn9Y/ockkK1m9BKoS2btJBR7XV6jrQITdQJ0NM1EoeVAzPwFlF7Jlrqvvld6aO6mWLm1ta0Cc8K0R/9/xsYzwSzwCt+TQR7+qOXZAx8YX3depEnhb+/C3bV5kGmXWbJOGztWYvLWUY0Zh+rWZl/DvyLWwxampyiNlhbNdqq2QdHvdrJjo6f8gQ4O3Xt5Qs4m2futV5+oOyQdTUS0Wy8pBwBvNuGMjweXj3QMsuk3TjOfYnjifSshruoz5iA7RoNpppSRhLIRoQb3ZhCGuZIMKxviRAVlxfiliuYK2+ZrCQN016Gx/zBkAdNkt4BDwWWu5lGGh/bbgBCeTJG5/jHHz00zfxX8hp5CHZYJyOPmdDyR6DcFTX6N27hqSYWSN93AHVfPc/9mCfXGHtP7D1fAzW5gCnce89wwcyf8LnuJccJ49BH4r5a/bfOrXjdnF3JGkW8v+H4Eeb58SLk9Ju0PVxEWnQbThE+9B+KJjdRBUNxdduErxD2Ov/EDNFD+mdzZC1CiN8C/8L9buyC+Z+cfODPG9VWKLMfGCTZUt0PYLjoRQpaiOdKuknATrEPoI6CaRaF5VIGuF5PFW9yupQDH7X4Ijs7BHir1/9d/2QoJFMlTzbe4HQWzl9YLdSVRFGLJdXIY2V0BSLPQxfKCP70AkkKCsXTnxUVgGNFJNp1XJkCmOzXIKmJfHj0eRHms5ZTWqG1vmBst6hgnWNEn7AlGp2dcw4tEUK2SZuK7eB 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)(2906002)(316002)(36756003)(16576012)(83380400001)(86362001)(6916009)(8676002)(8936002)(31696002)(31686004)(186003)(66946007)(66476007)(66556008)(26005)(38100700002)(54906003)(4326008)(6486002)(956004)(2616005)(508600001)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NmtjYzAzcnRQZmRkc1RCdkRWOTVxbEhOQXZ3SWlXaWRKbkdvbEtKbThtSmFj?= =?utf-8?B?VXhtOXJaUzYwYUZXOHJHMGU5c1pBaUhMelkySGNuN3cyNk1wREIrU0JRN21R?= =?utf-8?B?dzh2enZ5ZDk1V05RYy9weUVmZmtZdkh4NjBwdjM1QmdLMzgxTzYwdTQvR2lu?= =?utf-8?B?UCtnMFBtQVJXOWhuODVOU1RQMFY0anpqQnZCSmNnZUpJeFdIT0xGb0dGMllB?= =?utf-8?B?dExpWHNsY21veTN0Rm9UcnJVS0prUFZidTgwZk15WWU2dlpxMDYycUJpTVJB?= =?utf-8?B?SXRQYWxoZEphU0xxZUVjRkhjcUFTV3ErcDk1eE16WmRkQmsrNXh1S0lvbXJX?= =?utf-8?B?MjE4bHJJalM5clB6TkY1MEJJWFI3b3RVb3VIeUZlajY4WVBBVmpOR05JbnVB?= =?utf-8?B?Z2VpcHVseTJtdEx1YzlSanVyRnVjeHJMSGplWVBkNXNIWnBNQjBNMXlKMkpM?= =?utf-8?B?UExZRDB4ak9zODkvVlMrTndrb3QzNXhDUlZVZlR4U21TelJEaXFRakIydVN1?= =?utf-8?B?T1pMQTRzaGFtYUs4clU4RVFnT3NiUlpyc0ltcGxtUHhiNThTbDNpZlRZMlpv?= =?utf-8?B?QStyeXZrRUNlclVpQXJEcFI0NFM5N0ZZcjlRRlZRd3g2R1FUQjNEZjNDYVRr?= =?utf-8?B?R3djWDdlRERNQXZ4S0phWk1Gc3FFVEFxVVUzQnRkTEF1MjMreFAxdTUrNytS?= =?utf-8?B?OG1BT2xUb0NIMmVYMGd0VzJsUGUzQ0prLy9yckljNittNEQwUC9hc1BNS0hh?= =?utf-8?B?aXV2ODJwUFNmbmpDNlFQakFSbGdNdWlqV09kcU1pb2pnN0VkVHBYTHowRW1p?= =?utf-8?B?WFpDRGhkWTFlV0FrdUluTFhSTTU3dzFWSzJVeEFjWG81NDJIbGFGdlB1N3hP?= =?utf-8?B?U1hKUzBIOUptaERoR0U3Qk1zbFZvZi9pR043eDZiMUhlSEpKbVp2UnJ4dGRm?= =?utf-8?B?dHdpcnl3RENPcWFuOGhDcHR4cGZWS2xPMFRiMG5aRGR3TEJIVzRGakIyWnV5?= =?utf-8?B?OFBVMmRYdFNiSEljMCtGc3BpVEtWbElSaHZ2Uk9PRjFwRVNqb3BNaTBlRTFB?= =?utf-8?B?cW5yaHY4b1lTMEhYVElxeVRVMzZETTQ2KzZLUFBVK25Sa0pMdVdnc2JhdEdv?= =?utf-8?B?UkpvVWhIRGlsNWt2Ry8rQVhJcGpKdkZKbFZiY3E3eWJFSUl5MERzVDQwNXVR?= =?utf-8?B?QXo2NXFaa3dWZis5TG56bEszTEhWYitRUExyQlZmY1UvUHJ5VVFYQnVxbndU?= =?utf-8?B?cllkckFpUTFjcWZteFdUM0Q1NWo2UzNvdXo3djA5MFIrSmRqb1lFQW9pOHZI?= =?utf-8?B?ZEhackx1VmFZdXZqN2laMlduVDZySE9vZTRLZDlBZkpuYXVIeXFwRGd4WHlm?= =?utf-8?B?Qk9iVXljNk1uazVxMTlzbUpqQk13OGRNS2RkZFFPTW1kU0h4TzhIOW5pTkJJ?= =?utf-8?B?SG1ESkwrUmRqM2VrRXlsL0FtMzErWFBvUE1JcmlQYld2Zi80SzNoMk5oTjZy?= =?utf-8?B?T0J4c09ZaFBmdWFOek9LWHFoNkp1OVdGUWs5ZFpXL1BDMGtXbWNNWjQxQnlZ?= =?utf-8?B?WWlMWThxcFhkbk92T0toWFdhRVlsTng0SEwxVXFIamk5bUl5Y3hOT1Z2bkNO?= =?utf-8?B?NmM1UVVvc1RvRlhJNDRGU0V5anZkTzBERXhmV1R4OHk2VUpuSUs5aHVtNDVK?= =?utf-8?B?cy9kM3lYaXk3dU5Ca0hHTWN6NEhiRzdRMUc4VTAwa1dLSnkySm1ibVpiQWVV?= =?utf-8?B?d1UrNFhHYnEzYmRNSVRoaWFBazNJUHF1MTh4SklDOWwyWS9NbVQxTHUxVkRM?= =?utf-8?B?aVdtekRHbHg0dENUOUVNbFNxeldxakxOSnNiVzZnNUtleG1tSzFlRVEyaEJE?= =?utf-8?B?UEM4djcvcThGdEVVczEydnR1NkFwWFl6UkUzcXVFTzhwZDl0dVJoRkUzeWNl?= =?utf-8?Q?o4njLMN6qgA=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26e31da8-ea6d-4ee5-16d0-08d994795ba2 X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2021 09:58:40.0148 (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: jbeulich@suse.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1634810339586100001 Content-Type: text/plain; charset="utf-8" The value it returns may change from true to false in case iommu_enable_x2apic() fails and, as a side effect, clears iommu_intremap (as can happen at least on AMD). Latch the return value from the first invocation to replace the second one. Signed-off-by: Jan Beulich Reviewed-by: Ian Jackson Reviewed-by: Roger Pau Monn=C3=A9 --- v2: New. --- a/xen/arch/x86/apic.c +++ b/xen/arch/x86/apic.c @@ -865,6 +865,7 @@ void x2apic_ap_setup(void) void __init x2apic_bsp_setup(void) { struct IO_APIC_route_entry **ioapic_entries =3D NULL; + bool iommu_x2apic; const char *orig_name; =20 if ( !cpu_has_x2apic ) @@ -880,7 +881,8 @@ void __init x2apic_bsp_setup(void) printk("x2APIC: Already enabled by BIOS: Ignoring cmdline disable.= \n"); } =20 - if ( iommu_supports_x2apic() ) + iommu_x2apic =3D iommu_supports_x2apic(); + if ( iommu_x2apic ) { if ( (ioapic_entries =3D alloc_ioapic_entries()) =3D=3D NULL ) { @@ -933,8 +935,11 @@ void __init x2apic_bsp_setup(void) printk("Switched to APIC driver %s\n", genapic.name); =20 restore_out: - /* iommu_x2apic_enabled cannot be used here in the error case. */ - if ( iommu_supports_x2apic() ) + /* + * iommu_x2apic_enabled and iommu_supports_x2apic() cannot be used here + * in the error case. + */ + if ( iommu_x2apic ) { /* * NB: do not use raw mode when restoring entries if the iommu has From nobody Sat May 4 20:24:21 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=1 dmarc=pass fromdomain=suse.com); dmarc=pass(p=quarantine dis=none) header.from=suse.com ARC-Seal: i=2; a=rsa-sha256; t=1634810368; cv=pass; d=zohomail.com; s=zohoarc; b=b4p5UUc1k4EjmCi4kjQDxgf6718tlBLLg+81Eyys0vc4JmEZr+W55qKEF7BcVr/6gRh+wA8t6NgsxCziCz2p/TTTtKZATKI1eOI8KeOO/bUkjS6n2Pn/vqurWW9ETDR6tHcTPxpg4i/r/D9S/fVoVhSQtEqPxgBoc7cJdAAV1vw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1634810368; 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=S8lycJUP12YSt6T5Wbpdmvdqu/DvfiQPPEOn+K5M3nA=; b=U/Iw+ZvRqoF5wPH4g85UBMnCxwww1THwL/O/Pw1a86abfjUg65XFsa3G9uycl7qkg2RokVsHk4I1236yGiOpdX+F8hxJGCUJ6C+PG8v4OlCVTazs8NRlgfQWZEvSuyStfYoQy/u0hC3E13rVSwD6I/6aZoztOp7yQJTsUJbiiTU= 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=1 dmarc=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 163481036817352.27536540244057; Thu, 21 Oct 2021 02:59:28 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.214286.372800 (Exim 4.92) (envelope-from ) id 1mdUqu-0002SJ-BI; Thu, 21 Oct 2021 09:59:12 +0000 Received: by outflank-mailman (output) from mailman id 214286.372800; Thu, 21 Oct 2021 09:59:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mdUqu-0002SC-87; Thu, 21 Oct 2021 09:59:12 +0000 Received: by outflank-mailman (input) for mailman id 214286; Thu, 21 Oct 2021 09:59:11 +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 1mdUqt-0002Qg-1H for xen-devel@lists.xenproject.org; Thu, 21 Oct 2021 09:59:11 +0000 Received: from de-smtp-delivery-102.mimecast.com (unknown [194.104.111.102]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 890c88ee-3255-11ec-8373-12813bfff9fa; Thu, 21 Oct 2021 09:59:10 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04lp2057.outbound.protection.outlook.com [104.47.13.57]) (Using TLS) by relay.mimecast.com with ESMTP id de-mta-36-J4x-Q08RPByWWDtzEK-TnQ-1; Thu, 21 Oct 2021 11:59:08 +0200 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) by VI1PR0402MB3774.eurprd04.prod.outlook.com (2603:10a6:803:1f::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Thu, 21 Oct 2021 09:59:04 +0000 Received: from VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::8062:d7cb:ca45:1898]) by VI1PR04MB5600.eurprd04.prod.outlook.com ([fe80::8062:d7cb:ca45:1898%3]) with mapi id 15.20.4628.018; Thu, 21 Oct 2021 09:59:04 +0000 Received: from [10.156.60.236] (37.24.206.209) by AM6PR08CA0030.eurprd08.prod.outlook.com (2603:10a6:20b:c0::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Thu, 21 Oct 2021 09:59:03 +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: 890c88ee-3255-11ec-8373-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1634810349; 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=S8lycJUP12YSt6T5Wbpdmvdqu/DvfiQPPEOn+K5M3nA=; b=IXqIs+exvPtL2HhYrq8563G5iKP1ZXqQUTQdi/pJ9ueQadwubyA6jyeaCuKXeqKMlbG7xp p4K4JSgWmz1va+75EK780voI0yRaLSOfycJDTK+uvNeSyEZLExUYrul2eO0VbVgxcNjGkL 0s1TVCSqD1MLmDpb6rhY3HTUAzVdY14= X-MC-Unique: J4x-Q08RPByWWDtzEK-TnQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZkknbpGdIEQPi/2D1frYSL30GnGufGxoJ1iLCZs/EyQlaQjZ+/6pMdlH5tBzPNDdlyj4YED4rrOmbfoO+1B5nQRKA9FTFuW19mQ4CtGxbY2g2cJrUq/hSnIm1wtigNzqZUQn2JSOIXo7qUiMK9V/tEPhTx9yaCHrStNdnAO5ptDzy5WhlXWjHmSgElLk3Jq0JwWnMDbE87fXRG406q5pFw17lkxe2q9Ztr1WVqCPTafrp2ihtotg+Q+OQxXuF1YIsSmhmwpAPBOdcpDQia0GBGJHRX0Aert5/cRirUpIf9i7SIZ2ibpwExCZLgW9BZ5ZbYgxSQHxzQYbxESRi/8ldw== 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=S8lycJUP12YSt6T5Wbpdmvdqu/DvfiQPPEOn+K5M3nA=; b=ecIZgMieWg7NVgTYkd/T5d78nEJtd9L2Srti2Ft8KJ13l0jiSzjHsmETA5ufbyt02HhuiwMRzp4w76qnaW3Zp9yp3QM9rwYwTl5ZZnesPROJkj2Qb+04ddTHDrQqzTZMQR72mCxPSLy9CjOfUSAPw7M7enHXwEs4C4+awKPVJXinsLMqZVFffdFPA26OC4Z2heKVtwUVfllcBGVCsW9lgOtMGzFe6TjeHIvrYOeFk1i4hPAIx4SoqsfwuxpZSMF4QqE0G1eF5SkpKG26+Ch8KE9FWcsH45hlSoudNuPOQPQLKqZx6WRw/7Py4tsfy+EYnxhmDfVEZooq35tpeACzJA== 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: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Subject: [PATCH v2 3/3] AMD/IOMMU: iommu_enable vs iommu_intremap From: Jan Beulich To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , Wei Liu , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= , Paul Durrant References: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com> Message-ID: Date: Thu, 21 Oct 2021 11:59:02 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: <09137aa2-649f-08fb-ba68-75f8eb16fc63@suse.com> Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AM6PR08CA0030.eurprd08.prod.outlook.com (2603:10a6:20b:c0::18) To VI1PR04MB5600.eurprd04.prod.outlook.com (2603:10a6:803:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c195caa6-bb85-40d0-3d39-08d9947969fb X-MS-TrafficTypeDiagnostic: VI1PR0402MB3774: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZPm5fOAi8XkcSh1CGGBD7Ni6F8RstVm148CF8bltNoqexU/0aAJ/1a449cgo6eHo51UvHbLNDXpSwKv/t8WgcEbB0/KnmARaLpRlLvRFbCwAb8laPqjpxTAgdU4csod5qIVbKGCbLRGJoHX4MWRifVmWAfgrZZUnwdbeGF34cATfEYtIk/WDqQQPGSG+72mcU874nVE6UQuJ8E4laD2C+RmF6OZw01PK3KewgMymH/0Y06SMbKARgp5R/JV2kNMJN66X4zxOQ50KVykcUKlmVYmllWKbxgFG8BvRm0qqQ3mUtj9tr861cSwjNA/BTKs+/u/xn+gPCJvgP7/7WR0OhN155NDGcl568v2LhX7QVaYlCxZPcq3QFHv1W9fXKX3kXDMcY0TSx8mJca5C2JeKi9J9VtVBjPL6xGP+14umIK2dH6Cw4yC73SmAgoaSpCHG1B31OBIQ7pR251TlJIW3MXQGvEcYCFEbnxhArQgitbdfopkNq/Vg74SmKngmrXEIpKne/v2V81tozO/lg0RWoCxzC0lN9I7aQLgh6opRoWVI2VnsTJCqjkMOqlv/7NICRmggfpp01buSlPM+jQRlHFVmz/8Y01zVqenf4g+Aj0E0NtD82MZ7F8l7zqQCZZPRany+YOJk5tEYjk4ncqMH8WBwj4S6OnvtyIPhq8a0OQWELrE22gRoq7G6NBt22iXwsXWw019DQeJy6WdvLfJXL8l5+FcgM4hUmFaZKHHv664= 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)(2906002)(316002)(36756003)(16576012)(83380400001)(86362001)(6916009)(8676002)(8936002)(31696002)(31686004)(186003)(66946007)(66476007)(66556008)(26005)(38100700002)(54906003)(4326008)(6486002)(956004)(2616005)(508600001)(5660300002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dDBKdHJUOFMwZ2dvTEFGWW1mb0FXK0JqQ1ZSOHRMUHhTQjNQZUQ4MlVOdTdu?= =?utf-8?B?dHMvTU1qNVNSM0Zwa1ErNU9MT1FBay9PWUp1OVZZZVA1aVRSOWZ0ZldLVjVn?= =?utf-8?B?eFQ0N2tFWUlUTCs3bFdKbVVjRkFmNDludzlBQ3lZMHhVdTRIQlJ4cXVEVmxB?= =?utf-8?B?TWUvSE4yUVlYSThwR0F2MjByNE9FQ1dDTlFMZTRvb25acG45dEg5ZlVYdFlN?= =?utf-8?B?aUptbmV1eHVabksvaUtRNlpEcWtMNUhQTTNKejVFbTQzckhEdWpWbHFBS3Vn?= =?utf-8?B?VkFRQnlJY1BDTExqZGRYVFhMd1k2UGhBQUZQcTV6MTNKM0lQRUpVaFd0M3RI?= =?utf-8?B?bGM1V09RLzZ6L2JmT082ZkhKVWROdkNCUGZBMytJMnU2NDNuK2JZWXA0d1ZW?= =?utf-8?B?WjlEQUNrSTV2TnoxN2p5RGp5bzFRNU1qOHBucHd0SjliNkEzUVU3MU5NOUp4?= =?utf-8?B?N1A4d0UxeGxqbkdZWGRrbVMyMUxhK3d5bmJZcEpab212ZmhBUUR2RkxISjEx?= =?utf-8?B?ajRhbUIvWWUzNVNYWmVIaEVSLzVYQktpZ09FZkpHMFpZWU1mQW5wYjlFbkc3?= =?utf-8?B?b20yb1lIWDZLWExLeVFKVWJiRDhWS1d6MVF3Z1hkcEllWk5lcG1wQi9xamQ1?= =?utf-8?B?SGJJRFNIc0tLNDBNNDQ0SWFTRkNvOXRhV2Y3K3lmVHhPN0tBWklhY2o5a2ZB?= =?utf-8?B?clZPNGY1VENVeEhrWmlGNUNoUkI0bmlOM0ZUdnpyZldNTkdSRXFlYTdyQ29l?= =?utf-8?B?Z293bldDVWpReGlFdHpialVVZjRPUFpNYS9yeDROOFZHdDhXangxRTE2Si9p?= =?utf-8?B?OG5MYWQ0SlhWTTVuNloveU41bk9ib0ZUeGtOalRtOEE2Q01ud2wrODRaaXc5?= =?utf-8?B?Ly9tZUdWYXdzZGxxbEtVQlVlVWIxVFZhWlZvRitPWGtxN3RRbmlyYnUzUUh0?= =?utf-8?B?Smwvbm11eEh5YlcvcTRvV3VBQ1poV09Ta1I5TExNSlhhRHZVUktiVHIrZUNu?= =?utf-8?B?MU9VN1hpQ2dNWWFqN0I4NS9uWlQvM1pGQndOenlmSEI2TGZNdnlXbFo5ZjF5?= =?utf-8?B?eG1JdG5lTWNWL3VlbUJXTGU3SVJpSWVFTjd0R1pWdUhvbDFXd1oxa2RjOXRK?= =?utf-8?B?WnZEWXhPemw4TnBFQkxrZU9Gd3pqc2hOVnNXQ09VQlZDTnBaL2VKNXU5UXR4?= =?utf-8?B?R3FmY1dablZOS0Y1NktNUE01cjVCSTVVNEErbEZJNDBWaXlZWS9rVUpTNVkz?= =?utf-8?B?KzNKQ1I3dStiZTNuUzhLeWpzUmM4MWxQcUVmYUk5bnlIUEl3bnVqYXRuRmZC?= =?utf-8?B?VXptTExtVXpqN0Jvb1ZKTnFqZ1N3d29sNmthTW45aXdFdUVVNDJkU0MzSVFV?= =?utf-8?B?V1lYSlROUGhuVVBHVEg2Zi9oNmVxOVpFbG85blZFczNLWmYrMU9sM0oxdFJn?= =?utf-8?B?bnpwSFcwKy94V0JPYlRGWTYxajlndzlWeWlqR1BDYVhFVDIrV0JUZmtWeEU5?= =?utf-8?B?NEZJZkdCQm4vY005UG5rWXU2R0dzRUhqYmlISlRJQVJvSDJFazkyWmFUaHN0?= =?utf-8?B?Ty9zNnd1b0hmZW91bzdlb3JUNmV2Q3NBVnJISjN1TkFVcXhDZFJ0ekNlZnQ0?= =?utf-8?B?Y0NnK3pNZ0VZZEpxc25OUUZKd0FDYktlWWZIa2JwZXhsNDV3MzRTSEdTWXdq?= =?utf-8?B?VzF1V1VqYmlMK2ptVmhwZmVJdTJnS0R3S0VlQzB6eS9WdDRTZUdqQnk0bXdt?= =?utf-8?B?NjhXZWxSNmVyNFY3TngzL2dyL2JZaHRybi9JZUgxYTE2dXBza0pOT0lXYTUr?= =?utf-8?B?UkR2ZkZ3blRHR2l5cG1hWGtIZUQrU1FVWHJDaWJOM0NlQVZYc2EzTzhUV2VC?= =?utf-8?B?QTZTNVYrTGpuOVBMekNYQ3BXVVJzT2JmRHowRTI3eHpVcXNDcG44ODFWM0s2?= =?utf-8?Q?vakPb+9bRz0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c195caa6-bb85-40d0-3d39-08d9947969fb X-MS-Exchange-CrossTenant-AuthSource: VI1PR04MB5600.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Oct 2021 09:59:04.0651 (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: jbeulich@suse.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB3774 X-ZohoMail-DKIM: pass (identity @suse.com) X-ZM-MESSAGEID: 1634810370171100003 Content-Type: text/plain; charset="utf-8" The two are really meant to be independent settings; iov_supports_xt() using || instead of && was simply wrong. The corrected check is, however, redundant, just like the (correct) one in iov_detect(): These hook functions are unreachable without acpi_ivrs_init() installing the iommu_init_ops pointer, which it does only upon success. (Unlike for VT-d there is no late clearing of iommu_enable due to quirks, and any possible clearing of iommu_intremap happens only after iov_supports_xt() has run.) Signed-off-by: Jan Beulich Reviewed-by: Ian Jackson --- In fact in iov_detect() it could be iommu_enable alone which gets checked, but this felt overly aggressive to me. Instead I'm getting the impression that the function may wrongly not get called when "iommu=3Doff" but interrupt remapping is in use: We'd not get the interrupt handler installed, and hence interrupt remapping related events would never get reported. (Same on VT-d, FTAOD.) For iov_supports_xt() the question is whether, like VT-d's intel_iommu_supports_eim(), it shouldn't rather check iommu_intremap alone (in which case it would need to remain a check rather than getting converted to ASSERT()). --- v2: New. --- a/xen/drivers/passthrough/amd/iommu_intr.c +++ b/xen/drivers/passthrough/amd/iommu_intr.c @@ -731,8 +731,7 @@ bool __init iov_supports_xt(void) { unsigned int apic; =20 - if ( !iommu_enable || !iommu_intremap ) - return false; + ASSERT(iommu_enable || iommu_intremap); =20 if ( amd_iommu_prepare(true) ) return false; --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c @@ -199,8 +199,7 @@ int __init acpi_ivrs_init(void) =20 static int __init iov_detect(void) { - if ( !iommu_enable && !iommu_intremap ) - return 0; + ASSERT(iommu_enable || iommu_intremap); =20 if ( (init_done ? amd_iommu_init_late() : amd_iommu_init(false)) !=3D 0 )