From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 445FBC433C1 for ; Tue, 23 Mar 2021 16:37:31 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B6FD861993 for ; Tue, 23 Mar 2021 16:37:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B6FD861993 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 486D76B00E1; Tue, 23 Mar 2021 12:37:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 437FC6B00E5; Tue, 23 Mar 2021 12:37:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 289656B00E7; Tue, 23 Mar 2021 12:37:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0029.hostedemail.com [216.40.44.29]) by kanga.kvack.org (Postfix) with ESMTP id 105EF6B00E1 for ; Tue, 23 Mar 2021 12:37:30 -0400 (EDT) Received: from smtpin21.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id C87CB8249980 for ; Tue, 23 Mar 2021 16:37:29 +0000 (UTC) X-FDA: 77951694618.21.2725053 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2084.outbound.protection.outlook.com [40.107.244.84]) by imf10.hostedemail.com (Postfix) with ESMTP id 90A764080F53 for ; Tue, 23 Mar 2021 16:37:24 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AqYL8SzR0L2YE4paxEK9jTHaa0dye3MNEcoLYY4HG9UDZjFOzV43x63ukw1LlKM3Be0IHohFGBcNaIThoouNeoRG1VMqz8Zp3u3M92TZyiJSPrbqUGQ+5hJB70/nh8Mm3J8hJCKLfvLVtdhWRpaKSk9s6jUfPXAum4k+aF9q19BARNNegoxtBy+E3lqpKS9bNxwBWbpvKnYhNXvyxlJ2ipsRP0Vn41QS3yhe/sQhEXDmg/O+jE/L1KxTRWMO8wYtgyQSIVFI+HP85ON9FeaU1GbijOTaxdWx2tpG2DmU/P6OVXJ+4gL72UmFlAYeGzoI/L66krYswEpeAVbdA+gRjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2yEPbVHVGSHnyu8v9GeH6CyGZ756P6R/fnr1NjRnKFY=; b=k1i2qvadfq4cgWZTgVjPPu9gXQpZhmTE99IrWiDDxg3974OWDmSi01mwLUVykaaQER1GJhMsujtrVjJWpZ81tyX1lUXRVchqWCttXTFwl17vQguQMKU6mxF3VTJI/t2prpVYOZ6JcTFRMQYpzfDyhDTHV+I+H4YUl5oGRW4u39fiYfSjmNEW5UhLBa3jRTho3LoKOPhGLDeS54DMZHl4pWHyFritu9PI1oFsbXuH55fz+boN6xCTmxoI00g522q5IYql0zMWWzxnIM7nbSQU4hFjNpwF7VJOwEGoy6EW1rjyp/fUdv5HAL5cS3Lv+2M/Ww/3MGtgO5keCYSnUxm9cQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2yEPbVHVGSHnyu8v9GeH6CyGZ756P6R/fnr1NjRnKFY=; b=NpW7td7aCciipjrwwvJJ0SGxX0tYeVdKHZwzZwdii7aWyFzLt4KyG0lFA4cSjvc8Tevag3Ta4ZClrfktC0Ahi644gmII6I5CfWV5B2bnK56pK07O1kvkKfcHgUVksMHRtK0EJKlzzIwc6nOiqBEVvL+ofiV8iu48dTuE6bWIXtc9t59Gw7vlF9j2nLY3Xu4YHh/c+7/ueIAetNMa9/NIJg0S7XAfbdX4BI02me525zXzRBebIaQ1GgHs2Im6a6UGtpwdOnAAO5AptWGwRzSYI8ENWYQugCe8VKJ0SnN48bedOkls7G9vUKVuVEaqwnUmYJ5YF73Jf6sJM4+NFk+nQw== Authentication-Results: shipmail.org; dkim=none (message not signed) header.d=none;shipmail.org; dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB3834.namprd12.prod.outlook.com (2603:10b6:5:14a::12) by DM5PR1201MB2488.namprd12.prod.outlook.com (2603:10b6:3:e1::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3955.18; Tue, 23 Mar 2021 16:37:19 +0000 Received: from DM6PR12MB3834.namprd12.prod.outlook.com ([fe80::1c62:7fa3:617b:ab87]) by DM6PR12MB3834.namprd12.prod.outlook.com ([fe80::1c62:7fa3:617b:ab87%6]) with mapi id 15.20.3955.027; Tue, 23 Mar 2021 16:37:18 +0000 Date: Tue, 23 Mar 2021 13:37:15 -0300 From: Jason Gunthorpe To: Thomas =?utf-8?B?SGVsbHN0csO2bSAoSW50ZWwp?= Cc: dri-devel@lists.freedesktop.org, Christian Koenig , David Airlie , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 1/2] mm,drm/ttm: Block fast GUP to TTM huge pages Message-ID: <20210323163715.GJ2356281@nvidia.com> References: <20210321184529.59006-1-thomas_os@shipmail.org> <20210321184529.59006-2-thomas_os@shipmail.org> <314fc020-d243-dbf0-acb3-ecfcc9c2443c@shipmail.org> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <314fc020-d243-dbf0-acb3-ecfcc9c2443c@shipmail.org> X-Originating-IP: [206.223.160.26] X-ClientProxiedBy: BY5PR13CA0020.namprd13.prod.outlook.com (2603:10b6:a03:180::33) To DM6PR12MB3834.namprd12.prod.outlook.com (2603:10b6:5:14a::12) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from mlx.ziepe.ca (206.223.160.26) by BY5PR13CA0020.namprd13.prod.outlook.com (2603:10b6:a03:180::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.10 via Frontend Transport; Tue, 23 Mar 2021 16:37:18 +0000 Received: from jgg by mlx with local (Exim 4.94) (envelope-from ) id 1lOk1r-001ard-Vn; Tue, 23 Mar 2021 13:37:16 -0300 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 55e80cac-5f53-4bf0-3bb9-08d8ee19ecb5 X-MS-TrafficTypeDiagnostic: DM5PR1201MB2488: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1q+9ExTdSLKvI71NMbAAQ7EByU4PbToZQz9LEqiRUBp938bU9x0DIlD2Db8Fh/3Hk/sQXDOgpoYZ1/8nsj5SjloDclqhPklGCX/2b534Z7kxMzGvEuu+HVRjCjiAQdenT7i8ZNKGd5OidvWJIUjnhaLntDlylGh8nDNYA7RolA6911OEcT2MYrX3mJp2bz24C2jmnRT5XtPqXzXoJffqwif4zcQxYsI/zpXo6+MHLm7ZLCZPxMw384kkEnLvzNcP+5nedE0ECgtexgX79wjUHhA/uY8Ba8h0mNIvTfIvAu/obieRB/02Q+Lq2oq0ELIiyhXyEqnlSlMcBndXYBR2j/1ooOVBrZqoLZ0XmnLffaifk5ZfSuWi89Ft8nIM9Uvtp2AXhOCxv0FCviiKxZKeYv2EWc5D2PfwCC3nl1gx16z79/8z+wIqXVNrzjmedcmRrMB+45VrSFek5ZbZR+Z5PDRaeluxQeTS6SWdNivOdTj7huqG8RERHZmEClDS1dNSeMEfc48T9SNoKfVPgIaIFx1Fo4qPnVqLBEJ/Y22EFNEGyuIDn8SrGBXc+fANG8NEr0RjOtHQ7UlKQ6R58L2MufFNVPjUDyURyVFfO83wp2lDxPDWixLZXy882BETDniR2DPOZ74vDODfhCNgnQvKO8vhKFzcCJsFxXOhoP5ZF/cL57oIniTdEKG6Db7cIs6D X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3834.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(396003)(39860400002)(346002)(366004)(136003)(38100700001)(54906003)(316002)(9786002)(9746002)(2616005)(66574015)(83380400001)(426003)(8676002)(66476007)(66946007)(4326008)(478600001)(6916009)(1076003)(8936002)(36756003)(33656002)(186003)(2906002)(5660300002)(66556008)(26005)(86362001)(14583001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?OXhGaHIzR3UwdUZpSDNpK2JZT05pQllyeXdBeWRmMHA5a3owTjVZWjdZNDJV?= =?utf-8?B?NzNqRkRBSHFUOEZCQ3JGV0ZmV3hyK2Y5c1NRZTFSNHl3SGJEZjU4SmdzRFFF?= =?utf-8?B?Qk55ay9hQzlDMVJnbmNRTWtqRERFaWZDdWZlbTVvNWc2MVY4c0Nsc041MU02?= =?utf-8?B?RkNIWW1iREN6Q2ZFbi9hYmd6STJuMkVHcTBCMk8wYlYzakZQUno2R1Nhc0ZJ?= =?utf-8?B?RWdyZG96N3FXaEU0cnV5Sk5MZTFtRG5BWTc1WUNCd2dMQnJ4Umc3T0ZLTXd3?= =?utf-8?B?YnJqUnlqd3BuNlE2Yk53cDAxTnJHUmxBN0thdUV1aFVoZ3NVZVpBZlVEYkN6?= =?utf-8?B?bWhzVkdUMDBXYVYxUENReXVNSk95UHNMdm9JUVUwcU1xT0tqRHdicVVpTGNo?= =?utf-8?B?WlIwRUFkREtkbGxhNldhNzdiT0gzWWpITDVDWldZY0NFRVlsN1EzYzQybnBL?= =?utf-8?B?OXliVGxFei81YjhpZi8yelNvaTNVdDNBMm1YeFVNeVNaajh0VzhsbjY3dVRN?= =?utf-8?B?bWU4Z3hhaDR1Wnl4TzFIejhOa1ZJZTZURnBOaHgrVmVmcDdobThGU2dxN1JN?= =?utf-8?B?ckRleGxQK1drWWJ2QWZEZTNzVnRLNzlVQlkxQUIra3E4UlhiQUpOYmpJSWVw?= =?utf-8?B?Z1NlNHZiQzdmN1dQMHR0dTNPRFA5b3E4TVBjV2ErbkphUDdIMkFudnRqUzRK?= =?utf-8?B?cEZKaTJwWlpkVGZPbVhxMjlvVzVjZnRNd0k0Nk5sVVByWk1tSENRVDB2V3BK?= =?utf-8?B?OHNPdnFjMS9NOS9jQlYzOTl2Si9oVC8rV2JBK0lNaHNHdEwrQm5weCswMk5F?= =?utf-8?B?RE1iTmxkUmNyakQxNUJ2RVUrc3BkbDVXVVlhYjZmOWhZSGVHaTc1d3pqUDJv?= =?utf-8?B?S1RzcGJCemlpKzJxaU1mWUVkdHh5Syt0MmNmc0RsZmNSQXdpbGxESkovL0Ru?= =?utf-8?B?N2JWVGFHbWpsTXJkeWlFMnpUbEw5YUxpdURpWWhhMXdoUTlPZTJPeTdwVW83?= =?utf-8?B?VWNGRkV6WjFVcS84bkZPTUxyQ0g2R0lTbS9selNIR3FOZVNtamIyWklnZzk0?= =?utf-8?B?U01qaGlzdE5zc005eWc0WlJtWERzOW5aMTZwdVMwajlydlBTZmFGZ001dy9V?= =?utf-8?B?RFB6WTJ6OHVQblUvVzJUOFBEbC9LL1JMdUtQUnM5SHB4OTljN04rUFFmQ21m?= =?utf-8?B?NHZuREFVT0twQk0yeUdqQjBTQUZyWHE2aW5wMkpIOVdEcUp2MVliRnBBeU5X?= =?utf-8?B?c1k3cXY2dURmaEFUVXBYd3ZXSWJtQXVEQkNjV2l0eU9ScDR2Z0ZLZU9vMTEz?= =?utf-8?B?bGR0ZGEraVBRUDI1RVMyblNjUVdabCtTYVBBcnFDTmhUemRLR29vbm1nRkgw?= =?utf-8?B?UjBRTVRzSkVXZEc2SWEyRzVKTUJrcXNBcU5yWjM0QjY1aWRWa1NVU2NUSTdM?= =?utf-8?B?ZUJCOGRFVENSbzh4N21rbWxTVzVPWHVkekJ5V0FaeFVMN016Rk5HQjJNMkd2?= =?utf-8?B?eG1oZnNPclh0cVVoSjFxLzFmNzZvMkZKMSs2aitCaldZOE4vUDJuOW5kQUFu?= =?utf-8?B?TkUvNmpoUkRsNUx5RDdFTmdsRlZiZVZHWVE3bnNlZWE2UzJESWxVUnhvTkxN?= =?utf-8?B?THByZXc3eS9wRnhML0dZQVl1VWg3QVBOOWN3WFYvOEFOdlZpQU1udkswVVhx?= =?utf-8?B?Z1hsYmtDeGhjb29MQVVRdjFZZkhWZ21oOXRwQXFuYkdZUWx2QUtkQ01lQlhr?= =?utf-8?Q?QDY/oLpn3OVhulD+IncQt7NC19Y0zVdwRiAm2VM?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 55e80cac-5f53-4bf0-3bb9-08d8ee19ecb5 X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3834.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2021 16:37:18.8137 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XhMVhLldrklnO3bp3QJcLl8x5F7pEL4ta4QG9H4VYFjaCyEa5s8QZsrRYNDECmOH X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB2488 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 90A764080F53 X-Stat-Signature: wuh9qagxfwkf5cdowq1q9s5y76hqp7iq Received-SPF: none (nvidia.com>: No applicable sender policy available) receiver=imf10; identity=mailfrom; envelope-from=""; helo=NAM12-MW2-obe.outbound.protection.outlook.com; client-ip=40.107.244.84 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1616517444-35535 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Mar 23, 2021 at 05:34:51PM +0100, Thomas Hellstr=C3=B6m (Intel) w= rote: > > > @@ -210,6 +211,20 @@ static vm_fault_t ttm_bo_vm_insert_huge(struct= vm_fault *vmf, > > > if ((pfn & (fault_page_size - 1)) !=3D 0) > > > goto out_fallback; > > > + /* > > > + * Huge entries must be special, that is marking them as devmap > > > + * with no backing device map range. If there is a backing > > > + * range, Don't insert a huge entry. > > > + * If this check turns out to be too much of a performance hit, > > > + * we can instead have drivers indicate whether they may have > > > + * backing device map ranges and if not, skip this lookup. > > > + */ > > I think we can do this statically: > > - if it's system memory we know there's no devmap for it, and we do t= he > > trick to block gup_fast > Yes, that should work. > > - if it's iomem, we know gup_fast wont work anyway if don't set PFN_D= EV, > > so might as well not do that >=20 > I think gup_fast will unfortunately mistake a huge iomem page for an > ordinary page and try to access a non-existant struct page for it, unle= ss we > do the devmap trick. >=20 > And the lookup would then be for the rare case where a driver would hav= e > already registered a dev_pagemap for an iomem area which may also be ma= pped > through TTM (like the patch from Felix a couple of weeks ago). If a dri= ver > can promise not to do that, then we can safely remove the lookup. Isn't the devmap PTE flag arch optional? Does this fall back to not using huge pages on arches that don't support it? Also, I feel like this code to install "pte_special" huge pages does not belong in the drm subsystem.. Jason