Received: by 2002:a05:6a10:7420:0:0:0:0 with SMTP id hk32csp857099pxb; Thu, 17 Feb 2022 16:46:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJxYsHZl+ozb15eu74G9Wg24gtFjt9qdVd2QAYY0gxEzAe1Ka1yVvEhgcAv/FACrOOKmHuGo X-Received: by 2002:a17:903:2303:b0:14d:5605:28d7 with SMTP id d3-20020a170903230300b0014d560528d7mr5128309plh.72.1645145168832; Thu, 17 Feb 2022 16:46:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1645145168; cv=pass; d=google.com; s=arc-20160816; b=DyypKbAmxv1ElZOlKOlm30Ce3gMuWsbx9qHBkjwv3qycA7X4Sv7OtBWykCllAhzPJ2 YfwsD6rXXJ8OVvkVcNwpyPLPkeTLrM7uSNlUVsJpbumXvQQK2RdUx7v+bzVN8lEhqKBc 0IB7G6bZiDeg7OnZ1UTEIylLTGo/FkI6HkjOqKPxU9bo+W5fbb5391hX1MNJIvJ8yQSY CYr2fn1aGROgyPy8WqmpZFCYZMrxCJ0q4uhbkoPc7odJ4Xnw+CIOmCeyTwYEWy83pHzZ /f5lY4MN8GqjbxSYMKTn2Xhehz/m3NK9weCH6ukkyQ2GtsV3dba/IxajMPViKJr2+Nw9 yU/g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:in-reply-to:content-disposition :references:message-id:subject:cc:to:from:date:dkim-signature; bh=X6ldf/yGhzb0XYIgTLIVh2MEdD10JW916kxG9oQil18=; b=mbDY4eXLDr/IXV4PZPVbIj/0Nc8y6Xj+uIYiHxbGJ4+Xq0hTwc8cHfGDcAWc7vhWIQ R6r91WIoKbELcMua3WHlBHbMPT+Yw8GSGPAwD6ICVbSrm2ASom8BTXhprqRIK1tN+1kX fdHC8VDarovMNxUiapIoqhOCCl3fDP0Hn6CEolJA9jQcMYth5v3WXqfJETyarNlar9/L aITeyq8OMt0Ht7vsISUp0zwFrxg/V8LkMdBIsJCKZLBanQ+2ry/qmEvRHyYR9Gbvm3Bs terM/iy15rz5fSOP4bI74YzGiSvwfmHCu8BCz7zIzgYbNEpXey3yFZ4V9irG3x9OmWCn oiPA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=PplYozhV; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id h8si22859975plf.38.2022.02.17.16.46.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Feb 2022 16:46:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=PplYozhV; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-ext4-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-ext4-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 3CE1442483; Thu, 17 Feb 2022 16:19:42 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230072AbiBRATz (ORCPT + 99 others); Thu, 17 Feb 2022 19:19:55 -0500 Received: from gmail-smtp-in.l.google.com ([23.128.96.19]:57900 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230061AbiBRATz (ORCPT ); Thu, 17 Feb 2022 19:19:55 -0500 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2053.outbound.protection.outlook.com [40.107.223.53]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9A95A626C; Thu, 17 Feb 2022 16:19:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Olz2oqoXxzBgX4xHIKCky0UEDgMiaELhlVSbCmrYzK6/dwvBCJWwxauFh2JCQXKwPImm59laHRcQ40z/ztMImdcHshWt7onW5qIAFhtN01C5KdPmK+uEMpYp4JhWvPHbFryoawuwGqIUzGEswP3DDsEblrGALDqkYxZhdhEZsyIqS0jfc0J+rZp8nzf0khFAcJMIkJbl8mu5qf3Vhl1up6i8xLUx833Pg3UTdTmdDDx2p6IbCeKuTsCnlf/JdKdYsmz9zCOWlKiITqk1/6EpLNoy2I938x2ci7wSyuPKwIbVXdQ/aae51pk9hyFXXT4XW0CIRmunNJTnc1NE59xSwA== 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=X6ldf/yGhzb0XYIgTLIVh2MEdD10JW916kxG9oQil18=; b=QwXjXZxeaFfweCjsMhGmZdb5emPgwinnFZCDXF0YIKbdoEB4d3POv4jM2fDPE3YXJcAzt4JE39hvbX1163YOEu246RQL06EYZZoSD866+xwUJAtfQy2+CUWdtiFrk4zoY6KhN3AgioCvgtbluzWZbdSAqaitPka/St1Jil48Yl6BQgGESLvAhHrzKv8tq1mXMxDP3YVmv2y64+tdh7mtwnBbPmmw1tE9CVueFT/FKn0DtoVn5VrHg49wPrwaSv/2j1l/lIq+Y0HDG9mfYX715H2UhWiT/11itdZZRkR7jYZ7PAC2aQoW07PAYGzNMU7WDdc9hp1ndljZ0mVn51nNlQ== 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=X6ldf/yGhzb0XYIgTLIVh2MEdD10JW916kxG9oQil18=; b=PplYozhVE2MTmFe7uwHtQESAt/wOcFlzH5Vybv9NFM94WxD4t7dJBWIxKrimC1A8j1gCpEMPahLHYTlqYFekQSzbo3e25X0MbhurhWpL4FEM1RrnPLUFrbD/CLo8s1LjsDH2g0JmOxs5ZW0mx4EAzAHImmjh49izrPUY4yEHQIem6pI0L0vYTr5wuwCrrbqp+yR0fHHnb/opZ/gODOZ8S47z+t+ub2qVUKNJ6zAcQXHIWDWXEVTO4/U1oXR919qA7kQN3nXhajXx7aml/af6A1OM2keTHaIkYlPPhvuVtfrUzoXRoIY8jz4lDi5e93yWrltS4UOP64NDwmBpc7lfWQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) by BY5PR12MB4817.namprd12.prod.outlook.com (2603:10b6:a03:1fe::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4995.16; Fri, 18 Feb 2022 00:19:37 +0000 Received: from MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::e8f4:9793:da37:1bd3]) by MN2PR12MB4192.namprd12.prod.outlook.com ([fe80::e8f4:9793:da37:1bd3%5]) with mapi id 15.20.4995.018; Fri, 18 Feb 2022 00:19:37 +0000 Date: Thu, 17 Feb 2022 20:19:35 -0400 From: Jason Gunthorpe To: Felix Kuehling Cc: David Hildenbrand , Alistair Popple , Christoph Hellwig , Alex Sierra , akpm@linux-foundation.org, linux-mm@kvack.org, rcampbell@nvidia.com, linux-ext4@vger.kernel.org, linux-xfs@vger.kernel.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, jglisse@redhat.com, willy@infradead.org Subject: Re: [PATCH v6 01/10] mm: add zone device coherent type memory support Message-ID: <20220218001935.GN4160@nvidia.com> References: <877d9vd10u.fsf@nvdebian.thelocal> <20220216020357.GD4160@nvidia.com> <6156515.kVgMqSaHHm@nvdebian> <98d8bbc5-ffc2-8966-fdc1-a844874e7ae8@redhat.com> <20220216122600.GG4160@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MN2PR18CA0014.namprd18.prod.outlook.com (2603:10b6:208:23c::19) To MN2PR12MB4192.namprd12.prod.outlook.com (2603:10b6:208:1d5::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 682bd472-d920-4442-5e15-08d9f27458c4 X-MS-TrafficTypeDiagnostic: BY5PR12MB4817:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kzG6g63vvtYHiMXiG2/D1NZRyzb/MjNNDrW+O3SSsH5RKjBmdJdbTjJfyLfayiDEf0pE8WTDR0ptEZZb1pFktbAiHMct8ekBJU/TIhG0op4bEJVdXcAAzQznCIKrF5VeAJSaqCY4p45SEpTwltxfGMdjKUfOZ7UMggUD21RRusZcqKeGapc2QXwVN2V7PjfTX9pa7ohOKWUXas7PV3GOhypib1ZOFR2RJcM54Lyrmia/eKkyge7vmth+BKUf1rseLtxrocQdQNrw9wLG4Bu3ODwkeqhduolTZt55/UWNOawzUlCg4KOL/YtWN+oeI/KTsRidFd4iYgHcMtZaA8sH3l/77DpjPxwpNmpEZHFrbrRSllM0Np8BQmAXGnr8pW8xJOe3VCcRx20f+JREfi1/bSFYHio+dxZRjVoInWq7p0NS1i3KADCg1BpI+A2WC8GGNzeRDSihVW0VQBDYcdgCeRPrDf7aQqLQq7EAefVuMpswqLcLrrjO4uh4t+Ak8jb+ToJTrULyPHJdVTab/K0oC3PtBmSS2J91IIpzhqTiYrsmq6MrJmk75assQ6moCtOOTMrjAdpYLtGyKXCsGgJkSZqLoVXqo/rkYtUMFHWxx1Mze1JTAjXjFDf0TRxElaB5mSrFMPdifnUlyb2p7rQtNg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4192.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(316002)(7416002)(54906003)(6916009)(5660300002)(6486002)(33656002)(6506007)(6512007)(86362001)(2906002)(508600001)(38100700002)(8936002)(26005)(1076003)(4326008)(2616005)(186003)(36756003)(66946007)(83380400001)(66476007)(8676002)(66556008);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JfsDVCLqXXf6G/NbQyGXqKUwhuXemavJTXOuAHlCq1Dk0zVr2mF+g623LDsI?= =?us-ascii?Q?GCIrCNuvFs3Y8HGaAPhaA8icB/HQm9pyJr23gjga+yk9z4PPLKiJK2fYAoOp?= =?us-ascii?Q?GwJ59FThbnNbO9VLfFmE59KKVWjkJlJeqvzEBu2o06VR9kms4WVkgbxuaYpO?= =?us-ascii?Q?0NfWnrhtXBbwYHTZyo3F4Dy7IC8fr/wgZ827G688bSNl6bLwiIYHOJ5Apju8?= =?us-ascii?Q?murAD/aDk97bYuTIQKKA1A6UXmbjlOdZqVW6jamMjtpQAHqLiJtyeTVqY48p?= =?us-ascii?Q?7Un7K1Qmv4rCwSJxZUC5dIat2hk/qypEGAKxnS8C6wUCY1lcSqV5rzdrUSzW?= =?us-ascii?Q?+JR6yJCh+QlRiE/eEhkn72ADz11XJ46JGas13nGkPwMxwXLqn4oL5cCQLTIE?= =?us-ascii?Q?zXag7haXgHA9gRceRcLcj/h0QGI0bSJlURq2WQLuXkc/ZpRvyYmnBRgrawtk?= =?us-ascii?Q?oygWgtB/S3zTIJ79awZ0WyxsIH8VXgICvEJy1A8iFr8rpMS56T8t8XNTaYgV?= =?us-ascii?Q?PgmhB4UYVyoXRsnOQKUsBtmpKtWkp8gGEB8SqqYCR/BKhTtmmD32MOuxt3CL?= =?us-ascii?Q?KggIDtTaNV5OU3bF/eZRltTwjO+md6oKzpjQ//N41nObv9fnaKJIK74kQPYx?= =?us-ascii?Q?PtsyHn8RICsOwUylUR39Iu7elahwyB2gnh/mfEfguMhBCC5U2E6kSTsBF/vX?= =?us-ascii?Q?suYnIFprQuLoI6Jg7q8r9lDKmNrHA3YRxMNDjASFahT9u4XATLNHiiQ8/N/I?= =?us-ascii?Q?yKX/RYEU8IivQiQhz0/mUpJQY0icvBHzu4UTZH+1JJ9pxr61tfW3rZ9YFWMp?= =?us-ascii?Q?303VEP7aRbwityDyLafsCJTFPLg6QrgJRl2sdAR9jvKMmFZNEF8q44O4AGw2?= =?us-ascii?Q?HwEC/MReeqKv4ZH4WTASj80mXkic09W27L/eZ96fSOKZCJm8YJzykinTYN3R?= =?us-ascii?Q?3yVBVfZZtVyFMPuDFgATxc+X/M40XoUgCTf2tlzq4YQvpeI7WfE5YjlFnsm5?= =?us-ascii?Q?1Y1cgFxVvqK9UKNzjqwcMFXJBNTCFwTpzHFo8rUrrM7XKE1Z1d2FIXtPJ4Uv?= =?us-ascii?Q?rkEwtgnbpLsz8ULpi5y4QeP+4ZnJtpJ35Ret3EtcrqXvk2SEqRzHrwXS0wOZ?= =?us-ascii?Q?V1CBBGimLKA/Y8G9uMLdft/6KniOdpU9jNBVfBY65lAVIpPESG7iqZVPVAXW?= =?us-ascii?Q?G11DSvn33sr/JphtiCUSbQlrYLPzoGRC1lyQjM1FdYEaQjz++OHQma9klere?= =?us-ascii?Q?Gci3ifUEkhmZxChHfNVW8RYFactJfct/2yXRoOxtX//il3KzLEnwdeVzPH2A?= =?us-ascii?Q?O7ftw1ckeV1cY4MuLs+yceB+2FwkrBK88YyGxvhjCb2inSo2+p5XmdielpRz?= =?us-ascii?Q?uuGItmKXNBteybJ3M5bHP1K+F5FYfSoUDyd9o5Dns7aUDF0FGtTE8MTSGlq3?= =?us-ascii?Q?YA0rlGKmhJI8nxhWrZhiwM7cBgmj8G5BrUnLyTqGlyxTr3VUpB7d8OiZMtxh?= =?us-ascii?Q?u9W8TUFpeLPo4jSCEzZxNML+5gmVTdlJ9bL+hjmgniZ78I5t9HIC03UMf2e1?= =?us-ascii?Q?kJldyem8MdXwLAnVTb0=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 682bd472-d920-4442-5e15-08d9f27458c4 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4192.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Feb 2022 00:19:37.1863 (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: 15kAOkAMdyf1tOP9+DUAYY0eoMj1Fkp6/kuUcKyzqfaiue52Vvlm9rCMktn4yQJI X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4817 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE 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-ext4@vger.kernel.org On Thu, Feb 17, 2022 at 04:12:20PM -0500, Felix Kuehling wrote: > I'm thinking of a more theoretical approach: Instead of auditing all users, > I'd ask, what are the invariants that a vm_normal_page should have. Then > check, whether our DEVICE_COHERENT pages satisfy them. But maybe the concept > of a vm_normal_page isn't defined clearly enough for that. I would say the expectation is that only 'page cache and anon' pages are returned - ie the first union in struct page This is because the first file in your list I looked at: static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { page = vm_normal_page(vma, addr, ptent); [..] if (pageout) { if (!isolate_lru_page(page)) { Uses the LRU field, so this is incompatible with all the other page types. One mitigation of this might be to formally make vm_normal_page() == 'pte to page cache and anon page' and add a new function that is 'pte to any struct page' Then go through and sort callers as appropriate. The 'pte to page cache and anon page' can detect ZONE_DEVICE by calling is_zone_device_page() insted of pte_devmap() and then continue to return NULL. This same trick will fix GUP_fast. Jason