From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754092AbeAQQyw (ORCPT ); Wed, 17 Jan 2018 11:54:52 -0500 Received: from mail-sn1nam02on0074.outbound.protection.outlook.com ([104.47.36.74]:56303 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753647AbeAQQyu (ORCPT ); Wed, 17 Jan 2018 11:54:50 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Suravee.Suthikulpanit@amd.com; Subject: Re: [RFC PATCH v2 1/2] vfio/type1: Adopt fast IOTLB flush interface when unmap IOVAs To: Alex Williamson Cc: iommu@lists.linux-foundation.org, jroedel@suse.de, linux-kernel@vger.kernel.org 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> <20180108140718.5ce48492@t450s.home> From: Suravee Suthikulpanit Message-ID: <966d7407-d91f-f652-454d-bbda263567ba@amd.com> Date: Wed, 17 Jan 2018 23:54:40 +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: <20180108140718.5ce48492@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: CY4PR2201CA0003.namprd22.prod.outlook.com (10.171.208.141) To MWHPR12MB1743.namprd12.prod.outlook.com (10.175.55.14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5c09b3da-8c5d-40c5-9bba-08d55dcb0516 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020);SRVR:MWHPR12MB1743; X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1743;3:9vuUyQ2L5cKeS5KOzHByF1I22ffJikyH4p4DlqmWLrEK6ZW6DHZV2f7R3M5wD3juf8+eiFiqgn2AAL/WRpXEkdA42FRCPBSqtI0Lmq3kpk6x7uxwn05Ty85VOiKR28s2Kd4lV1/upZNyyjkHPCF4iVvc/1VZJVh0mmjNstVtqRQRY0f1rfwRci3y6km3ApsaEq7ntbQcUIuUBhSBce8nEDDZX4n4vJ6M9r3nbLg4Wiu9sJZ1JcdqOIunS5uEatTe;25:3uZHUKsgS3JsJkK3BkXiqqfLqoABfL5IEBnQckRFBUhy8MnePMwCVLvSMTaUebnXBBhTuYg1YnIipIGoVDvSTrWa5rKbzUNAIzbftvYmSObXv3F1NA3lurLc9DF3i+GiB7zebKUF8xhodD9v4P2L/NzN3pTDDkzDhCms+uGj3fOPiarTU9fqpIOZnqL+WZGbTGx5vQZjvSg+0y/w6/Z6Px9Bkau5UQrw0hSEimDZ1lrM4SL9LsjtcoeezDeV7+srqv6eXJqh53MyYaNyRUyv8ADEBvdXguIouMx2f7eNCI+DxzCEwYN57cL90S2ZdbXBhv1yJeeQMJEJMcL7AisC9Q==;31:V8RrJMqk2nXwxLhAiRiGRbR59ywj777ODRKZcYq5J+xUGnQdgooX6mxf7pjtaomx+7+flFY6JTL2kJCRBSPLx34g373inU2+6/b9Vdff1+RG3T9DONm+4fQ/2tcWhRHHDjA2X9B7pZHrNAGo7RLumHNWx6rWSmKPgS0isizwmfqxZWKhaKTJQS9FF6W4lbphg809tZfnGF8wLeEHg27Wq41C0rll5gAZqUV3fJVsa30= X-MS-TrafficTypeDiagnostic: MWHPR12MB1743: X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1743;20:BwjfQSj9L71UiKXvlx7i+n89uEapfrE2flbrJormoGJZlxZSgGc/hYfFSBBwADpTLQ168dJkIXPJAqAm9FNLDf4PHjQIBHdRFIZBs0+clTe0ASiuhFpHvQy07+AmUbjITm/2I7mzHwpfQlQjEpl4nPpqVW2kqOhaEKiaAKk6iRhInn5Zz1Cc6PSQPz5aRwIEwvq/N2ERa+4k/tUcnQNBsEWsC1Sw+ga6X0eMPxoQ0qTOouDoS/iVPW0W9FqyF4X/0bf2Dab58rcUA6Nfx5sEIe/pgdsf9ejGiQRqxMEQVbY4xIGwXQnXv5fYYQQg7SMSb1osbxnMc8aarqbplh+aTin2XSjBZa9DgeKZs4Dq0r3Zyd5SUw+g3g2c9MG5DcdYMtlszJJX9SNgA8noEUAGxIRJH7Pb8umvN9m78Q7+OxZODq7fRxLGi3fpGJKcM4J7eILTnvkwSzYEkV5d0nPjosUXVM6csQxTfiBHzE29Zz/bEw8YB21+j1do8zQ2i0F4;4:WGOZxZawrGGP2bU9LD1qiG4ZmqalKaZjhx3QKK4Un4bo5K2ITSfevNsx+5JQVCxZAwUzBqWeyJ+jBwSy+8K0fd70y5wzT0FkE9toAeE+7PK6YK8isytmyvH3VNbuZdjSWi23YA72UdQ4hgAe6TfoWauu/SGOaGh7k/Trz88sSlDvzhW1zuzOlgtyVp4alzUT7kmvRKG7pZ0Sg3uhTuaiX7MgcVpZTwMaycbPrQ1V/hWX4haqcsZylkvh1VDpnIhp17X/Tk+1U0HE2ddT35u+eQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040470)(2401047)(8121501046)(5005006)(3002001)(3231023)(944501161)(93006095)(93001095)(10201501046)(6055026)(6041268)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(6072148)(201708071742011);SRVR:MWHPR12MB1743;BCL:0;PCL:0;RULEID:(100000803101)(100110400095);SRVR:MWHPR12MB1743; X-Forefront-PRVS: 0555EC8317 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(396003)(376002)(366004)(39380400002)(39860400002)(346002)(24454002)(189003)(199004)(53546011)(86362001)(386003)(23676004)(67846002)(65806001)(478600001)(53936002)(52146003)(72206003)(47776003)(65956001)(7736002)(36756003)(81156014)(8936002)(4326008)(81166006)(2486003)(68736007)(25786009)(66066001)(8676002)(76176011)(6116002)(3846002)(52116002)(305945005)(2906002)(5660300001)(65826007)(58126008)(50466002)(229853002)(97736004)(230700001)(106356001)(105586002)(6506007)(6486002)(6512007)(64126003)(6246003)(31696002)(2950100002)(31686004)(6916009)(6666003)(83506002)(16526018)(316002)(26005)(93886005)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:MWHPR12MB1743;H:Suravees-MacBook-Pro-15.local;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxNzQzOzIzOmovNXlFanVueFdRTUsvUWY5RGhvakg2TVln?= =?utf-8?B?cHVwL2orVFZVeWg3RG40WVZKTW13SEZZalNNUkVneFl4WW1DNGJYS1pZeWdL?= =?utf-8?B?azdCRVZaMTNad3N0a09aYldQZnNkamthZm80c3hoNDUrSDFtUjdybmtES3Mz?= =?utf-8?B?T0RpREJsdUN2RmNIc2hZbzdReWxUZ1FVL2M2SzA4VkpMT3kvSm9SMkxLV0lF?= =?utf-8?B?TlVlYm9yQ1RSZkovOWN4aW9ZajZsai9CK1hFREFDWmZITkxkSGFHVVoxbDBp?= =?utf-8?B?azFaSnNyYmkvZnlITDRSZ004WVpvWnEzVWszbUJMOUtmTXg1Z1FkYWZzS3dq?= =?utf-8?B?aUtzL3duL1NLRnhNRDdiL1lxY2NHUE1CK3BOeGUwbmlkUVRWQm5kRStXOGVB?= =?utf-8?B?OWxlTjF6a2sxSnRVMmdWdS9MbzdTcndnVTN4OWdNZlhGUVdjVmFFRWZDNlJi?= =?utf-8?B?M0tldjlacmluVkxoaVdhTXF1TnY1Q0YxSEVuYStxY2s2MENIeHh4Z2hJempj?= =?utf-8?B?c0cvNm40cVdLUXRFNHNJajQxVnhlbzFyTzNZQlNnV01SeVNXSlQ3K29Idjgv?= =?utf-8?B?bHMyaXF0UDRjeWJvN1lHanU2REFnNi83aXBpWlhNSjJORTQvVjh0Um0zYnpU?= =?utf-8?B?RERNN1BPa0VjMUJhNnBsL04wUHRUS0pod3h5SFpraGxJSnlCSDhRQVhpdkhj?= =?utf-8?B?WDZUU2YwZldVMGFiRTVMNzdaNWhROUtPaHhtN0NsaGhhMHhkNkVJZm1aNWJz?= =?utf-8?B?MzQvdGVKT1ZRYTRNaFVFc0VLV3h6dFgxWnY5NVhFS1BBUWFtQW5zbFRtSmRt?= =?utf-8?B?S1R1QUZoT1haWWFkcE5PMmlxV3RCL0hkUWRka0FXN1RuRDZhdzh1SEpGeDN3?= =?utf-8?B?NzJrSEpueDhCdE04RENxbEw0MkRsWnBXQ1lXRUlJZFhVbGRMSW41Y094NjQ2?= =?utf-8?B?TXVRUlBnNGtRUHh4SDlTVGN2NU9vUHlIK1hmUFpsdEI4eVdudEdRSFRHeWNP?= =?utf-8?B?UTIwUmFuQTJLeUU4WEU1eURneU5RTmVxdnVOdUJFR1NsL29XaGc4c3Ywc2h3?= =?utf-8?B?RENmeUhGQjlpQU1yUGU1NnRiU1JMem1MRmZ0aEtLbG1rbnhhbU5tb2xNQmtX?= =?utf-8?B?OWwxV1Vrd1EveVlSVWhQcFFCVmZOSENCVWI3RldlQ2cwKzY3Z2tTMWtVQnV3?= =?utf-8?B?Rmh6QkU0RGNXcjlMTngzY2IzaTdFNEs5ajJOTnFnMEpzM0MxRWdxQXhkZGEw?= =?utf-8?B?Qld5RW5WWjZEaEU4ZWQzWGVWR1U1MnhiZEFDYS9VK24vazhXSWFnQUtSckpq?= =?utf-8?B?eTVEU3lZVnV2ZUxqWHQ0dWZ1K3NzNkF4ajJsRUQ2ZnNSek5RbTg1QW1SeXNQ?= =?utf-8?B?eUhiWW52NHFGNWFDclFManlMaFhadDc4WmZEUExYQUZqZ3pSR1VUOUNRUk5M?= =?utf-8?B?K25vTXJieWExelpsNnFrN3M1U3hJNmg5MVZEVi80WGtoSGZteUZMNDZaWjRL?= =?utf-8?B?SXBrdklhanFHTWtTWThjSWhvSm9qMmRRdFlsdzkyUkFUSlFkL0hIYmNLTWpm?= =?utf-8?B?OXZHNGJpMUV1azlLS24vb0VTbkdCbFljNWM4bnNxd0pYMnBvcjBrQ0ZuVHhp?= =?utf-8?B?Q2FRZld5SWp1OGpiOFRXbi91WVZZeXhGcXB0Z3VhQ1h1RjhsSVc5UmVjQ2kx?= =?utf-8?B?eStGSUJXWDdPMk9TL08rTUhUSmRTTWVxamxWM1NzQVVyN1JwSUt1SFNRa2FL?= =?utf-8?B?R2hlUGdpR29uZEJxR29tOVN0UXdhTyt3UnVnSDR1TDlhL1paejZNWHcvSnhm?= =?utf-8?B?eHppdUZoVkVIdUNwOXJIWnhWQ1RzYzJPazdOdG5HSE1Gd2ZwUGJMazhBMXQ2?= =?utf-8?B?UVc5OWw4dlJXK2EyTDY0cE1vUXNLdEJTQkEwTkU1N3Z1MGYyVU5vd2hvYll5?= =?utf-8?B?eVlpRHEyRHd3PT0=?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1743;6:wMbtit5L+t3Q54BM8JtgMo4MvYbkqB6FXJjxiVwV3MYm5fOFybGNXh7ceE/2/cjxHuZVwjkmKCB/27+dwNqljXJsZpDqtouTC9QPKQFaXst37vW/xzhtPiNDvtgQvpsGstFqZppbgtGbI9uMxZ5ro3Noi3XBGNh4oLbF3aJYutw+ieUTUNZiQIMtNrjSepydG49MXrFwx/xIdRrqGF9TB+zjazRz52a5rADpENFTTclvo5YKn/X9OK8SXrsQgdZVFuNhbaiZW3YLniRBPa3GAtu5+ATXcyxvITn2EWMbjlvbje1+Wu8veRu754hTUsvqxH8pvJJp7UrNzV97BlxLrcUFOMQXxsy1W5IX43m+VJQ=;5:oLAhBG3rcBjJSugVHSaRiWHkRLPGEfP+ydJJg/jIHdCjeNAnkDzp3vWDUgZx07A9XWxJL0sU1C5yoz1ekEXf1YVCwJ7FbrhPJL6/x4uarWyyXd+TE+JcbEHNCTtROJMW24PJFDxK3s6ojHSIoGdR099k+zBXda2EkYSE6S3l7OM=;24:M+tR1uqbI18KZM9SVmP3CmsadFTzz7qCSQu71huQOPG+RXjSRASCm0rOEkp8jcgFQUVXwjAtS+gH0MgN4RGzWB6hetpB9TvG/aTJQjpRdRQ=;7:8v7NAg6mmN9Jf+rdqmmPqOXb6Uo/XCGBxhBqsLZk+yZxJ5R6Vy420ndB4vb5U0MZykuja1rsZ8IVr3/COXiLe/TRCF438lmFz/pU32eMStBAzuwuZyfXvYWS7S0V6Z8PQIk0f22s7iYvzKlcGcIeeDZsOpPksivO5hYFWa1q5YahpddCY2pcXVUuU6x5PqAnPkN9H+mwGswg6ciO+0erO9tom/SLfB+3XT849llGVPZjZqum+kcL11JexokD1h/R SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR12MB1743;20:0CkO+iuy3l3w/hUIGyjZBYKnqtF3xZyyGBoR8ILdgEvNVZZCnSQqiJOAdFNAT5/PP2uKhcv2dfo7mQR+/ZXg6WRSa+CfOe52dHz2UZjFJ5RmX/OlATcTwoJi1shq2MwBFdEuAz+4ku6m8w9BGaB6Rv2hwicl5gXbNR3ZUjIhMIRE7TrEJhdFFMjHisAfRG7rTgLOZ7TWiZygNGCuudMnVxdEeiTlDuanfJEivhtPeZ3nN1vsP1SbbtwmvfXDfUsu X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2018 16:54:47.1655 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5c09b3da-8c5d-40c5-9bba-08d55dcb0516 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1743 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Alex, On 1/9/18 4:07 AM, Alex Williamson wrote: >>> @@ -661,6 +705,8 @@ static long vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, >>> if (!IS_IOMMU_CAP_DOMAIN_IN_CONTAINER(iommu)) >>> return 0; >>> >>> + INIT_LIST_HEAD(&unmapped_regions); >>> + >>> /* >>> * We use the IOMMU to track the physical addresses, otherwise we'd >>> * need a much more complicated tracking system. Unfortunately that >>> @@ -698,24 +744,36 @@ static long vfio_unmap_unpin(struct vfio_iommu *iommu, struct vfio_dma *dma, >>> break; >>> } >>> >>> - unmapped = iommu_unmap(domain->domain, iova, len); >>> - if (WARN_ON(!unmapped)) >>> + entry = kzalloc(sizeof(*entry), GFP_KERNEL); >>> + if (!entry) >>> break; > > Turns out this nagged at me a bit too, this function only gets called > once to dump the vfio_dma, so bailing out here leaves pages pinned and > IOMMU mappings in place, for a performance optimization that we could > just skip. We could sync&unpin anything collected up to this point and > continue this step with a synchronous unmap/unpin. Thanks, Ah, that's an over look in my part also. Thanks for catching this. I'll implement the fallback mechanism per your suggestion in v3. Thanks, Suravee