From patchwork Tue May 9 11:16:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suravee Suthikulpanit X-Patchwork-Id: 91522 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2803458vqo; Tue, 9 May 2023 04:28:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6tBJ1gJi0sG1bkYHeZbQ5KS0h9aLqh8b+JKlh7ivOoDwjz8fkGYCDKm415LLtnFmDUCsJF X-Received: by 2002:a17:902:8f95:b0:1a1:bfe8:4fae with SMTP id z21-20020a1709028f9500b001a1bfe84faemr14638773plo.43.1683631736821; Tue, 09 May 2023 04:28:56 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1683631736; cv=pass; d=google.com; s=arc-20160816; b=VK1/WTCOnOfrnfh6dn5Tel8dFqalg+Tg1ED6AwiB7hJPp1nj/t9jIo6P5PCfGf9QHs Q0C1bQnzZek7RcWQT/sMO2vOCGtg8x5INPAn04MVQ8zpUfgsnPPoCFeyjooBfp8onh3N z/IU5Wcok7tJ8KyZMtZlUkMFrPqdI9R+fkD4+bzW8DfWzxp/RpBE11V5EGvtIgtLZp2b y5xOclieWgNyhfczRDnF4uAmI4w2JCVsQUO5yjz5TalUAMjYwBoFSvYOjRTJDac9dLxN B3ngm0KGEqMZvYYEwEUH3ogQCqToHEwwli3uoSq5a1BJEuagaSMTuYtO0XBtrkLvAmiS 9tog== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=sAzvRax9ZO4PmRWi817wjYzFwxMNMYQCmsDk4g2BsW8=; b=IVO5FWpIT61HUW96SfA8MXO5KU//OwRuBhg4RGZJHOx9KwIWpu9NYl2kfFXLeLyogL of0EjmZDckDlyU8fFpXinxTk7UVD7Rz54ZFvvCiKuaq/pZKXN+tGjr7g29kllKMdveGi Cl7X7vPS7EI1oqegOmobwlPK/sWgWNohfB49fPyz/odKisTC1frfKwCPWQWqnYGxT+iw QQoLYgNcb/onrbynknqAZx6YKeacsz3zKt6lKhXxySe4qZqgZDEL7t+nQnyuaTNdleov MI+mDSl/c66hy9xGFkY27BWFQGP6GVULsCbugJY2AIjuXVRhxr04A/BQF8dF4zHqXmUZ owvQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=RE0WYlj0; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z6-20020a170903018600b001ac2eae0714si1408872plg.358.2023.05.09.04.28.40; Tue, 09 May 2023 04:28:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=RE0WYlj0; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234764AbjEILRi (ORCPT + 99 others); Tue, 9 May 2023 07:17:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234498AbjEILRg (ORCPT ); Tue, 9 May 2023 07:17:36 -0400 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2076.outbound.protection.outlook.com [40.107.94.76]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E2F8646B4 for ; Tue, 9 May 2023 04:17:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ONc/SpHJkv0v3hHI2bCCf+c9v926ntiRbzv2NBWmb61Oqn4NjTHnDmDEU71av4j1NT2aA1VeWxv4dHJgrgOin18SEXho89ZaJdzgEG8DcqcXNfVXZhvGOkFffrj7yFo+rrgazRU/lcrMiYwP8lswNS3ZhRDB5GMbB2CTd9sDz5KptgEkVxvyRXCqLsrd8BlrGyJC5jx+E4GRBzYPlnWfNoqlpAUiF19VuHt4aTaF/WQrmp6i3GHCN3Q+xX3jqWpuHJFnqi29HRjBL1FSiUG50juI5tZG6rIoWA8NHRH2b98Q0NFduej1H4+HplnrQqclycZmuNlg28x1F4rGvOUkNw== 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=sAzvRax9ZO4PmRWi817wjYzFwxMNMYQCmsDk4g2BsW8=; b=H5WWZ3ME7pWGks0bSXMDR/0jrVGGDLB22yk8XrEq32mBIUW33U6bVlzMslpEPlDJUW96mUN3u49l6afbh4S3hY+PhtuneoO33hNWoA8ODp/XVgJkRjMu1ZCYbCWPhbs703WblciX2en6nlL83nUR7/Y3yWKgP+wgqUUyFLP7Br2IVvJY+bJeL5eKYGZWCD8edgjOCG0i5yhhu4c8tPc3ta2UuUx+DdM3WVSKiKLHkPjQwc21hkqI0DbYzsUFmxKfVxtdkxGYZxeLMjxsmko9xW5SF8o+TGIcd7k8nOv4KIL2/XCV4YwjNQhHIibOsaYJ0Qob/mD03cZ9kDqGvdUCPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sAzvRax9ZO4PmRWi817wjYzFwxMNMYQCmsDk4g2BsW8=; b=RE0WYlj0Higus/JlTgISf7B1n0DLpB+GyI2AXgtfmUDjEOErbGfQxa+hkAGszNwUdGb1LifVHC5VbQWHIeYDRB6dV4RiMia0kYjhD5i1GagSME0z7AtxwhsxUun4lkHAR5UpSusiWiDWkhRFctZUr4YYtgeTsXuZAfqkULfYri8= Received: from BN9P221CA0012.NAMP221.PROD.OUTLOOK.COM (2603:10b6:408:10a::7) by PH7PR12MB7187.namprd12.prod.outlook.com (2603:10b6:510:203::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Tue, 9 May 2023 11:17:31 +0000 Received: from BN8NAM11FT006.eop-nam11.prod.protection.outlook.com (2603:10b6:408:10a:cafe::68) by BN9P221CA0012.outlook.office365.com (2603:10b6:408:10a::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT006.mail.protection.outlook.com (10.13.177.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:31 +0000 Received: from titanite-d432host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 9 May 2023 06:17:29 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 1/5] iommu/amd: Switch amd_iommu_update_ga() to use modify_irte_ga() Date: Tue, 9 May 2023 07:16:42 -0400 Message-ID: <20230509111646.369661-2-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> References: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT006:EE_|PH7PR12MB7187:EE_ X-MS-Office365-Filtering-Correlation-Id: dc7bc51b-472f-4233-8fb4-08db507efb62 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MeBSJD07Zq+PRQMxwKHjv2GrSOBTrQYdEfsJKX6UY0yJgMK263korBGx9rsLH7ozvwNB3VRLshzMAwm1rlm71ANtJsbggSrE5ciWL6F5SXgMMoKnRZFqogYI+yE1usOhnWeI/DxPmTgihtwuovRIsWu6dGfXxr1XVd9Zjlrv6aqPmSKboR/Y6yBOHtJPsn8VPGHdFBQTT0ZePfPYjjmHzlUaYMF3BHizjcnZVctkit5bMJJ7Ek9VZEYdLQ+5zew+wRXAAjOUxABj9B1bNBreUpuYwT3yXcDnc7GO7c2d6fQJEPtrctAYB4sB7cVmQvfXHHcAfPeEFsQd+R2/n6yc2pwjz0PFDA5XQKWFKYTbpMuWoOsd9F6Cl1iyu5PR3IzbnnYQkjguwnRAw8Qt9JNU1K2bIpmuA0tkAD13JTDwFwLqAzBEE8wowAK2NdjUx/m069qZ6UN7hiQXeFtPejYHvJtvlxIebNTqogspklG+IR9RDx9lnjBxyDaCXdxGcVW7Jp2pFM4NzZKt26DjIo3yaIuSPnPhF4JQ4WMFUNrzImqPTRXHPPLH17CpjlX8PrF5YeBLA+qpspnVvhw4MjzI19UoC8wdUluPSmBo/+IImyda5DdL628urAWlqm5p9RvxJoFuZWl+Xd+WZcBKTQWdHBGeb/14dLA28ooMJTrkGil/wyf4eCUYWOBtZh+eJ6FuEEF47C5LLZBDbLi8wmHnU54oY2YuP01kArxbBgQ91Mk= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(396003)(376002)(346002)(39860400002)(136003)(451199021)(46966006)(36840700001)(40470700004)(5660300002)(54906003)(110136005)(8936002)(6666004)(7696005)(41300700001)(316002)(8676002)(26005)(44832011)(478600001)(70586007)(70206006)(1076003)(4326008)(2906002)(83380400001)(426003)(336012)(40460700003)(16526019)(186003)(2616005)(36860700001)(82740400003)(356005)(81166007)(40480700001)(47076005)(86362001)(82310400005)(36756003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 11:17:31.6230 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dc7bc51b-472f-4233-8fb4-08db507efb62 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT006.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7187 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765415831914666009?= X-GMAIL-MSGID: =?utf-8?q?1765415831914666009?= From: Joao Martins The modify_irte_ga() uses cmpxchg_double() to update the IRTE in one shot, which is necessary when adding IRTE cache disabling support since the driver no longer need to flush the IRT for hardware to take effect. Please note that there is a functional change where the IsRun and Destination bits of IRTE are now cached in the struct amd_ir_data.entry. Signed-off-by: Joao Martins Signed-off-by: Suravee Suthikulpanit --- drivers/iommu/amd/iommu.c | 38 ++++++++++---------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index ebb155bfef15..4a3a7346ab21 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -3700,44 +3700,26 @@ int amd_iommu_create_irq_domain(struct amd_iommu *iommu) int amd_iommu_update_ga(int cpu, bool is_run, void *data) { - unsigned long flags; - struct amd_iommu *iommu; - struct irq_remap_table *table; struct amd_ir_data *ir_data = (struct amd_ir_data *)data; - int devid = ir_data->irq_2_irte.devid; struct irte_ga *entry = (struct irte_ga *) ir_data->entry; - struct irte_ga *ref = (struct irte_ga *) ir_data->ref; if (!AMD_IOMMU_GUEST_IR_VAPIC(amd_iommu_guest_ir) || - !ref || !entry || !entry->lo.fields_vapic.guest_mode) + !entry || !entry->lo.fields_vapic.guest_mode) return 0; - iommu = ir_data->iommu; - if (!iommu) - return -ENODEV; - - table = get_irq_table(iommu, devid); - if (!table) + if (!ir_data->iommu) return -ENODEV; - raw_spin_lock_irqsave(&table->lock, flags); - - if (ref->lo.fields_vapic.guest_mode) { - if (cpu >= 0) { - ref->lo.fields_vapic.destination = - APICID_TO_IRTE_DEST_LO(cpu); - ref->hi.fields.destination = - APICID_TO_IRTE_DEST_HI(cpu); - } - ref->lo.fields_vapic.is_run = is_run; - barrier(); + if (cpu >= 0) { + entry->lo.fields_vapic.destination = + APICID_TO_IRTE_DEST_LO(cpu); + entry->hi.fields.destination = + APICID_TO_IRTE_DEST_HI(cpu); } + entry->lo.fields_vapic.is_run = is_run; - raw_spin_unlock_irqrestore(&table->lock, flags); - - iommu_flush_irt(iommu, devid); - iommu_completion_wait(iommu); - return 0; + return modify_irte_ga(ir_data->iommu, ir_data->irq_2_irte.devid, + ir_data->irq_2_irte.index, entry, ir_data); } EXPORT_SYMBOL(amd_iommu_update_ga); #endif From patchwork Tue May 9 11:16:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suravee Suthikulpanit X-Patchwork-Id: 91529 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2808326vqo; Tue, 9 May 2023 04:37:33 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4w7Ub8Ulr7QQGmr2S+2pVEAw8U3Ugh6bgnn7SaGVEfXKn5sQhgrgicaZj3f2q+V0yc9o70 X-Received: by 2002:a05:6a20:a112:b0:101:1f8:735e with SMTP id q18-20020a056a20a11200b0010101f8735emr3881313pzk.0.1683632253636; Tue, 09 May 2023 04:37:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1683632253; cv=pass; d=google.com; s=arc-20160816; b=Re5PaeULpokAXkYM5TYNcOWAfYwR6AV3w6YdPzu++NgKUz6FPAIooaHWaeP8IkC0pb nwggkvJqR2+2rErU97/f81pXJDI/c2gHA6a6Pe1einrSfU5gJMrYyhul/Gstka1DYm7Y /6fhagloeXroYmDb/UPoZFvRsyA4qacZ54BLD9On4rfZLuuvB9ZFqu20Yv9JI7U9dqpZ BMdM8g9a0E2y6vbbwZPNegpJeV8E2AGxdjpKsejoO73fbeRGwiduDFw2nTCJRi+At4fY VEmMtSwR588b0vyBdWjM9zW/b93Ujdg4AbJEs1dGlRDeG64vMwiaLsgQ5DcDdhzReFU6 hXWQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=xq73+IZrlw9jHoBVbO87NURLM734QIXFzrUPsqkI7Ro=; b=NHLY5lxOfamGw5wTbSSfLTGASGj7JF11lV0acoXnPoK+lTePxJEddJCNpoveLZ8UtS xy4UIiUwasDKRyXbGR6QgA4174EVB+l5VMEj6lSJpFkGQkiaSYg2Z4OMVSza/fq4MwZh 5p8L2mVlvjPbJG/lWAOtuw9o/vGRRGY5GBqJ20hvTdyN6xKksDPxAFrjYPuWrZWGX07t p4rftu2W5YiXDkChW5ZaQSGdLSYVSEaw4/TDYM+92p7eweTB2jqQf03ytnV3L3p5FUYA VMIUvzryMl+SEdDQgZPZEcum35SZed1BHKOaAApeAjLyvtfsLZY2mlJr3o+Uieb04Lm2 Qb1Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b="ke/+HaYZ"; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bu17-20020a632951000000b005303d78c47asi1114983pgb.726.2023.05.09.04.37.19; Tue, 09 May 2023 04:37:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b="ke/+HaYZ"; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235059AbjEILRm (ORCPT + 99 others); Tue, 9 May 2023 07:17:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36988 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234625AbjEILRh (ORCPT ); Tue, 9 May 2023 07:17:37 -0400 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2088.outbound.protection.outlook.com [40.107.237.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 55F2446BD for ; Tue, 9 May 2023 04:17:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=B+6Xt8GIie9liSRr5kam6ThoUToLoWyA75DoWCNbvcyeT3D3Mnv5j/HOYeVLkCwRavbxQIDEC8HhrglnOhm+BkWojyuhdWMzw+K1yumPE1t6Mdsqu6p7x7G3EGPI091B+nmndaCACw5gfURvMFJfs7gOGVM9X7VEdGb2fnwmZXMc6G7uXIbtJMnN6NSBHSj3ujsLscOxlSL+JvgQ2IPCkljVhUBi8k45rAbpVjO5fpFoy5uI/qDYdmk2fG1lAn6KH+JESJaNfIm2uFi0J7JxPPNEP/bo35kWdPlFmlYXqvMVvi50Xk6ZwBYxlNHgyKyGGdm7E95VZTJ84dmFoIoD2g== 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=xq73+IZrlw9jHoBVbO87NURLM734QIXFzrUPsqkI7Ro=; b=YM/OxELfiXp45IuS4KFotZIiDh4oHg3groRsXHjE7AD5GtyKUEHLfRNJ7KV2G79tSPIkjGjAc6HGYjL3fLL3pks5TV1y5QL6DxhIi8XWn/VQW7rteqo5l8W1tW4AwaVMsWNPpBcI3XMHH+f2X8IpNputiLP9Na8S3tfETFDc95rHgJOcpkrcEleGaJv3ZJike7KEW0udl0KRZxO3bZa89n8XIsPB++bbvbtVWBGo2MUAE+V3QcI8ld2YroPNg8/QL9sYw85xuWGLsiSoWLnrJwKkYcGfFQoE4W9lZSDePhi91mAFm6ta30lnoatBbuhPCSDe5R95AOPFPqUBVEW+0Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xq73+IZrlw9jHoBVbO87NURLM734QIXFzrUPsqkI7Ro=; b=ke/+HaYZ/wCSbMhfrVBqkTltSDJwcnB6d+0WkiP/UD96duLiIOyz2hWwh5e3XBvUCcowbdQ+y6lDoA70OlfsooELHrNlbZIaLgk0uZcz3yf2xAZ2QCnKez87NRhl4T1qO979JmmqWyR1g2QuwzQSqZx+abjCQrUDTtyOI/33HFo= Received: from BN1PR13CA0029.namprd13.prod.outlook.com (2603:10b6:408:e2::34) by DS7PR12MB5813.namprd12.prod.outlook.com (2603:10b6:8:75::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.18; Tue, 9 May 2023 11:17:33 +0000 Received: from BN8NAM11FT089.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e2:cafe::df) by BN1PR13CA0029.outlook.office365.com (2603:10b6:408:e2::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.18 via Frontend Transport; Tue, 9 May 2023 11:17:33 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT089.mail.protection.outlook.com (10.13.176.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:32 +0000 Received: from titanite-d432host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 9 May 2023 06:17:30 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 2/5] iommu/amd: Remove the unused struct amd_ir_data.ref Date: Tue, 9 May 2023 07:16:43 -0400 Message-ID: <20230509111646.369661-3-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> References: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT089:EE_|DS7PR12MB5813:EE_ X-MS-Office365-Filtering-Correlation-Id: 79e38e9a-20cd-4f5f-c3da-08db507efc2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ummg7Bp7LIoVQkz/0wpAK0f6gnpl+NwPyaUwToURUsflgoPAHmz4fiTwF4bv15rlUsb5wwON+4TAyOB3cg4ZSYrg67jmQK5T6pTJ1iQhioivMY7JwrhorEXQaFpYJzY6hc96eCbvSElkkdAcqxLWhfhzjXro0rvFBsgkDRG98cbKCUyP1/UZoBNY/j3pi7wlOEpKeZbh2lHaDtgQ6MP3WJrLe7Ykz46Fh0ZhAqxv+yKU2hIqGfcohznOmlNQ1A+8DhUQqhk0TQ1o209olb/0gFwZadBYcJF/jfC0Pf6rh4sKp78uYrjo5hb10GSfGl4RvqEsDJPIk5X4DQWwiKoSbIxfeu0d5oLDd7HuQMX8d/SMXiRm5zP2NwS55gguht51yfOMWdBGT7GGG/Kz/V8lq0/gB11IFCG/nF59vpuVR3esncDNZROlV1RdaB6MapzAHTUYzx0sPhBqbixuz62rND0NVDIkTJCQoxhcSxUPg9YY+ycXskqtf6wdHIHSmt1Tb31cH9f/I4iRjJUuDOdTPbBgD5O3GcTVhE5IyR6NkdMzywifLr2QcDHkRhZRic4XcEqkRoBAXf733W/khSjYFfgNisBWs+1Wnj1ZuXFxQ4/c+63+E/+T9cKBaVWxXp995JGrFPIsmIALozw+bMULgaJ+A/jTAZlbTPiYvlwAXfp5g8f5KSZruZ4M224fX0Es5yB/4ufsPE3TgzOtlaRw0xd/lZWdUKKmzlT2TFywPbHoxh6myv6qEjHcV9U0nwsMmrX/qCAcTKlw5L1btEW85Q== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(396003)(346002)(136003)(376002)(39860400002)(451199021)(36840700001)(40470700004)(46966006)(186003)(26005)(1076003)(83380400001)(36860700001)(47076005)(2616005)(16526019)(316002)(4326008)(70586007)(70206006)(356005)(81166007)(336012)(426003)(40460700003)(110136005)(478600001)(6666004)(7696005)(82740400003)(82310400005)(86362001)(54906003)(40480700001)(8676002)(8936002)(5660300002)(44832011)(2906002)(36756003)(41300700001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 11:17:32.9834 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79e38e9a-20cd-4f5f-c3da-08db507efc2f X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT089.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5813 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765416373930218050?= X-GMAIL-MSGID: =?utf-8?q?1765416373930218050?= Since the amd_iommu_update_ga() has been switched to use the modify_irte_ga() helper function to update the IRTE, the parameter is no longer needed. Suggested-by: Vasant Hegde Signed-off-by: Suravee Suthikulpanit --- drivers/iommu/amd/amd_iommu_types.h | 1 - drivers/iommu/amd/iommu.c | 17 +++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/drivers/iommu/amd/amd_iommu_types.h b/drivers/iommu/amd/amd_iommu_types.h index 3d684190b4d5..a0ff1e852efc 100644 --- a/drivers/iommu/amd/amd_iommu_types.h +++ b/drivers/iommu/amd/amd_iommu_types.h @@ -993,7 +993,6 @@ struct amd_ir_data { struct irq_2_irte irq_2_irte; struct msi_msg msi_entry; void *entry; /* Pointer to union irte or struct irte_ga */ - void *ref; /* Pointer to the actual irte */ /** * Store information for activate/de-activate diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 4a3a7346ab21..0c4a2796bb0a 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -2999,7 +2999,7 @@ static int alloc_irq_index(struct amd_iommu *iommu, u16 devid, int count, } static int modify_irte_ga(struct amd_iommu *iommu, u16 devid, int index, - struct irte_ga *irte, struct amd_ir_data *data) + struct irte_ga *irte) { bool ret; struct irq_remap_table *table; @@ -3026,9 +3026,6 @@ static int modify_irte_ga(struct amd_iommu *iommu, u16 devid, int index, */ WARN_ON(!ret); - if (data) - data->ref = entry; - raw_spin_unlock_irqrestore(&table->lock, flags); iommu_flush_irt(iommu, devid); @@ -3117,7 +3114,7 @@ static void irte_ga_activate(struct amd_iommu *iommu, void *entry, u16 devid, u1 struct irte_ga *irte = (struct irte_ga *) entry; irte->lo.fields_remap.valid = 1; - modify_irte_ga(iommu, devid, index, irte, NULL); + modify_irte_ga(iommu, devid, index, irte); } static void irte_deactivate(struct amd_iommu *iommu, void *entry, u16 devid, u16 index) @@ -3133,7 +3130,7 @@ static void irte_ga_deactivate(struct amd_iommu *iommu, void *entry, u16 devid, struct irte_ga *irte = (struct irte_ga *) entry; irte->lo.fields_remap.valid = 0; - modify_irte_ga(iommu, devid, index, irte, NULL); + modify_irte_ga(iommu, devid, index, irte); } static void irte_set_affinity(struct amd_iommu *iommu, void *entry, u16 devid, u16 index, @@ -3157,7 +3154,7 @@ static void irte_ga_set_affinity(struct amd_iommu *iommu, void *entry, u16 devid APICID_TO_IRTE_DEST_LO(dest_apicid); irte->hi.fields.destination = APICID_TO_IRTE_DEST_HI(dest_apicid); - modify_irte_ga(iommu, devid, index, irte, NULL); + modify_irte_ga(iommu, devid, index, irte); } } @@ -3508,7 +3505,7 @@ int amd_iommu_activate_guest_mode(void *data) entry->lo.fields_vapic.ga_tag = ir_data->ga_tag; return modify_irte_ga(ir_data->iommu, ir_data->irq_2_irte.devid, - ir_data->irq_2_irte.index, entry, ir_data); + ir_data->irq_2_irte.index, entry); } EXPORT_SYMBOL(amd_iommu_activate_guest_mode); @@ -3538,7 +3535,7 @@ int amd_iommu_deactivate_guest_mode(void *data) APICID_TO_IRTE_DEST_HI(cfg->dest_apicid); return modify_irte_ga(ir_data->iommu, ir_data->irq_2_irte.devid, - ir_data->irq_2_irte.index, entry, ir_data); + ir_data->irq_2_irte.index, entry); } EXPORT_SYMBOL(amd_iommu_deactivate_guest_mode); @@ -3719,7 +3716,7 @@ int amd_iommu_update_ga(int cpu, bool is_run, void *data) entry->lo.fields_vapic.is_run = is_run; return modify_irte_ga(ir_data->iommu, ir_data->irq_2_irte.devid, - ir_data->irq_2_irte.index, entry, ir_data); + ir_data->irq_2_irte.index, entry); } EXPORT_SYMBOL(amd_iommu_update_ga); #endif From patchwork Tue May 9 11:16:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suravee Suthikulpanit X-Patchwork-Id: 91521 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2800827vqo; Tue, 9 May 2023 04:23:40 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7F7/C0EXrrLm2MmyHXno/Ms5f6kmlzXdAcFswYl4gh6v2qSlb1g9fWp1o0GoAS1a4xumv3 X-Received: by 2002:a05:6a20:a128:b0:ef:242d:54e3 with SMTP id q40-20020a056a20a12800b000ef242d54e3mr18062044pzk.21.1683631420388; Tue, 09 May 2023 04:23:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1683631420; cv=pass; d=google.com; s=arc-20160816; b=G/to4JgbsOZNdrhdUAEwvrGnbbWvOLsb0rnW1+8qctMWXjvu+WlcGJbgkvahCX6GV/ wdsfTyufu3mH8btzeKrC6ovQNtOhVQvxwFAOPFZoCr4iVRh+mATu6b7qppyWb2017VDu ++Eq58mF2gYYtwtOm2XalvsMFTHi/Fp1FTpH62W4T9VRCqyhvyu0XxhH1jJQcToedHQ2 aPCdIDWKonWjEzvszVDVN8GHd+UkxQILvZPy9Iy+Bw9FIAHQ/XO4zaua9NuKF/m34E0w +SSNBaFA5ulO+kthRVOKMLr8MT7gg575BuIMlTGSWUtEOu97xgAhMUooXZyWPcgMIvjW RB9A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=na8XY8+v+09hLTC0mp6CNyfzjwdxw/Q+4594X4rFQQw=; b=hsksPnV47ID8JL/NWYL4Qh01McT3GwTuVuVyylDMdKiemh80W7646YqY5fszuuqMre 2y5coB0UZg9mmdKy2fDncNxaFWXtUl9dra8yvBR/FW/LGDptfW8/145ZPypGjYZmVxr2 sNSWP590Q3GpAKHDiQfIzZIjbfAM2A5BIe7Diw31Tkk6Y91xJSbfxscXBPZEj9eNplRu dP8eUf/vTyrB1bmqDG66XJ4cmH19wBtj3zp4MD7uP91WKUWdBeSddevLe8FIFJwmhjSA JeOYOC61SADHSit+cJ2eSlIG6lwkIqbA+Du9sGIeVNRPY/EK/Emqrb6O//PD7xObacKC 9+jw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b="wDxMlx/3"; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c19-20020a637253000000b00525025dfa5fsi1223787pgn.377.2023.05.09.04.23.25; Tue, 09 May 2023 04:23:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b="wDxMlx/3"; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235164AbjEILTS (ORCPT + 99 others); Tue, 9 May 2023 07:19:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38792 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235110AbjEILTH (ORCPT ); Tue, 9 May 2023 07:19:07 -0400 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2045.outbound.protection.outlook.com [40.107.220.45]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 382D9559D for ; Tue, 9 May 2023 04:18:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X/YmRbYKNH3xsu0cnOBeVBDshBzKIa/fDivRcUpzv73l2/9xV76T44b18+ae+6my+xN8SEfW0xWe0QtAeajdyGg8npcz9hlqgKRKUrcgGMOXawZq+u6siDrnIXH2kqJ0lc8M+5mYivajAxAwJ1ORHbsePqikoT1vIQx6mBNm7C5qdSzDUeVMCIJj9ZfFgVBmFr+j1/kDCB/SaX+n6qWz4pEGWWWB96iIIO6Debac995jWts+sB/rI+Cby+yY4TcKHe8S4gOTlqSYk0yv8VNlcoapxyIMfj83Beoj8ECbaFAKxBAqbOyjNqY2O3h93jX/hcrEWsEgL4QURvWt8Ih5Og== 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=na8XY8+v+09hLTC0mp6CNyfzjwdxw/Q+4594X4rFQQw=; b=k3qUKeBWoNoQw3z4C3qZXVZaUXpNaPCgpv++oljBlenmaJqDmzq87/ZDBzITYaqdDdAB06rhwzpPtXxChwYcHs/hL6yn9TUDjN9x/WK+kRO2LOT5cONGGQYgj9UIYkzpyjdEBapOEh45M1Iqlx3Rt0ZSVCVp019YEGArXsoHYcOkG8Psi6w2GM5yKBpC+OQXbA51EApCG92LRSe9hjaloHyTJgJABQNNeadHoZjRyiIIUI+lLz6H2BgTpscucOr/oMFR0yE/7GT0vA+/WXwjTNuSevlCmX4i7BQOuwVhKOdr55u/3AciskHbYFSKDAG4lVR2FuVIPS87i33ex27CrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=na8XY8+v+09hLTC0mp6CNyfzjwdxw/Q+4594X4rFQQw=; b=wDxMlx/3CDmEQig4pr/ZX6OQcBHC9cvtajWxAbbX8xsTSY2801hUOHevyt/7TL+A/KZseXd+pajrndP4uBLCuxqeearFIGYc2NM4Q5VZvDA/yvS3N6EQz+h9HZj63xBmILP6+wq/kUEb06plZaYGDBbyJS7KpEffVAqpJc0r0No= Received: from BN1PR13CA0015.namprd13.prod.outlook.com (2603:10b6:408:e2::20) by IA1PR12MB8224.namprd12.prod.outlook.com (2603:10b6:208:3f9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Tue, 9 May 2023 11:17:34 +0000 Received: from BN8NAM11FT089.eop-nam11.prod.protection.outlook.com (2603:10b6:408:e2:cafe::4d) by BN1PR13CA0015.outlook.office365.com (2603:10b6:408:e2::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.18 via Frontend Transport; Tue, 9 May 2023 11:17:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT089.mail.protection.outlook.com (10.13.176.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:34 +0000 Received: from titanite-d432host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 9 May 2023 06:17:32 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 3/5] iommu/amd: Introduce Disable IRTE Caching Support Date: Tue, 9 May 2023 07:16:44 -0400 Message-ID: <20230509111646.369661-4-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> References: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT089:EE_|IA1PR12MB8224:EE_ X-MS-Office365-Filtering-Correlation-Id: b84cb7c7-5881-4d04-b4bf-08db507efd08 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WsYf1YGX80BtcybBQxjtVgD7bZqvipAUu0fZwrCOxTmSAP7v7atUFzVOc6iNlrRjIBk5+/+3cbEMQJSMvwJUHWVeBKZPC4vqF1LizDPle5lS8La4jaqGU2gv0xsfsp9cEzKoQ9IWnYJs1E192V82rChrvf7yXKJnuJiO7IT/T73Xfl+5eNVMtMRufYFjdrttzw2C5iGpasGP+yVPt40rv8dfhUyutXT3v84Rr+scoEPGlqrGksaXM/anoF1uxyUw3rRYQr3zfif5clumqhekG3diQ1zxYbSFdhoZRIkn380GysJknif0vqcsfSaw6XuBSZMrm7uR6BvO6EQ/Mz7LxmsIK4nq1ZO6awKFpjgbkBJ00DYa2Cf8gTdP1iD/wtydLc4LD+AcYX+B8O/u9ju2vcIfdjHfO3dpMl29L+dQAf0R6pE1Hrw+7195A8dRv4khyhSlBiYwKSeqeF9Gk2Mnonomru5/SrWTTUkokYw6w1KvLSmHBSnAih/Xfhmww3d46MmEzLUSD9mZ9gMGr7GqIKH3F4225QytHvAyPrtF7WIec5EdnHr8fh/eGVGfg0uVnEhdRpy7pxjZsULZcC0TDrSWNJ8QLoSUHJIBynxq21b/oYBtBtslBWYOTw3fuJI4vwXyzCmtzRkftH5912/ZRQlLjUzNjgf+uWTu1d4dHu14kRUkpv/gB+VdjNZBga6ty0OjcLtDyyf/SuYT8hNcAeyw+Uyyn8U/gZ3ZFHmufjo= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(346002)(136003)(376002)(396003)(39860400002)(451199021)(36840700001)(46966006)(40470700004)(54906003)(4326008)(2906002)(8936002)(478600001)(316002)(5660300002)(8676002)(41300700001)(16526019)(110136005)(6666004)(70586007)(44832011)(70206006)(7696005)(1076003)(26005)(83380400001)(186003)(82740400003)(47076005)(40460700003)(36756003)(2616005)(36860700001)(336012)(426003)(40480700001)(82310400005)(86362001)(356005)(81166007)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 11:17:34.3896 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b84cb7c7-5881-4d04-b4bf-08db507efd08 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT089.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB8224 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765415499978882924?= X-GMAIL-MSGID: =?utf-8?q?1765415499978882924?= An Interrupt Remapping Table (IRT) stores interrupt remapping configuration for each device. In a normal operation, the AMD IOMMU caches the table to optimize subsequent data accesses. This requires the IOMMU driver to invalidate IRT whenever it updates the table. The invalidation process includes issuing an INVALIDATE_INTERRUPT_TABLE command following by a COMPLETION_WAIT command. However, there are cases in which the IRT is updated at a high rate. For example, for IOMMU AVIC, the IRTE[IsRun] bit is updated on every vcpu scheduling (i.e. amd_iommu_update_ga()). On system with large amount of vcpus and VFIO PCI pass-through devices, the invalidation process could potentially become a performance bottleneck. Introducing a new kernel boot option: amd_iommu=irtcachedis which disables IRTE caching by setting the IRTCachedis bit in each IOMMU Control register, and bypass the IRT invalidation process. Co-developed-by: Alejandro Jimenez [Awaiting sign-off-by Alejandro] Signed-off-by: Suravee Suthikulpanit --- .../admin-guide/kernel-parameters.txt | 1 + drivers/iommu/amd/amd_iommu_types.h | 4 +++ drivers/iommu/amd/init.c | 25 +++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 6221a1d057dd..f29dee600faf 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -323,6 +323,7 @@ option with care. pgtbl_v1 - Use v1 page table for DMA-API (Default). pgtbl_v2 - Use v2 page table for DMA-API. + irtcachedis - Disable Interrupt Remapping Table (IRT) caching. amd_iommu_dump= [HW,X86-64] Enable AMD IOMMU driver option to dump the ACPI table diff --git a/drivers/iommu/amd/amd_iommu_types.h b/drivers/iommu/amd/amd_iommu_types.h index a0ff1e852efc..486a052e37ca 100644 --- a/drivers/iommu/amd/amd_iommu_types.h +++ b/drivers/iommu/amd/amd_iommu_types.h @@ -172,6 +172,7 @@ #define CONTROL_GAINT_EN 29 #define CONTROL_XT_EN 50 #define CONTROL_INTCAPXT_EN 51 +#define CONTROL_IRTCACHEDIS 59 #define CONTROL_SNPAVIC_EN 61 #define CTRL_INV_TO_MASK (7 << CONTROL_INV_TIMEOUT) @@ -708,6 +709,9 @@ struct amd_iommu { /* if one, we need to send a completion wait command */ bool need_sync; + /* true if disable irte caching */ + bool irtcachedis_enabled; + /* Handle for IOMMU core code */ struct iommu_device iommu; diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index fd487c33b28a..01d131e75de4 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -160,6 +160,7 @@ static int amd_iommu_xt_mode = IRQ_REMAP_XAPIC_MODE; static bool amd_iommu_detected; static bool amd_iommu_disabled __initdata; static bool amd_iommu_force_enable __initdata; +static bool amd_iommu_irtcachedis __initdata; static int amd_iommu_target_ivhd_type; /* Global EFR and EFR2 registers */ @@ -2700,6 +2701,27 @@ static void iommu_enable_ga(struct amd_iommu *iommu) #endif } +static void iommu_enable_irtcachedis(struct amd_iommu *iommu) +{ + u64 ctrl; + + if (amd_iommu_irtcachedis) { + /* + * Note: + * The support for IRTCacheDis feature is dertermined by + * checking if the bit is writable. + */ + iommu_feature_enable(iommu, CONTROL_IRTCACHEDIS); + ctrl = readq(iommu->mmio_base + MMIO_CONTROL_OFFSET); + ctrl &= (1ULL << CONTROL_IRTCACHEDIS); + if (ctrl) + iommu->irtcachedis_enabled = true; + pr_info("iommu%d (%#06x) : IRT cache is %s\n", + iommu->index, iommu->devid, + iommu->irtcachedis_enabled ? "disabled" : "enabled"); + } +} + static void early_enable_iommu(struct amd_iommu *iommu) { iommu_disable(iommu); @@ -2710,6 +2732,7 @@ static void early_enable_iommu(struct amd_iommu *iommu) iommu_set_exclusion_range(iommu); iommu_enable_ga(iommu); iommu_enable_xt(iommu); + iommu_enable_irtcachedis(iommu); iommu_enable(iommu); iommu_flush_all_caches(iommu); } @@ -3411,6 +3434,8 @@ static int __init parse_amd_iommu_options(char *str) amd_iommu_pgtable = AMD_IOMMU_V1; } else if (strncmp(str, "pgtbl_v2", 8) == 0) { amd_iommu_pgtable = AMD_IOMMU_V2; + } else if (strncmp(str, "irtcachedis", 11) == 0) { + amd_iommu_irtcachedis = true; } else { pr_notice("Unknown option - '%s'\n", str); } From patchwork Tue May 9 11:16:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suravee Suthikulpanit X-Patchwork-Id: 91523 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2803519vqo; Tue, 9 May 2023 04:29:05 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ58xEEqxsqdf/ElGeL+/8ClPCJcZii4l9EFWvEDbKjLNWE037vxVqoH25sFIl9blyY+RegP X-Received: by 2002:a05:6a00:3028:b0:643:a841:887a with SMTP id ay40-20020a056a00302800b00643a841887amr16378373pfb.4.1683631745528; Tue, 09 May 2023 04:29:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1683631745; cv=pass; d=google.com; s=arc-20160816; b=xshxz6rg9LSbuiS6Zm/DyzNcUGh6soUb3Q2ucQ2O5gIyvMfrWqwHvXcwWeWG9W6+t2 yRPajKEEyMtdc4Swascu3dv1mlcBItVS3G6VL1rkZv82iNE4A2j+8wnhtTSioMD+3ghM st732AzDUJZiI4STtlQVMRVfvq4NIuByJogwMr6SRNuzqG8irNSYQ0NxGNcGWPTQTFA9 31l3N86eTa/S6Wmu29QXT7K6eBD2FiefQkoS9Plhrq6CGOyP+iunUQzvk8W9DUSbeygN C+FKoh65aKxy6B1Pl6usmXbFqmuhWU8qm4LaCPVjkUL176w5BAvhGbzx/cfXerMKFmUe BPbw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=DhGNxVBuLU8j6nRMP9u1WkiBJLLOolekgHbORFlHSAg=; b=SyN0xsRYXrRJkCbJZE6Pfuw9d1wjrDNvmevFq4ZjipShHBaxJCSVKX0CEDcmxiVxgZ TEOm/0zCEe4Ml14vwI21Wf/gAnsp72fJG2Su1mnJbfbizva4TxLm7pF2YoeLhAbQglPC cWBrvYQ5+XFV6nZ++1Msi3eQBU/6/TejtN8Ce/6mwApLe/EDGSrINF/1wSGPQJJuCDl3 r9kFB8of2H3xISE3Z2gofEqQ3xFkKdU7orlvtbpZZFivtYXIMWbyvQDUig2vzUqpQV5n vUk74rdx0FtxBizJpMcCTkJWS9v5Z2KvnDZFiMElGMO9iArRdGLEzk6MOo67d6n5zgbI PVgQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b="a//lRT4l"; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t22-20020aa79476000000b0064547f9483bsi2110763pfq.405.2023.05.09.04.28.50; Tue, 09 May 2023 04:29:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b="a//lRT4l"; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235376AbjEILRv (ORCPT + 99 others); Tue, 9 May 2023 07:17:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37060 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234851AbjEILRj (ORCPT ); Tue, 9 May 2023 07:17:39 -0400 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2066.outbound.protection.outlook.com [40.107.100.66]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 98C9846B0 for ; Tue, 9 May 2023 04:17:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iI2uYnl4g41/srZhLj10ZlgglX96Dn0RX+Ukfeg2Hy9XgCXEYDe1ncXMUqS6fnLQhaXsakZayGW1FwgVQnp7pkrSD8ZB7nZ4mX2eNvMaAJQ5OQwiM28/hBXclRnBIuZ+bM8icie10yZiZGVcikWiyFFkrkZEL3yzx5Mgq+n1kWf0zWnkJVhmTB9oOgClMJF4PrkzV9Mn6dpJlQmh4+aqutkL9X/qJYiqqFXp3gdW1H6Cj4p7dJxdxKVyrVvnZNmmM7oC+hSW44Ml6qZg+BFS1HC9HWtgkzcFQaDrzLwNoysA/Y/UnLMw7IK3u2Hq3g2LryNF7zqw9oju64cgmDJTpw== 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=DhGNxVBuLU8j6nRMP9u1WkiBJLLOolekgHbORFlHSAg=; b=LL6WaxnAfG9IhaA+HB8o6AmmWPl6dB3lJzOFQVSBM/ngVQFgsSj+ph8OejNcXddiv09MtAllDJFsCy+dBY4L6iqKR7Us9wiwghDvMl9z9hWLkSKKQMAv6sjvKurYXr5HvsrBdZs8YE4ItkCBUZWJtnLdD/eruonPIBLuHp9XFuWLuQHanZRe+03VN0QTEgLxkCXlpJJkPI9YAUSppi1UsetRvwsiqHNPUUHZx0cpL+1OCrKFHLCEg2V1cj2rvubaspWjCO8BBpI1Df2R55tPaIU9/4DoSE10uUFDDaEMfZr2GhcJELHPenGR9T3P7F1YS+MdoCEqmALOnxVNLKZMzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DhGNxVBuLU8j6nRMP9u1WkiBJLLOolekgHbORFlHSAg=; b=a//lRT4l7oNVwf3ZXTJM7zmnbvJWHSyzgp2wGnOarGAw2LnAvVqkWBPMJskt4OITMJ7HvxW0HjUmhCVFiiYqbwrWOde1vpl8QuuE5f86c0kS01AMiloDHlEod45Dn5A1Yot4M7jXVCHAnPAamtJPnIdciBwtO+hKqs0T4isLGMQ= Received: from BN0PR04CA0135.namprd04.prod.outlook.com (2603:10b6:408:ed::20) by SA3PR12MB7832.namprd12.prod.outlook.com (2603:10b6:806:31f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.18; Tue, 9 May 2023 11:17:35 +0000 Received: from BN8NAM11FT004.eop-nam11.prod.protection.outlook.com (2603:10b6:408:ed::4) by BN0PR04CA0135.outlook.office365.com (2603:10b6:408:ed::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT004.mail.protection.outlook.com (10.13.176.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:35 +0000 Received: from titanite-d432host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 9 May 2023 06:17:34 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 4/5] iommu/amd: Do not Invalidate IRT when disable IRTE caching Date: Tue, 9 May 2023 07:16:45 -0400 Message-ID: <20230509111646.369661-5-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> References: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT004:EE_|SA3PR12MB7832:EE_ X-MS-Office365-Filtering-Correlation-Id: a518cd2f-6fc1-422c-d293-08db507efdd8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V11yhg3vLvuAznKL4fqVe1v3p2vdg8PJy/8HFpUY6i5ab2oDrIAC7E8h8R/Yxd2ARA4DZvZUzxgo3g+yeLO3DdhYTDJJ3BKSU7cVlM/7xbVroXU/Npm417cF3m9FSH8bbDsyex/qGSlwQl78UEe8SLmdOt6EzsC38PM5Epyk259lR3VYBN7CWowY4uOX7V6b9xiDxk506LS4k/UFeVPQ/Qiu7TWLN65/kcCO3WB0pbzh+chCPg2M0AEutpMHReIdPfb4R0sEo8szcEBdNRBUSUZAXRrHaDINLdJlENjU6GkCs3N5W8Ei64kf/RCdVwtQqXN+0a1+HJYpapV994j78notBfS0ZHiY5pNo4nujKakpZkyVRIMqMkiUIvZMgcSg6xDLDmbq45ODoFLjo1LQ7FQVm9lsNqWx94k1YORPMlTnxyydXv7g7Zyu/IX8upMM7oT8bSXiagDFtgsVAzl4WxmJTwImh3g78ILO7zZy75CA2d2wc8JN2AxCeMbVNo5egeAId+IMd7lLJTDz2E44qZtbAVBNub0noKniLVgUMkW8vxdJT8uXVtOhcTGntUjm3zaMREZadEM02OHY6XHHAkzpsIZPx2nAs14xDnzP1PRYuiuBLeHSTcAUFFt6tSJd0kAmMZNPUyAh+MiRtAytx0WFLifyuKB4tNLmmFa8ky5mN5tcLMihy4OhrjjU/qlCK5WyUYSpl/s8g1DzG9DYzCIxo6t5J+Wkf57vQMuKbgrdBb8OaQD3guRnNljRtJqRuYrJDqyURqiTZ3kMsfrDXw== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(346002)(376002)(396003)(39860400002)(136003)(451199021)(36840700001)(46966006)(40470700004)(2616005)(40460700003)(6666004)(26005)(1076003)(8676002)(8936002)(7696005)(86362001)(82310400005)(44832011)(478600001)(16526019)(36756003)(40480700001)(186003)(2906002)(5660300002)(356005)(47076005)(36860700001)(54906003)(83380400001)(81166007)(316002)(70586007)(4326008)(70206006)(41300700001)(110136005)(426003)(336012)(82740400003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 11:17:35.7535 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a518cd2f-6fc1-422c-d293-08db507efdd8 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT004.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7832 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765415840919781510?= X-GMAIL-MSGID: =?utf-8?q?1765415840919781510?= With the Interrupt Remapping Table cache disabled, there is no need to issue invalidate IRT and wait for its completion. Therefore, add logic to bypass the operation. Suggested-by: Joao Martins Signed-off-by: Suravee Suthikulpanit --- drivers/iommu/amd/iommu.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 0c4a2796bb0a..51c2b018433d 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -1273,12 +1273,24 @@ static void amd_iommu_flush_irt_all(struct amd_iommu *iommu) u32 devid; u16 last_bdf = iommu->pci_seg->last_bdf; + if (iommu->irtcachedis_enabled) + return; + for (devid = 0; devid <= last_bdf; devid++) iommu_flush_irt(iommu, devid); iommu_completion_wait(iommu); } +static void iommu_flush_irt_and_complete(struct amd_iommu *iommu, u16 devid) +{ + if (iommu->irtcachedis_enabled) + return; + + iommu_flush_irt(iommu, devid); + iommu_completion_wait(iommu); +} + void iommu_flush_all_caches(struct amd_iommu *iommu) { if (iommu_feature(iommu, FEATURE_IA)) { @@ -3028,8 +3040,7 @@ static int modify_irte_ga(struct amd_iommu *iommu, u16 devid, int index, raw_spin_unlock_irqrestore(&table->lock, flags); - iommu_flush_irt(iommu, devid); - iommu_completion_wait(iommu); + iommu_flush_irt_and_complete(iommu, devid); return 0; } @@ -3048,8 +3059,7 @@ static int modify_irte(struct amd_iommu *iommu, table->table[index] = irte->val; raw_spin_unlock_irqrestore(&table->lock, flags); - iommu_flush_irt(iommu, devid); - iommu_completion_wait(iommu); + iommu_flush_irt_and_complete(iommu, devid); return 0; } @@ -3067,8 +3077,7 @@ static void free_irte(struct amd_iommu *iommu, u16 devid, int index) iommu->irte_ops->clear_allocated(table, index); raw_spin_unlock_irqrestore(&table->lock, flags); - iommu_flush_irt(iommu, devid); - iommu_completion_wait(iommu); + iommu_flush_irt_and_complete(iommu, devid); } static void irte_prepare(void *entry, From patchwork Tue May 9 11:16:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suravee Suthikulpanit X-Patchwork-Id: 91520 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2800767vqo; Tue, 9 May 2023 04:23:34 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5Ekl0gt+v0bkUXR0Xpx7eITUSj5AMo6zrcHgHDw1kgxCQyT+SADcvtYWwamln/Geh6eN4N X-Received: by 2002:a17:90a:b004:b0:246:61ae:2fbb with SMTP id x4-20020a17090ab00400b0024661ae2fbbmr13641624pjq.41.1683631414127; Tue, 09 May 2023 04:23:34 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1683631414; cv=pass; d=google.com; s=arc-20160816; b=o9KDBesT21eVe05dbd1bqRJzg2g26Dh08ltqKDnlultxPfZgyyCcPjdQ8cD+genGSH bpdeYsljJ6YYB6fyPBiqi7WEXraFf63NT012WAanKx3SV6Q1rlsAvl9NNdLMTqdEOFw2 tHc0Qns+C9yPziiwioO6A6aW6wmrXdyUTPJunDkDcgrnK/nPNbi820++2wkrANerbNX5 JrpP5yEWvFydnDjxDTxJ44XuWt9hQg6bThauwOTJTNswVSmDOPye4UIUGkahRYEHFl/C jNTeEj374Kl0kh1vpKfxZZ5GB6X+zg/i/5S0NWZZayamONRbj3K3DZ/eMhlFIdmOizbq 4nGw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=y3tsa/MDtLn/bv/bcyLy1vi8+ZAH59E3e5Tn3pns+sY=; b=MvchyTwaDJBHeFTdUv5h0bJkXkKTj+L4nYJ+EBfRKCXulm3wr0PI47oT2bqHCLtjIq n6d0BMQuGwAAywlLe/FiWe6IsdeSFbeJHSlXxjkHH5G9gVkElAXGFmyPMytZah2MZHKa VWr28STLik2YD7wFh4nx1EZgghHPMpJUXUlEb2+ujgyuHdL5d7eLe7cw5wOYHnYlKZJV szNy7/SxkqaCIfAlfD2/QPOttmXhjgNJzOYLlI0mOJm0xehJG29yUvtwbbh2XOIm39Ga pAafLn7DOGI8t3Gu77DO5zSJu/p5kF7sz2aJPp06qspRtE7Vg8Vh/0hypsgv4nOEdYP8 so6Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=E62CUgPk; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ot1-20020a17090b3b4100b002508259bbbbsi5090099pjb.125.2023.05.09.04.23.18; Tue, 09 May 2023 04:23:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=E62CUgPk; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235500AbjEILR5 (ORCPT + 99 others); Tue, 9 May 2023 07:17:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234927AbjEILRl (ORCPT ); Tue, 9 May 2023 07:17:41 -0400 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2082.outbound.protection.outlook.com [40.107.95.82]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E599F55B8 for ; Tue, 9 May 2023 04:17:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bMbX5fDwZJPVfJ6BQ0ju4rTSYjS/UcnyVqF0Q8LZTu5ruCDUDsc1oEnAW6IphvNFIC3va/a2tvkuzIwK4qf7r2RH6p3dyfnkK1BmAwr3i753atGKdEtOfx5vg9MJdR11R7MwAqA4waJqMlx7YQ9bcuZvZUqE6sXeXynIxyGhWelo8X4ukgmhfrbAWceNXgwMAzEBTeTy+gJLgqzMwU2eLsBk8UQKYL9ySGBY6MXc4vxg0iB1/PT/zG+Kzsd7j0vHrWYDt4pthP6DyuZiGDMl/ybyTC4mLL8CdpjXDk300Lh2XE5lqmKelMsxN+XwifC5EqbEZLU1HYDLyTTOeMZmNw== 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=y3tsa/MDtLn/bv/bcyLy1vi8+ZAH59E3e5Tn3pns+sY=; b=COzaFFyamAUvi9qUBcjJafTB5DoZFOmUTrfWwawyiRPxYHC/cWwyrsgiejWEJvP5i9vUmk1WY0Y8SuhhmkATDfMzn9OqbssEFMEekmbU4p0YUHRkJSkjN7/jVWryEQaMdAWz9GzkrlDPJlV9ELrzZV16o6yUpxomr5tagoJfobAFw+A/CF+dQprPvraIMqGtTfHsVtrhIioGhr77PfmCFwdsLmoUfqpgyRB4L0ykdBeniQG4km0HefUeR91dYJqEVX9UR/I5l45a3anZTi42eUI7r31nJfGXIfsRUJ5DRwWVslTME/zPnccnva97dLflHZ84CuTukAq8ThS53xtvwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y3tsa/MDtLn/bv/bcyLy1vi8+ZAH59E3e5Tn3pns+sY=; b=E62CUgPk6MkMXEsYgnXiEtygP+vDL/9kZmOShB1t5hoDOuXbXcyHJPSqIQUUAMk21IZB/lsyxIWC2PPUMbuxsqsbZgSUAAntT8KHbL3E800AlX5m/q9/unH5I2hqy1MiVrRG8n68UGsEqqttNE85d1rdlLcE1s0Ije7vr0yscnk= Received: from BN8PR04CA0057.namprd04.prod.outlook.com (2603:10b6:408:d4::31) by PH0PR12MB5500.namprd12.prod.outlook.com (2603:10b6:510:ef::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Tue, 9 May 2023 11:17:37 +0000 Received: from BN8NAM11FT035.eop-nam11.prod.protection.outlook.com (2603:10b6:408:d4:cafe::15) by BN8PR04CA0057.outlook.office365.com (2603:10b6:408:d4::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 11:17:37 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT035.mail.protection.outlook.com (10.13.177.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6387.18 via Frontend Transport; Tue, 9 May 2023 11:17:37 +0000 Received: from titanite-d432host.amd.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Tue, 9 May 2023 06:17:35 -0500 From: Suravee Suthikulpanit To: , CC: , , , , , , , , Suravee Suthikulpanit Subject: [PATCH 5/5] iommu/amd: Improving Interrupt Remapping Table Invalidation Date: Tue, 9 May 2023 07:16:46 -0400 Message-ID: <20230509111646.369661-6-suravee.suthikulpanit@amd.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> References: <20230509111646.369661-1-suravee.suthikulpanit@amd.com> MIME-Version: 1.0 X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT035:EE_|PH0PR12MB5500:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b9ca461-cf51-4a79-dfa3-08db507efed0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pHkWL54c0k56bIDJx7CH6YuVyTGVSD8oAlR+9/pwr7nBfKCo81lN9Sil0AmfbQGOnaFS+QtIfQT3wGCGZtBwO915d0us1fl60df+ZCnEXO2z+f5DWTHGgBpFxOBFy/REHhfUgQv+vp5sodSlglRkFdWY/DuND5yKCf4ZKZNPNdFpAD2s1ZttMRuvyQ9PfrcskqC+I53Sux99O/4TPPRZEoL9ihEj29P/YOcggljS41sirXlLkJhZjQfkF3ZZr2LnjTl69lxm7J/rjT9rCxwTsMk+r8N39YnOsNYlkQSU+rOFziD6uNwMylaz9zEMDQ4HakppZc668hlNvhaxAPcAMNpVrwQ5yUeQDNDo0WtH5/gxm1Vm18/QjI9TLVnpuJk32jbPbG3ly5CFT1UOny7RvMvFR4yvzWV9jQTueIIGHd8dGD5YRYnSU1L4iFMDy3PD4b0RUheAyFLcgiOLmluFNiIRAiNw/yilyeAJeqV2yEaiaVbaU3Zm39qQSK7ynJTTo7UDI2KkoZqezy6YTS8+gAvxhbJ64gwHh5NByKjgQEqACSXW/PnSfr3ngcL0tHiRSJLVZZwcTcOPOns8LMGhRUEYloXOL+OjH5qYOnBSsmig9gXUC/SiY+ejEf8260RnAgZO2bLgie3DIAs7zZsOAmVemadcft+HIFL5EWEYb6xQzTdVXUde7rduBijvY2ezlsWTZTw3ihHPp4hNpgC61nIAODS50+M9ZI3VOdK7HIs= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(346002)(136003)(376002)(396003)(39860400002)(451199021)(40470700004)(36840700001)(46966006)(2616005)(2906002)(40460700003)(186003)(36756003)(16526019)(478600001)(44832011)(6666004)(7696005)(40480700001)(110136005)(316002)(356005)(4326008)(70206006)(82740400003)(70586007)(1076003)(83380400001)(81166007)(26005)(41300700001)(36860700001)(86362001)(5660300002)(8676002)(336012)(426003)(82310400005)(8936002)(47076005)(54906003)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 11:17:37.3791 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9b9ca461-cf51-4a79-dfa3-08db507efed0 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT035.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB5500 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765415493659296033?= X-GMAIL-MSGID: =?utf-8?q?1765415493659296033?= Invalidating Interrupt Remapping Table (IRT) requires, the AMD IOMMU driver to issue INVALIDATE_INTERRUPT_TABLE and COMPLETION_WAIT commands. Currently, the driver issues the two commands separately, which requires calling raw_spin_lock_irqsave() twice. In addition, the COMPLETION_WAIT could potentially be interleaved with other commands causing delay of the COMPLETION_WAIT command. Therefore, combine issuing of the two commands in one spin-lock, and changing struct amd_iommu.cmd_sem_val to use atomic64 to minimize locking. Signed-off-by: Suravee Suthikulpanit --- drivers/iommu/amd/amd_iommu_types.h | 2 +- drivers/iommu/amd/init.c | 2 +- drivers/iommu/amd/iommu.c | 27 ++++++++++++++++++++++----- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/drivers/iommu/amd/amd_iommu_types.h b/drivers/iommu/amd/amd_iommu_types.h index 486a052e37ca..2fa65da2a9a5 100644 --- a/drivers/iommu/amd/amd_iommu_types.h +++ b/drivers/iommu/amd/amd_iommu_types.h @@ -744,7 +744,7 @@ struct amd_iommu { u32 flags; volatile u64 *cmd_sem; - u64 cmd_sem_val; + atomic64_t cmd_sem_val; #ifdef CONFIG_AMD_IOMMU_DEBUGFS /* DebugFS Info */ diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index 01d131e75de4..798cfc01b715 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -1747,7 +1747,7 @@ static int __init init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h, iommu->pci_seg = pci_seg; raw_spin_lock_init(&iommu->lock); - iommu->cmd_sem_val = 0; + atomic64_set(&iommu->cmd_sem_val, 0); /* Add IOMMU to internal data structures */ list_add_tail(&iommu->list, &amd_iommu_list); diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 51c2b018433d..57ae4a8072d3 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -1182,11 +1182,11 @@ static int iommu_completion_wait(struct amd_iommu *iommu) if (!iommu->need_sync) return 0; - raw_spin_lock_irqsave(&iommu->lock, flags); - - data = ++iommu->cmd_sem_val; + data = atomic64_add_return(1, &iommu->cmd_sem_val); build_completion_wait(&cmd, iommu, data); + raw_spin_lock_irqsave(&iommu->lock, flags); + ret = __iommu_queue_command_sync(iommu, &cmd, false); if (ret) goto out_unlock; @@ -1284,11 +1284,28 @@ static void amd_iommu_flush_irt_all(struct amd_iommu *iommu) static void iommu_flush_irt_and_complete(struct amd_iommu *iommu, u16 devid) { + int ret; + u64 data; + unsigned long flags; + struct iommu_cmd cmd, cmd2; + if (iommu->irtcachedis_enabled) return; - iommu_flush_irt(iommu, devid); - iommu_completion_wait(iommu); + build_inv_irt(&cmd, devid); + data = atomic64_add_return(1, &iommu->cmd_sem_val); + build_completion_wait(&cmd2, iommu, data); + + raw_spin_lock_irqsave(&iommu->lock, flags); + ret = __iommu_queue_command_sync(iommu, &cmd, true); + if (ret) + goto out; + ret = __iommu_queue_command_sync(iommu, &cmd2, false); + if (ret) + goto out; + wait_on_sem(iommu, data); +out: + raw_spin_unlock_irqrestore(&iommu->lock, flags); } void iommu_flush_all_caches(struct amd_iommu *iommu)