Received: by 10.223.148.5 with SMTP id 5csp6802976wrq; Wed, 17 Jan 2018 19:26:08 -0800 (PST) X-Google-Smtp-Source: ACJfBot4KIv6pCWL/yDq1gHc5ll3+7DjNscnvNPK9Ko8RNx+osgoucian6BTNfvUgzUWMb+rf+GS X-Received: by 10.98.163.131 with SMTP id q3mr30668121pfl.87.1516245967966; Wed, 17 Jan 2018 19:26:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516245967; cv=none; d=google.com; s=arc-20160816; b=VWsgG++m2lFcTTCzPf1LlnlsiS5WVJfH89JyQv96wWVlRXp6HhpypH0nU6uCH4WHQQ DBZanx5a05unGCq3xwTntqqjNH22S3OYkSJGzvfWxh9sQ5Qc5YVDVTdQFxE2vKUPYEV4 E45NQOGXAknocWPSMSmm9WW5Ok/o+NfiVVKZaYd+S42ExAYokZfRi671pdjhaQtVxK+9 y5co8e/+LN5YwuBtTgyLDlb2wDtwbUM8eZHiEc/xMOYgXI6pmkd+BKmqaz9Mi+1I+RtL a18SC/je1QVI+u+LMH02leFwg5x3pyL4G2UQ1tN4kEuFkliw+OBOW1sy322qlepv1Gsl 0H7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:spamdiagnosticmetadata :spamdiagnosticoutput:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature:arc-authentication-results; bh=U5JFRxzNMaxWu7uqCr8ujOm22kIGtpkPARae1AbHBOg=; b=pX6Yo0z5OXoOdX7CMLw7F3aoRdFSY0DUnawp6rmoOKSmjdA/AKTFjskpKIrsmQuGT7 +cAdnI37A7l7GJHS9NknE2HGTX+/zvleaaGrAApf+emfWoQaqpBqScg0HnrqokxrMFqN 068ExA3PxzYuiziHffekr/55J1GXBdJ+QEAmsVPMxJ0syDKyaPr4yh+aMo9zIc7gUrSE ZdnPT0JwsACjg8qC55n6n8EckqzPlCJh80O37H0ePz5zTUTFArV6ZJJaOY24qEr19TQR Pw+iFBseFX8TV78FDMp1sCJOC3y8WFw9L7T/ltlqIIcglpHDzbsggO89KMgSXGLC6up9 disQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=kAdJ8cdI; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l14si4948646pgc.42.2018.01.17.19.25.51; Wed, 17 Jan 2018 19:26:07 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=kAdJ8cdI; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753332AbeARDZZ (ORCPT + 99 others); Wed, 17 Jan 2018 22:25:25 -0500 Received: from mail-bl2nam02on0059.outbound.protection.outlook.com ([104.47.38.59]:46080 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752689AbeARDZX (ORCPT ); Wed, 17 Jan 2018 22:25:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=U5JFRxzNMaxWu7uqCr8ujOm22kIGtpkPARae1AbHBOg=; b=kAdJ8cdIVs5lcuplpelsh0JJlzaBu3DmejPRLXxs5kxx5teIpO/Wu3BWcxL9h9hB3CHE5eMGBiWXGwc1+BrgwloxQuayC7bgfACxdff2e7qN3vCbworxAS4t2ZL29HWOjy/jnD+7L61KazxRncnfGygYK2AeLlp/v9krVDih1i4= Received: from Suravees-MacBook-Pro-15.local (110.169.70.58) by DM5PR12MB1737.namprd12.prod.outlook.com (10.175.89.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Thu, 18 Jan 2018 03:25:18 +0000 Subject: Re: [RFC PATCH v2 1/2] vfio/type1: Adopt fast IOTLB flush interface when unmap IOVAs To: Alex Williamson Cc: linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, joro@8bytes.org, jroedel@suse.de References: <1514366435-12723-1-git-send-email-suravee.suthikulpanit@amd.com> <1514366435-12723-2-git-send-email-suravee.suthikulpanit@amd.com> <20180108135329.3c1e2c88@t450s.home> From: Suravee Suthikulpanit Message-ID: <0cdcfade-481a-96de-cadb-291968392318@amd.com> Date: Thu, 18 Jan 2018 10:25:12 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: <20180108135329.3c1e2c88@t450s.home> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [110.169.70.58] X-ClientProxiedBy: BL0PR0102CA0033.prod.exchangelabs.com (52.132.16.174) To DM5PR12MB1737.namprd12.prod.outlook.com (10.175.89.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d7596fd8-6ebf-459f-05bd-08d55e231a8c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020);SRVR:DM5PR12MB1737; X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;3:JuabiLN//MkNAhfM7WE2PneYrKulFEpY5SU8GI6NOc4T22zYfIu4BDipLpXJNoWnpBHVCXNBcwXDHJCg+1ffETzSyaWHsfJxs46pT938xE9QCYjxeztUYYAniq3w0srka4CZJ1kXPtYJgnhPQwy9JJ8+FthlwEmLovTXU1ojbznfbxNevPU/y7CE5nc7aHfHoBHwHoZNMIdetvDbzCp0GBChmGKOONFBs+APEDHhAZrmZyDfd4le338Br1MHszE4;25:wLpaKWu+s9RO3xZ4wiaN0EjO9h8xElQ/N1xlA8StMSoBhSDxfNixd/AWC6FgskknIOGOCUUYAnglVr1102y69RabWT+3Zq0FprfbwoPZ1QbxJCi6qpxu+pfTafBGm2lOWNKb8++QIy8NZSJY8q39Pgd7ZZW5mlRLO8GLoIMZ45IIhFjI3o7G6hHbvp6yPD7uYPx9sOqoUHHVsWTPhdoZl55658SZOjel5xHvSrQVdANz3Y23qieHBEj14X+WJdgWiYrPdp9V/wZN3IO2wx9L8+j+vqegZfSX1yftzvH5fMKlNQWFHHkqBRytzUph5s9fESQRgXuSRZNuipANeY+BVQ==;31:0ffYcW3t+At5iUDw5NwG7hGTV/CLbPu/AUwRRQJsKmkU1XgqI6lbhTPyusjVdZN/XDZcn3lK2FXZJDoQkGzXYC58RHyQ74lox1t6qRH8y8sBtOmNC/hmV60naVd4B/tB9agXeicwqCIymREGoNn7Ynu4pmu65lxlWSFo9m/i86g3MaXCWlt+unLn1r3fRZqGRyXfSHAUFevbAmrUSpeeYmg3Z3DtRGtmHIQ9xNr+dZc= X-MS-TrafficTypeDiagnostic: DM5PR12MB1737: X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;20:g1nJk7Kt+GRR2ndEfLlYTW/TcbzwFi+jVX4R/M8cSiTH8BRQCvd05jLR48E9/dCAR+F4r09VnOWUkZdDAR0/U9yrQ8e2jkiHZL7wB7DsMowv6uRQSDc4g6UGfEO7XCoG26s6jFujQeQn0rcG+gxyvRparEhsLqdlctySe2yC5Pz6fjeQ/IAT6oEe3igm6dok4Z0sBNVYZ8cpPXbiZJeDU495EMf+S2Tr1v7TFiQHYWCpahofsEmqJeci22/jLJ4VYtneyIPIZBi6oQ40j5z+Dh8LkWC7HO5gBkzHeUJYFywNxRmcijydS3Zo+c/oezQ0ALzKvzPPwOqGb4wBvs3OTd1MpE4CanU2z/CE0XqESmwDbqBP7VsBJVtiS0puhfVWa8X1hmoMPJOO559ibkdinHWZ4IqnxrRvdtohf18ZmgqHmscq37z6EZ/N0YpNHQmCS38ahMPxRJ+RkK5OWMGHVvXunuHkASZjLofp1uFXsp3MzXAAJ0gOgkalG1Yi3oTU;4:yW7KIYQsf2eZQ0hqDpE6U2afnI4HsxirgPfplWiiRRlB2aXVctNuPMGDWLp+hrmda3Bkk2Q78wmT0Tlc/Dn1l0m/wwvztsB0vuCtDx2313xhjIsry5PYHKSOzwb2RnNcOR7ue58fCXQcVrRWwF0+NcejPXjTfbx3XOWBoFXAhkn7fOk3IhaIhrFg9oZAyaNEyh1WR2npUOiimZfy6F+1CEceBsabBt6Z8pQf/9YHxoC/Cvm88bxEbDwKns8opLRHWPan28S89/3SAm4sGUGMqolW+S0lUdloJVsWwhqBhWuY0nis3QSsXyCrd8Mhgg6+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040492)(2401047)(5005006)(8121501046)(10201501046)(3231023)(2400055)(944501161)(3002001)(93006095)(93001095)(6055026)(6041268)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011);SRVR:DM5PR12MB1737;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:DM5PR12MB1737; X-Forefront-PRVS: 05568D1FF7 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(39860400002)(396003)(376002)(366004)(346002)(39380400002)(189003)(199004)(76104003)(54094003)(6116002)(229853002)(53546011)(6506007)(31696002)(4326008)(83506002)(59450400001)(76176011)(72206003)(386003)(6512007)(50466002)(31686004)(6346003)(58126008)(67846002)(478600001)(66066001)(53936002)(5660300001)(65956001)(65806001)(47776003)(316002)(52146003)(36756003)(97736004)(23676004)(6486002)(16526018)(25786009)(52116002)(64126003)(2486003)(7736002)(65826007)(2906002)(106356001)(105586002)(26005)(3846002)(305945005)(2950100002)(8936002)(230700001)(68736007)(8676002)(6246003)(6916009)(81166006)(6666003)(81156014)(86362001)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:DM5PR12MB1737;H:Suravees-MacBook-Pro-15.local;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTVQUjEyTUIxNzM3OzIzOmNMdThlRy9SaWVObDZGZ2Rqa0hpSkE2L205?= =?utf-8?B?SzR3QmhxK3NET2MyempucDdITXJkZzZMT2ltbXNER0hJQXlNWE1wejZ2WHht?= =?utf-8?B?TW1WRk5VQklucVB3SlZPWDgxMjhYVVFvaHNEZUxYaGRxMWlINWljSUtScFJ6?= =?utf-8?B?U0NPY2VtQnRGTFhEKzhHcmhRb205R2dvT1NoTXI1cERUU1RDYTZVbHlHaVo3?= =?utf-8?B?YVBUM2JzN1BEWjNxd2ZhYUhpOWlod05aVDlwMEgveFdRNW5IMDVaRWFBZG50?= =?utf-8?B?M3FUclVpQ3N3SmlZVWZBVURuVDJmQ1pRdm5YVmtzNEFtdDdLZHpLZWYrNnEv?= =?utf-8?B?dmtBVzdpSURsamdKZldGZitPRHo1S0NPZUgydlpqOHhDZllXQUhxUzZURDJm?= =?utf-8?B?SzBlSTFaNnNvZVFEaTJYODBYN242MFAvRXFTMW1nZ05YQmdvUmFBYTJlTHdB?= =?utf-8?B?RVZKOWFtL2FEb1QyN25KckRtamx4YisvR1kvTzRwWWV0Wlh0UWV2TkNvbUxN?= =?utf-8?B?Y3J6emE5VDAycjBTblN2b3Y1K1pTRERHbTk5STdzNHR3c3pqLzArVy9MSEQx?= =?utf-8?B?L1ZNS2p2cXFCT095Q0wwL1dzNnU3YVcvTHozT2lQM3UrL2lIL1NwWXJYZCtC?= =?utf-8?B?akNka1ZLMk55MGVGYWNTNkQ0Mi9uWllJWUNMUmxZNm84SDdiajMzUEgzUUxD?= =?utf-8?B?YkJlaDVIc2hIM0p2VmJsQUNYb0grenFaMkZEUlR3a0Jad0RRYTBmM2dFRVVV?= =?utf-8?B?RkZQU1FGSVR3L1dqMC93NGVPanEwaVFEQ1pJa0JmUUxxU1lVNVVDYmNBVTJr?= =?utf-8?B?bHlrU1pJbTFFTERWMThmRmFVVzRDQ2hPZkM0SnhFT1J1L3puZllpVHpZT3Bk?= =?utf-8?B?MkhPYWNHbnFUOXB1alNZREVtNzFPSVdxRVFhMGpkZjFRNk1uTG5zNlk5Z2hT?= =?utf-8?B?cnlRbWZ1QmdtSFNuaFNRRTZORVp3YnhRbTFmNTZjRHdxL0R5YUVENTlFNnVF?= =?utf-8?B?blR5Sk84OEJoN0FzZmduOWd2R1cyU3Y5ekVSUi9DbGJxa2lhZWpmeDJvVTgy?= =?utf-8?B?dmxxelZocHdtWlF4TmYzV1FrWjk4cUloZUpnd29RbGZwemltZDljSTcvK3lL?= =?utf-8?B?cW1nUWN0amZtTnlhcVoxam53dzVUdEh1ZDY1dzh4Y2gzL2R6bXhDMlh5allG?= =?utf-8?B?N1JOVERkc2lEdlBuenV2SGZXNVJLdXFybmtzNEt4ZHloaFFYU1BORWx4Uk9J?= =?utf-8?B?NnJxUDdiU2RFV3Q4cWZKbVRmbmorT0p5WENHUWRaUkw4V0Q1MUNGY21KMGhS?= =?utf-8?B?NzV3cklkNXYzbUh0Ui9MTm10L0VHMnJMWEgySHpWcnMwTHNLMFR6S1hqdkh1?= =?utf-8?B?eFZieEVHb2ErejNTMjFQSXZpR05keVVScW8xL1Z3d255VTF2aTNiK2RqWm10?= =?utf-8?B?R1ZRa3FkRUZSSEtaQTArRlY4SFk1M2x3RmNhaytOcmlNU3RocFhwU2FQejFN?= =?utf-8?B?WTFOeU9jaFFFa1R1dVJ1TUdXSXVQbWdwMUpLaEpBVkZWb3lhTW5TZG0vN3hB?= =?utf-8?B?TjhrdjZoZEZ4c05QbTVLSzVpeE1ybjBQT3JOVHorYzBHRzJVM2xnNnJ4NFNx?= =?utf-8?B?aHlBc3JiQTgwazBpNDRiRFVaWHNheFFwMTBaVENQODZwaWVOUkVaS0xLUXho?= =?utf-8?B?M3ZaYjZ6YVp5NWl5Y1dCVUJreDczOW1iY0lZUjZTV3Q3KzFEcVczQzR6T0V6?= =?utf-8?B?SjdVd1dIVlZjQjd5RDhuQXk5OWRnN0JTZ0F1RUZtVUNYcFJrLzVETFllcmVx?= =?utf-8?B?WGFabTN5STNEM1k0MkwweXZXQXVxU20rL2JQZEwrc1ZvTmI5bjFaUlZIWEll?= =?utf-8?B?cmJhUFZ3L1F1TTg0b2RuaUtrQjJGK1ZEM2Nob3dmMitRTkFrazNsbmxZTW1B?= =?utf-8?B?ZENGSFBralZtWmxSSHljOGEvZFFhTkdSUUJ5TXZVNzg5RmpIRUZBbTh0cjRk?= =?utf-8?Q?liWyhf?= X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;6:HkwHkV6MjrTd5gz+uCYI7frYN8pULirgtyxFovrAzah2vsa6b64bb1WMdk2L7HztoHnwz1EVc2C+GSVIvEZ6ab9JpwUGIn70rcSUwx9/MoZQIW/6xLmsHUm0xR5DGz2Ya6rLxGLFawIuri/o1G6r3Hke8AJ0uFWve1v0brbM+49ORSrDxjnxRRXvOM7dSyZ4CggP9BMY6F7kbI6W//cpIVFR2uI1CfLdICSttti6Cb0wG1UVHyTrnwBFfvSSIxPgyyFBvOSH32J0vqNuCz6s0/xR9RhDoTpDpYE9Ybl2bAFWLDjMLjtYLuN7WleEiH2lc35R6nGPAMM+PYGeKiA82MHEcxGJzWFEjxoJdQXtS+0=;5:VZhQg0ebppmby8YQHykyySsIq4Ry2krsKD3bq762os41/m3F8MwP4vkjrtU0SFqU6vN7Ev/E3Ktpdz1apKX6lIWI0oH+KfI9et9X1MuTLqQ48/tQv0AoV60kcL3JD9OHhLcxuf9oCNcJG1TmDivtlzm8QPZWVO2o2B65kfdWGk0=;24:4XeKBSHLEYDX/3+c4WkDzlvejTaXXh+S3X3Ckg4SRNXtkxjlc1t/i3v8UH/JEYzjm2V1KittsWkivicV/pYDQpiESmZGxNqJKRUjCJabms4=;7:OSmGEun3Xhja/JTwBWm0taf8QVZR8Xwu2U1QqsJIIKchzgXAdhgv4+M+j40SDBUgKNGFK2xFmbTaD1R+FqhnWhDWTBVnK2vSpnaCKrTOnRl846qGRdt0vOoIbZKyUXRIgi7W+uHMsgpV9KzjzS5P9Fl3bXHdkcKtvo0YsAT+8nrQMABc8inOTpRUCndxyAk5d/ByZSdPx0AqbiCPEDorIBZZOYIwyjiZIhpTWB1oKDvFPWVNGO92t58Jh7DWpU/3 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM5PR12MB1737;20:/aXxe1VwxmiKCb9ILibLnepb8VbKVG6rthKY/HFZRgCift3vHbREqj5mcgyyNZe/YYyIA3MvrC2gEXRbTUYS3wb+abDx1Yo2nndIpbOV5+r8qBQwdBiUmKIy/fyynlO8C6DXcdm2jKQ2xau2AyrbjGla7a16f37yDrmLjEWN8No7hJMaqBjfA7ffqsbQz2WbdkrAmw6JCT0mqQnRItshkvjryX+msp+cJiILGFKe7brUS6DUWrEu5SFwT0JUfghd X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2018 03:25:18.3481 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d7596fd8-6ebf-459f-05bd-08d55e231a8c X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1737 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Alex, On 1/9/18 3:53 AM, Alex Williamson wrote: > On Wed, 27 Dec 2017 04:20:34 -0500 > Suravee Suthikulpanit wrote: >> diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c >> index e30e29a..f000844 100644 >> --- a/drivers/vfio/vfio_iommu_type1.c >> +++ b/drivers/vfio/vfio_iommu_type1.c >> >> ... >> >> @@ -479,6 +486,40 @@ static long vfio_unpin_pages_remote(struct vfio_dma *dma, dma_addr_t iova, >> return unlocked; >> } >> >> +/* >> + * Generally, VFIO needs to unpin remote pages after each IOTLB flush. >> + * Therefore, when using IOTLB flush sync interface, VFIO need to keep track >> + * of these regions (currently using a list). >> + * >> + * This value specifies maximum number of regions for each IOTLB flush sync. >> + */ >> +#define VFIO_IOMMU_TLB_SYNC_MAX 512 > > Is this an arbitrary value or are there non-obvious considerations for > this value should we want to further tune it in the future? This is just an arbitrary value for now, which we could try further tuning. On some dGPUs that I have been using, I have seen max of ~1500 regions within an unmap call. In most case, I see less than 100 regions in an unmap call. The structure is currently 40 bytes. So, I figured capping at 512 entry in the list is 20KB is reasonable. Let me know what you think. >> .... >> >> @@ -887,8 +946,14 @@ static int map_try_harder(struct vfio_domain *domain, dma_addr_t iova, >> break; >> } >> >> - for (; i < npage && i > 0; i--, iova -= PAGE_SIZE) >> - iommu_unmap(domain->domain, iova, PAGE_SIZE); >> + for (; i < npage && i > 0; i--, iova -= PAGE_SIZE) { >> + unmapped = iommu_unmap_fast(domain->domain, iova, PAGE_SIZE); >> + if (WARN_ON(!unmapped)) >> + break; >> + iommu_tlb_range_add(domain->domain, iova, unmapped); >> + } >> + if (unmapped) >> + iommu_tlb_sync(domain->domain); > > Using unmapped here seems a little sketchy, for instance if we got back > zero on the last call to iommu_unmap_fast() but had other ranges queued > for flush. Do we even need a WARN_ON and break here, are we just > trying to skip adding a zero range? The intent is that we either leave > this function with everything mapped or nothing mapped, so perhaps we > should warn and continue. Assuming a spurious sync is ok, we could > check (i < npage) for the sync condition, the only risk being we had no > mappings at all and therefore no unmaps. > > TBH, I wonder if this function is even needed anymore or if the mapping > problem in amd_iommu has since ben fixed. Actually, I never hit this execution path in my test runs. I could just left this unchanged and use the slow unmap path to simplify the logic. I'm not aware of the history of why this logic is needed for AMD IOMMU. Is this a bug in the driver or the hardware? > Also, I'm not sure why you're gating adding fast flushing to amd_iommu > on vfio making use of it. These can be done independently. Thanks, Currently, the fast unmap interface is mainly called by VFIO. So, I thought I would submit the patches together for review. If you would prefer, I can submit the IOMMU part separately. Thanks, Suravee