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 142F0C76196 for ; Fri, 7 Apr 2023 20:12:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D45E3900002; Fri, 7 Apr 2023 16:12:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF5866B0074; Fri, 7 Apr 2023 16:12:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE48C900002; Fri, 7 Apr 2023 16:12:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id B04766B0072 for ; Fri, 7 Apr 2023 16:12:52 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 80569ACC4E for ; Fri, 7 Apr 2023 20:12:52 +0000 (UTC) X-FDA: 80655693384.24.EB186CA Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf20.hostedemail.com (Postfix) with ESMTP id B5EEC1C000C for ; Fri, 7 Apr 2023 20:12:48 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=KsHu1oFL; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680898371; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=nSXvMunQZ6w/r4GXG20xJdtyoIFgTw/AYd8vmxIJz6E=; b=k5TmdGG0NQLmP+w0IUvw+L9f7O4AyRNHd+WYZIDOKSE4HB/dECFtQ5BuSYfstg+GgN0Zgi 7FMaYTSxfzpjVlJI/q6th4IcRS1Hg7h0a4wnNYburZe9bAVzcBSwbuhbKAqWY3rUy7UAvR NHZPeYFGBki2/e374kur1AkdUt0Kq0k= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=KsHu1oFL; spf=none (imf20.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680898371; a=rsa-sha256; cv=none; b=Otwp7VtOAdOOTHHeYECykWgByJUAYKbIsO3rt5ct4uH9tds9hAgZiqMELHb1RnoWiAHm/Y 9doB7Z3P1MlsAmIeLrQ2pK/wDI9h7ZHFLt+2tt4JO0m42QjFPJxR2fLS9IOnaGdxrCQFgF AIfneIYM5MH10uzCi9F+RdPe8hVwQFU= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=nSXvMunQZ6w/r4GXG20xJdtyoIFgTw/AYd8vmxIJz6E=; b=KsHu1oFLu0IsbFLsbvUEvuao7v u88SJDIUrYCEr7alRSnZhp8cXePhpv7UeZM6veZR/XEN0qM/CT21afHCZwgriQxy2dqaa+/RvoorJ TtzHbzQj6tn22sqTOKhq/d5GQ7JiSpSj0XPyWWWEFBKeT8anfmGxVQNhChKcD7PWmc28F0JpGfI1u BKm6xr1Zm1RcJUEaV8XpnX2CyPEjbz7gU3BiTeRYG5LyvDyek7mYJ51C/DBwif0YU0j4KuFxDw0Dh Pc4JKdwny7rxKgHSr5VHBcV64MM2jYI0PVWY7LCAMNHgMtCPplA/0v8pg5xEc9YCYXcywOttaL0eB lZDnBHaQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1pksRu-001AWj-OO; Fri, 07 Apr 2023 20:12:42 +0000 Date: Fri, 7 Apr 2023 21:12:42 +0100 From: Matthew Wilcox To: Suren Baghdasaryan Cc: linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, Punit Agrawal Subject: Re: [PATCH 1/6] mm: Allow per-VMA locks on file-backed VMAs Message-ID: References: <20230404135850.3673404-1-willy@infradead.org> <20230404135850.3673404-2-willy@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 8b856yoptpyxq4s8ut86ggmyosrts5yq X-Rspamd-Queue-Id: B5EEC1C000C X-HE-Tag: 1680898368-526818 X-HE-Meta: U2FsdGVkX1+yTFs3YbDx93ZaQJbabyLH8zNNfJjPRCEMEAOOZ3wirwNs3cY4LTswltkwxot/lHgP5Kno9bPFqqc63pBnbqum5fEDAowdYyRpXlHSghAzv8wyR08jMdgXw0q5NeEHptbT8yS43ruxul0wiiGcQGy/jZIqHE7znAw7cnN7Rn+bk0jUvy90GgBu0VVvOGgf7TdYbnGbvWRkobqFIrUSSuVtYIb21Fp5qqLyirMIW/iJqVTyY9oEocNYeDbvKIygiJonirGzynMRAsUyuUKXdZfai5uuwzDIMLX4LG9lYXUYJH5arWUqkkEPv3Y+TjBVaviQnKUT+7hbJ4Rpw/MOkS+zCFd9v/BwEkQMdyzm8Esm/GMrqtRftxZijW3Zw1VSguekAMGblvjHXT+b8zQE9xdNSGonf/nu6FmHKOdujGAiFZxT93YJdXWM7d/EIX57gZz8JJv/RAlEGTJ9wKKNGyMJArjzJ7t0OnGU4/VJTJIv72RxdbNHLJXFUJj5H5WvxkB/oU8txcjGV5Lfu288+Rp1dWrf/xm6fIpOkWUyD6U33EkJGTsZ26xscU3f2VBjj9Bd8y5LrsKtb3m0R++13r4EziofSzEs5NsG8VpQDS4p5k3KT+kffoHluwR5GF1VGWh0d+xqUTUh1GAkZa3WdGzAL4/EUmLGPcZvXXsdwJ3vykymuR76x3Z6w33irSv5iHi/9yTc657XCF9ZBju2c65GkWSxWuwj3pSFen4qUfB7VLqM0rAbWG7RZmMyDZn1SkErDjZy68S8EMEWQiKijy4UVozn6NHL3osPPrj5ybikmtkMY2kfGlam/IYY9bNtlVNt4acKaokLSsQ2QzownT+gFpUO2wRebymENm5iiLCo8reYjtHA3VG4ufXglDrDtH5y4g7qK5nIH5eDCAAf/6slCWlL7DUd/BeTCpq7n4phQ9Md42hgHpbT3HCFJddAJBcESuAGwlc wXsSDNVV AlT+e8DdCJwihHAyViLTJnWHTkhsTeYVr3KPU0SK0HBOMKmCKjzloyuA+K4diOmmsDB3/ffxQXplhzSPGIs0oGfImiCSTW0qa/o2RQfmRrsxfN2xzmyc9HF4To89moxrLMdN34YFyICHVIJUwGJ4Z8V/WykZfwaDDrTqCOtsk5XWns9ctcg7AWeb9Ycfjk68e0mE9/rd7XYry0dNY06ceIFVqiA== 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 Fri, Apr 07, 2023 at 10:54:00AM -0700, Suren Baghdasaryan wrote: > On Tue, Apr 4, 2023 at 6:59 AM Matthew Wilcox (Oracle) > wrote: > > > > The fault path will immediately fail in handle_mm_fault(), so this > > is the minimal step which allows the per-VMA lock to be taken on > > file-backed VMAs. There may be a small performance reduction as a > > little unnecessary work will be done on each page fault. See later > > patches for the improvement. > > > > Signed-off-by: Matthew Wilcox (Oracle) > > --- > > mm/memory.c | 9 ++++----- > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > diff --git a/mm/memory.c b/mm/memory.c > > index fdaec7772fff..f726f85f0081 100644 > > --- a/mm/memory.c > > +++ b/mm/memory.c > > @@ -5223,6 +5223,9 @@ vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address, > > flags & FAULT_FLAG_REMOTE)) > > return VM_FAULT_SIGSEGV; > > > > + if ((flags & FAULT_FLAG_VMA_LOCK) && !vma_is_anonymous(vma)) > > + return VM_FAULT_RETRY; > > + > > There are count_vm_event(PGFAULT) and count_memcg_event_mm(vma->vm_mm, > PGFAULT) earlier in this function. Returning here and retrying I think > will double-count this page fault. Returning before this accounting > should fix this issue. You're right, but this will be an issue with later patches in the series anyway as we move the check further and further down the call-chain. For that matter, it's an issue in do_swap_page() right now, isn't it? I suppose we don't care too much because it's the rare case where we go into do_swap_page() and so the stats are "correct enough".