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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACE1EC4167B for ; Sun, 26 Nov 2023 21:55:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CE7846B033F; Sun, 26 Nov 2023 16:55:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C71676B0341; Sun, 26 Nov 2023 16:55:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AEAED6B0348; Sun, 26 Nov 2023 16:55:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 9BBFF6B033F for ; Sun, 26 Nov 2023 16:55:26 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 6DD5EA016F for ; Sun, 26 Nov 2023 21:55:26 +0000 (UTC) X-FDA: 81501462252.05.F4D93F2 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf07.hostedemail.com (Postfix) with ESMTP id 6DCD440009 for ; Sun, 26 Nov 2023 21:55:24 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TE7icV5j; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf07.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1701035724; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=UbvJtYTtIvQRI2d4NOXWwsD4H2hzcPgDD+3up9r2zCY=; b=f2FMMPSR8KR2ijdiNsAiShmPC53UlPvS2rEmDRSJOWNJIhN6BipxGLE5zk1HBH99Srza/z rkBxvyr5oOAdSmNOPzLN501NFuxsoTamsDbfHWur5IxdOvZZOuferSFnzAPQpYC938xvxd V024lE/fUC3OkDjei0iqoDYoIr3E03Y= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TE7icV5j; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf07.hostedemail.com: domain of peterx@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=peterx@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1701035724; a=rsa-sha256; cv=none; b=3wiSdaSHus2oxLRbmLYU32qC79VJJNyecCHhXvmUkYTisO8oGc53CFyih6yjg3K26xNW3t v3gFuv3hMhQYXpg6MnsFbFg3XLPmwpnPgsoSEMYvJwEseh6bavcbDqju7JYWRq6Lfa7yx8 ZdDsGVTxc2f9zFwAp3B6zgy7nPg2V64= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1701035723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=UbvJtYTtIvQRI2d4NOXWwsD4H2hzcPgDD+3up9r2zCY=; b=TE7icV5jhWPIELcobs6ZjMyvUvyxdE12xLLke6EzhssNSj9FafsOg/wGb2BRiDwtzku4o4 dMDrEeD5+a95yv8jWY3IAaP8W28xcr7ZQzQwnU5EZ+3LE/FG1CoSD60oAeDWAvRmxfmji8 LyWv8g0sm07zIwG+dR26Ydhbi9+3Rfw= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-668-Q4yZbykUNluxgViqCzSjtw-1; Sun, 26 Nov 2023 16:55:22 -0500 X-MC-Unique: Q4yZbykUNluxgViqCzSjtw-1 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-67a05428cceso10745726d6.0 for ; Sun, 26 Nov 2023 13:55:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701035722; x=1701640522; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=UbvJtYTtIvQRI2d4NOXWwsD4H2hzcPgDD+3up9r2zCY=; b=t1EoQSQhLbkXOR5Gw9Hy0FUGQLRJbLdI8vlP7vd84gkRR1VVDBkM5cr4lg4mpNyiA8 nSVCNeXNztEQB8OV3W2i+4utRd/la5m6ObFIXvle+5akv/B60CicFz7KJtlb84gPBeN6 K7IKVtLRr1rY0jAy72LUrncl/Jh7KhZ5pG8K+7zixs/HMPcLyEiNPdvM4CBqPcmx30Yd ON2pWmVgC6/4UksM3qgjOgpTB89NMPp2ui8QhgU92csC/6pFwu0Paw2XhXFUbPoUqQKl 9vtLswGsPRsf52FgBP0K/wnzBvvVlbMCQoUvnyGbDLMlqBDqQsvFVN93FY1JRk829DPz rU2w== X-Gm-Message-State: AOJu0Yz+QDNhUvNUUvQChRn1Tz/qqzGneSis4MI5nCIY7G7GPOv1dIAC Ee7LJ+f3dxXcNDTCMce3mvS2r//iKYhrOWkUf2cvTDEk0W66fOJ6d/W26aIKYJXp7tfe/U1UHKM E0D+zDdkz3I8= X-Received: by 2002:a05:6214:1399:b0:678:35a9:c363 with SMTP id pp25-20020a056214139900b0067835a9c363mr10204045qvb.4.1701035721810; Sun, 26 Nov 2023 13:55:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IFrj7rvSi4WYmtvmsm7IEhv876JUypNDuTPYd75xUfSQZ7KXreqK0bnc3jiC5Le0Za2wN2+gA== X-Received: by 2002:a05:6214:1399:b0:678:35a9:c363 with SMTP id pp25-20020a056214139900b0067835a9c363mr10204039qvb.4.1701035721527; Sun, 26 Nov 2023 13:55:21 -0800 (PST) Received: from x1n (cpe688f2e2cb7c3-cm688f2e2cb7c0.cpe.net.cable.rogers.com. [99.254.121.117]) by smtp.gmail.com with ESMTPSA id a13-20020a0cb34d000000b00677adcfd261sm893391qvf.89.2023.11.26.13.55.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Nov 2023 13:55:20 -0800 (PST) Date: Sun, 26 Nov 2023 16:55:19 -0500 From: Peter Xu To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Dan Williams , Mel Gorman , Matthew Wilcox , "Aneesh Kumar K . V" , Christoph Hellwig Subject: Re: [PATCH] mm/gup: Fix follow_devmap_p[mu]d() on page==NULL handling Message-ID: References: <20231123180222.1048297-1-peterx@redhat.com> <20231124112059.3519d6fdfe71f846f8bf726f@linux-foundation.org> MIME-Version: 1.0 In-Reply-To: <20231124112059.3519d6fdfe71f846f8bf726f@linux-foundation.org> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Disposition: inline X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 6DCD440009 X-Stat-Signature: yap1gpzetsptza4fzis1bdxm9q4afpg6 X-Rspam-User: X-HE-Tag: 1701035724-966396 X-HE-Meta: U2FsdGVkX1/ZldaWUeJmuUNh890Gik6a8Q3rJDYrE4Pa019HAdkI/G9Y1td0H3q6PqpwRfRkOy6WN6XeYkdjCZ8PhKkC1MrZnzxfTh022T8JIn7a2/epdxIesxKne9Q+E1y2fzA0PzVztptubWVt5BmsTGuLE8JI3XXyb5O0KjlDO1y+r/uQnI9XBy/xhPI3BB37bLQPV/kKRd/iQnuYZd6R8deFNI4plD7pK4NYVgtV3N57io8ZmPE4StFJuFRZGAJduLCyQ4FqfAEzbdC8hPY50EtV7lU8BRvdwQlSoFg0DBH2CIO5rC81ewRvDyaITvhFkm8LfnxC69x9+xQb8URnO6q+LbldeXS609wiEAu0kXinMyFc67nJNvOYDgZPxicPAT/qH2v2kZbDjVdCbn9UZLN+ZNaMFhhMvJ+hk5Zj/BAFsJ7qFQNlW0FNcmzlDY/2mGx70MefOVQ1wcF/IxNHav/hz6KVPRhzCUHEPSJ+gzmVY1xcouA452NhMa5MC8tz0FeoXMZdYlxHuA/BzQh19ibMLozHItVI5+4UWC5knJLbIvKT2YKAtJgai6fOwrQYRRpB0KdnR5obHbAvLdeUITcSfzf/IcgPuMIDc5zV4WeUtbK7eNVG1TNPwZ5s19LY0iPsk/u3EE3af+hJQE+YOd12Z0em4qm6gtvdYL/g7g9JSIyhONwrH1ltDbu+p+jArYKkjQLxqce7ezM2+TQlMIIXGy1TCISor8SaYgZYWdvg5pmNbXy4xnGVisR6dGyEh5JgN7nSCX6QQoI0pGzCQXKdGFzpsSX929FK6GgPlRyCUVyjWlQq7rPtcdHVn6EUzrwxIf+qdUgfDEiEVWLsoFuLgR3uonpOIceg3k5T5D6P0yd5mQkeFknRrFREGksCEsSsl8sqONsPVLOynzIhjtTalCuQk/5m+2wKOliBmfw2oxkkZYepNhHsQvaa6NAIdB6BE3MBjPHqtOg 3z504/XZ MypnI4Vot2pCSRsXVwRytRZbmE8/I2yvbB+RB6GvNV7Nl7kQPRH8TK9gY7DiJRSUKrx/PQ0SvUZ7cvww2i3wIDzJhKPbmAeuntws/OlaJhi5EVZwHdn6eiVUUenEWny/Ww0ajvyBLS14ECBQPsoQxIT3srKupTmrb5vYL4Bz34SkvbfJxiD4ruWa6Xb0HHwMW2Wqr/tTnvJUUdotbq12izhv+nBWTQ4aiBbbbEUYwAi/ruUBpKAayqhGJwTj/Kd0U7gZxRYWJ0IH/TO5MkTbILULwHPuX50gen4KQpd2DaLtgCCo5AuGq3S13d/Qnz6ItFdXVbsDu5pfM47pxbrRdgyWKutnKPvr3+BNG8vfTLzeUv67sL6BJxd2lX7W4YfSNYMvYNJIxJhlPJE+L2bD/TYRhNmHmdmfU4K3CcOEmG4MMEGz07i9Q6KN8gA== 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: List-Subscribe: List-Unsubscribe: On Fri, Nov 24, 2023 at 11:20:59AM -0800, Andrew Morton wrote: > On Thu, 23 Nov 2023 13:02:22 -0500 Peter Xu wrote: > > > This is a bug found not by any report but only by code observations. > > > > When GUP sees a devpmd/devpud and if page==NULL is returned, it means a > > fault is probably required. Here falling through when page==NULL can cause > > unexpected behavior. > > > > Well this is worrisome. We aren't able to construct a test case to > demonstrate this bug? Why is that? Is it perhaps just dead code? IIUC it's not dead code. Take the example of follow_devmap_pmd(), it can return page==NULL at least when seeing write bit missing: if (flags & FOLL_WRITE && !pmd_write(*pmd)) return NULL; AFAICT it can happen if someone does "echo 4 > /proc/$PID/clear_refs" when the mm contains the devmap pmd. Same to pud. It'll be nice if someone that works with dax would like to verify it. In my series (refactor hugetlb gup, part 2) IIUC some hugetlb selftest can start to trigger this path, but I'll need to check. So far it's dax-only. Thanks, -- Peter Xu