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=-23.3 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL 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 BDE3AC433C1 for ; Thu, 25 Mar 2021 02:11:03 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 3FAE961A21 for ; Thu, 25 Mar 2021 02:11:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3FAE961A21 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 833A06B0036; Wed, 24 Mar 2021 22:11:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7E3E46B006C; Wed, 24 Mar 2021 22:11:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 65D546B006E; Wed, 24 Mar 2021 22:11:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0235.hostedemail.com [216.40.44.235]) by kanga.kvack.org (Postfix) with ESMTP id 4B55A6B0036 for ; Wed, 24 Mar 2021 22:11:02 -0400 (EDT) Received: from smtpin32.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 0AB2518337A01 for ; Thu, 25 Mar 2021 02:11:02 +0000 (UTC) X-FDA: 77956768764.32.E835240 Received: from mail-io1-f50.google.com (mail-io1-f50.google.com [209.85.166.50]) by imf19.hostedemail.com (Postfix) with ESMTP id 4B90A90009DE for ; Thu, 25 Mar 2021 02:10:59 +0000 (UTC) Received: by mail-io1-f50.google.com with SMTP id k25so379445iob.6 for ; Wed, 24 Mar 2021 19:11:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=hKoU5fbuXR6tau309P7NjH2acT/oE9AD++ForKsP118=; b=L6mTCCBB85LiB8VWBpY+r4pzgusBb9O8UZ9QYRk1b6K7QueXG496kakAaG10e1UCY7 G4+O+FiVEO7OPZ0UnULXwYpY9cjZytqOXn10UCh3TIKsHMof2pt0/gv+BRYEHYRIZhuL VKC8W6uRHKbey5z7BJAjhhufaHLfdp24kaxORkaB+ORc+u5cZ2NLEh/qk93tigPyW2TW cbDbUugkkBTAa0gkw+0BAgHr08NmAYrrO2ZZtL32Agel39xQtV1KmEJ+WCzuNqR+KgMT zOTQF68izOPF7Lr0QCE4qk7UWuQc4C0P08qHrN0fMSQ7rGRbDkns+IEicn1PzAkDdN1U PUcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=hKoU5fbuXR6tau309P7NjH2acT/oE9AD++ForKsP118=; b=lRjHQuRSgiwer6Lvm74Nl8maXRcdC2UXuy25SI+w5XHXoNN9SpCKSSnx8gCYa513Ir 7Fc6a77swZEN9dOGPM7pcANvwM6S+WnePk7jt8G7vZ52amTZJG8/HMFAN0veAAVCuqlU 7xN8jYS5y77R1iuAvSPgxmwmEyEBrvh9hKRyWR08jSt4nDBw8GNxNTUCMKv1GNXSzyxq Jvgi+9oD+3w2OR+qZ+BW6FZz9AVQ8eRJwuJ4kO3wgsi+9kwuHbGuQM7+8SZQXfZCAe7T ahf6auB4OYnZ71EyCZ+OIfl8tjBZ/8lPe9AhOF4sixRppahr2VZ0eFqWI9xgCanVHGrz N1hw== X-Gm-Message-State: AOAM5329egqakR6C9VISVkQDUocO/s9if+dJmTzDQRuei+eW6Qpzr5l7 EbXw02Z8FnD0RcZmykMEHBVBlFycDbR5M7QMFZkgMg== X-Google-Smtp-Source: ABdhPJw9HtJcSWrg+GZkl1jPh232CLRkZRVhbTjpqVDsmNw9HWIy1/84ORisKJGDaiFNa1GUibJG1iyhbj2Vjwhjx78= X-Received: by 2002:a5e:8610:: with SMTP id z16mr4488908ioj.57.1616638260820; Wed, 24 Mar 2021 19:11:00 -0700 (PDT) MIME-Version: 1.0 References: <20210322204836.1650221-1-axelrasmussen@google.com> <20210324162027.cc723b545ff62b1ad6f5223e@linux-foundation.org> <20210325005234.GG219069@xz-x1> In-Reply-To: <20210325005234.GG219069@xz-x1> From: Axel Rasmussen Date: Wed, 24 Mar 2021 19:10:24 -0700 Message-ID: Subject: Re: [PATCH] userfaultfd/shmem: fix minor fault page leak To: Peter Xu Cc: Andrew Morton , Alexander Viro , Andrea Arcangeli , Hugh Dickins , Jerome Glisse , Joe Perches , Lokesh Gidra , Mike Rapoport , Shaohua Li , Shuah Khan , Wang Qing , LKML , linux-fsdevel@vger.kernel.org, Linux MM , linux-kselftest@vger.kernel.org, Brian Geffon , Cannon Matthews , "Dr . David Alan Gilbert" , David Rientjes , Michel Lespinasse , Mina Almasry , Oliver Upton Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 4B90A90009DE X-Stat-Signature: rnqibcpzhwzyniqsobrhrtjmpefizk8d Received-SPF: none (google.com>: No applicable sender policy available) receiver=imf19; identity=mailfrom; envelope-from=""; helo=mail-io1-f50.google.com; client-ip=209.85.166.50 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1616638259-762662 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 Wed, Mar 24, 2021 at 5:52 PM Peter Xu wrote: > > Hi, Andrew, > > On Wed, Mar 24, 2021 at 04:20:27PM -0700, Andrew Morton wrote: > > On Mon, 22 Mar 2021 13:48:35 -0700 Axel Rasmussen wrote: > > > > > This fix is analogous to Peter Xu's fix for hugetlb [0]. If we don't > > > put_page() after getting the page out of the page cache, we leak the > > > reference. > > > > > > The fix can be verified by checking /proc/meminfo and running the > > > userfaultfd selftest in shmem mode. Without the fix, we see MemFree / > > > MemAvailable steadily decreasing with each run of the test. With the > > > fix, memory is correctly freed after the test program exits. > > > > > > Fixes: 00da60b9d0a0 ("userfaultfd: support minor fault handling for shmem") > > > > Confused. The affected code: > > > > > --- a/mm/shmem.c > > > +++ b/mm/shmem.c > > > @@ -1831,6 +1831,7 @@ static int shmem_getpage_gfp(struct inode *inode, pgoff_t index, > > > > > > if (page && vma && userfaultfd_minor(vma)) { > > > unlock_page(page); > > > + put_page(page); > > > *fault_type = handle_userfault(vmf, VM_UFFD_MINOR); > > > return 0; > > > } > > > > Is added by Peter's "page && vma && userfaultfd_minor". I assume that > > "Fixes:" is incorrect? > > > > It seems to me the commit is correct as pointed to in "Fixes", but I do have a > different commit ID here: > > commit 63c826b1372c4930f89b8a55092699fa7f0d6f4e > Author: Axel Rasmussen > Date: Thu Mar 18 10:20:43 2021 -0400 > > userfaultfd: support minor fault handling for shmem > > Axel, did you fetched the commit ID from your local tree, perhaps? Since I > should have fetched from hnaz/linux-mm and I can see Andrew's sign-off too. > > Thanks, > > -- > Peter Xu > Ah, this is the SHA I see when I "git log --grep linux-next/akpm" (where my repo's linux-next remote is [1]): commit 00da60b9d0a03818c36a2fe862578309c27006ad Author: Axel Rasmussen Date: Thu Mar 18 17:01:51 2021 +1100 userfaultfd: support minor fault handling for shmem This is the commit that this new patch fixes. I'll admit I'm a bit unsure which tree the "Fixes:" tag is meant to refer to before the commits make it into Linus' tree, if I should look up the commit another way just let me know. :) And, sorry for the confusion. [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git