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 CAC41C05027 for ; Wed, 1 Feb 2023 12:23:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DCBC6B0071; Wed, 1 Feb 2023 07:23:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 48BEC6B0072; Wed, 1 Feb 2023 07:23:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30EB96B0074; Wed, 1 Feb 2023 07:23:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 1F6376B0071 for ; Wed, 1 Feb 2023 07:23:35 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id E2078A0DAF for ; Wed, 1 Feb 2023 12:23:34 +0000 (UTC) X-FDA: 80418638748.14.43E333D Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by imf21.hostedemail.com (Postfix) with ESMTP id 1C6FC1C000F for ; Wed, 1 Feb 2023 12:23:31 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=JFlcwhut; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675254212; 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=JEkiUTacxMxuQViA2zFVDrCybVhWswU79PAFJJV/w9g=; b=v2nm8WFSqpFhI1IT6caLzadqnItu8jReqsKRZEsxHJ9Dc8o7/fMnHY4Pk/ZeSU67b8sCqv 3UjUSg5c5yPP6wxbC7BPZ7OBmMmUR3bpaIAGNGKVuOlR1G3YRYCzcqX+n9ZfaGhsYxzuGL axEzybuGxd0IrkxQRkI0o2dNVZCF0bY= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=JFlcwhut; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf21.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675254212; a=rsa-sha256; cv=none; b=bgJnVAQxKSTsns5MjP2P+zjujjj3B6eIGwa/DXhgDll0EGrKNYzSZZpsq8Tn2pqjDiZ8+4 m4pQg+t/KIdog5yhyySqiNo2lYr6TMoR0WrurlctJ1DXWYq9TJOWpEJEnr4SzagQXctOyk ELQdxpVbHDlCZ2Lv76uLZHpkS6nCumU= Received: by mail-pf1-f177.google.com with SMTP id a184so12480009pfa.9 for ; Wed, 01 Feb 2023 04:23:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=JEkiUTacxMxuQViA2zFVDrCybVhWswU79PAFJJV/w9g=; b=JFlcwhut2YxmzOnINTmfWPgykYOoLnNzxL7qoNOpca+oiLZu8x5995wnOMAxVO+Ros XgubNWP6I84WorhX/iUfTp0ZDNOaxcuFDzmMCuFrPtBkuuwag9xqEI4RqxxPsooCQ0FQ 8ItpDZyF9Zv4u2C+Vf2/v7tnRbxkE0PXjCp8YbR7borkIjcoVXpNWrcJDiJDLyjgnV/h u+tsoufLduN4tVPPYx1Pb4csiCV27ywPKrB0bIF6biJifnwwzaBm16XfH7DpmZgLL3tX 3uDLvtanpupnMFpJac9gBh/h5/dmuW1WAMrZpBHcqEuzjxkX8xL9mH5HpZhHq2X6gAz4 07MQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=JEkiUTacxMxuQViA2zFVDrCybVhWswU79PAFJJV/w9g=; b=Bh95Gd0vl/T4yjaBUv8wUof0Bov5ugw96rmdwp4GJ2gvKHjAbAHYfcHMk0AXNGPZkU 67RBLdwtoxythqPvGsvCm8iFO6godMCfWJo9kXL7obfsqzEH7cnvei/JGrEq+L6S6Zc3 eA17TLT8oxEX2td0QOe92fAG0p4lCjGSBvPJBRb0BviZwDneaaSzgyZd6timcX53DVGS dn2pS73SWGDmN1x29CAwv+WIPiFnrIM5VBsoX48iNOoJVtkhQgLnDXSb6CJTOpVMNtey yZosa1YG6hOvYVLFTkcmDJtyQtdQUWkGHpkoXRBj6alZT95LVpPZATxPWztDQfraa7tN M/EQ== X-Gm-Message-State: AO0yUKUtrLCr9Y0UBLpp9UOR4zQUDecWSF8ZeAgNWkRDFr2spZ13Mhb5 zyEqh4p3H6dxp8z8/0pX/5E= X-Google-Smtp-Source: AK7set+GpUrYJx7Y0L584QZ8mHnSLMQmzHWvHob6Mlx6VGj4q3DTD2lRBF5v76Gk3l8+0GlLwkWQow== X-Received: by 2002:a05:6a00:1392:b0:593:91e4:99e2 with SMTP id t18-20020a056a00139200b0059391e499e2mr2628027pfg.34.1675254210775; Wed, 01 Feb 2023 04:23:30 -0800 (PST) Received: from hyeyoo ([114.29.91.56]) by smtp.gmail.com with ESMTPSA id y40-20020a056a001ca800b0058dbb5c5038sm243351pfw.182.2023.02.01.04.23.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 Feb 2023 04:23:29 -0800 (PST) Date: Wed, 1 Feb 2023 21:23:16 +0900 From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Suren Baghdasaryan Cc: akpm@linux-foundation.org, michel@lespinasse.org, jglisse@google.com, mhocko@suse.com, vbabka@suse.cz, hannes@cmpxchg.org, mgorman@techsingularity.net, dave@stgolabs.net, willy@infradead.org, liam.howlett@oracle.com, peterz@infradead.org, ldufour@linux.ibm.com, paulmck@kernel.org, mingo@redhat.com, will@kernel.org, luto@kernel.org, songliubraving@fb.com, peterx@redhat.com, david@redhat.com, dhowells@redhat.com, hughd@google.com, bigeasy@linutronix.de, kent.overstreet@linux.dev, punit.agrawal@bytedance.com, lstoakes@gmail.com, peterjung1337@gmail.com, rientjes@google.com, axelrasmussen@google.com, joelaf@google.com, minchan@google.com, rppt@kernel.org, jannh@google.com, shakeelb@google.com, tatashin@google.com, edumazet@google.com, gthelen@google.com, gurua@google.com, arjunroy@google.com, soheil@google.com, leewalsh@google.com, posk@google.com, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, x86@kernel.org, linux-kernel@vger.kernel.org, kernel-team@android.com, Sebastian Reichel Subject: Re: [PATCH v4 4/7] mm: replace vma->vm_flags direct modifications with modifier calls Message-ID: References: <20230126193752.297968-1-surenb@google.com> <20230126193752.297968-5-surenb@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 1C6FC1C000F X-Stat-Signature: ppjceaicyxk8c9maxc13rjd8bb7k1sx9 X-HE-Tag: 1675254211-899860 X-HE-Meta: U2FsdGVkX1/+kJI1Z5bgiOydZSY8MedvQyMtilU0/vJZJlGgOqUGeHQLyBQNl9KfESpZ01ea1BRxW0d3IXP4aOBMl6o6WMD/k2fWf/RVxoQt/RoIRcyuCcOjWa35B0d8vRSP0cmMEhVzUjTJ6UA2CrvQ4jcsOlEF52YIyjJrY9JO4BRGqmlzs2eVLwDNwlatWCbXH9Okk04iMQffMAndIRtmmEix8rgK9Xa9BgbI0pkqp3/QWhuhc/GOZB+DrZZTExSMY7dF9cpj9xNXZwGARrohCK5kbeekzuwrjGeV4fKBIVJIph3gQ/9l6k/jc/4rCL1ef3wRZhYIJs7g3UsfyIXWtix4P0KCf3aiEsIwrieobHThi+Zp4F1QcWDs51y7gXrZAYH6r6mJ3maphArJJ0WnJY/lfZAWNO8pI0DKw1c8ytFT9C2ZFOxXaod/lY8xHbAYsK+cZMt2ELYwv0UrcaGd38uhdz/S0uo4uSbP9a9Bk84VVIHNNVyC7Y0ztDDDzX2HWhxibJ9qbwo3sd0z5M1wFjOyUZdxDq7zWlmzlX4NroFVGlCJnMJt4pH4rHvP8UQaJmVaIDyPyX14bio4VflLok6x7ZtNMdcqyMZuZGc26CAzA0Tp9tFGKQa2PnsN5KTe2VNeXegeIs5roiBgSLeX9GmfjgetHNrcaliSLnCUdh/DqY7U/C+GC8/f3X0PuAhqZyBi/ZG4jbwc0e5QMBHVFkmBC1ZSrGmrjAMRIVFZYA5RZaA1yMLQvMZpTFrdbWATt9NH3SV2y16MmLe2IhxNE+DKc/13rU1wYwPavYebnn8RmameWBzaSYWhVGBgN5f7pASJdA4+56gaS3brhnJczJZay0ocrnvPikrMWVqk3iMxCHlpn3Hzcdl6FTYMBsh1KXXufuFCjAoX8qWwH1NsjRfIGcAV0o7yMNlW5CzH2NQULbFCFad8HSbgJJXeMqcXM98Lky8qDKAshUp Adp+izPu BCgh7nzB0D9EdVsgxJKg2wYj7UWiETDXcUhGY13d/eplLzwKXZ38ZuYH6YMGGrEBUvVhwYmvU2nPvl/zi9J2Kfk5qZZ79tYfowPAYDJtq+bD7k77/EZ/SPqUn2rLFliStoi6VMVNKZkTPUXWFRWZQHrl4UcYkkDe1zGN57lfJc8ZC1WD8qnL8jA3hVbOUmvr7TcTwHkZNZgqxgslgcWUZJ4k4y+9eXnxYZP5Pctv/pkNPNdG1EHSDLTuH3xbw6B0G5GdO9EkDZvA1m3juTxnEii8jSrxGyV24F3+siwtCIKSzKQrPZAPHu+Bi2G6/mmRUhsc/VjYr5vlODit9Eqr89TvDM9+ryUN5YUupfAQ9k6Y+s5TYkqsykoRdLWihvRrqg2P+cYbM9002V8mjh0Jara+kiKSkTo/uzH/zhgtmkv+RMtwp9gXH8bdtxByX1AvWkXLZEqmZGGHkkmdg1MyALkVkAQU5lsH9t+i9Sbfoy0lJzWKeXHGH6zxOGYXnjL9ACun25qP31sjgOuIRxkgcTRdYbixBvLLqFzxl9HiuI3lb/LHbTR6+c7utNm4hWrGz77nTNYXEyLugZW/NAJYGI79lIInn7s5+HNY/CH9bW/GoDUAUKo5JPMA+yZOP7t9nFUHJYt0o1Jh3wvRVaSqfcBwCNHq+Yx8MfpnXoqkWv0dWi+rt+oYyTVJfbLwdW1TMG+SDtFV2q0qTOI3vl16NrdGCg4MB3D53ZWvw9PxN0WzLUEOgz9W7KUVKzYpVmM4pHJJmKGjuaVU6uEf2lq14E8AxKDxyDstOsxPUZsPO2CgJHmY+EeS42W7Q6w== 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, Jan 31, 2023 at 10:54:22AM -0800, Suren Baghdasaryan wrote: > On Tue, Jan 31, 2023 at 12:32 AM Hyeonggon Yoo <42.hyeyoo@gmail.com> wrote: > > > > On Thu, Jan 26, 2023 at 11:37:49AM -0800, Suren Baghdasaryan wrote: > > > Replace direct modifications to vma->vm_flags with calls to modifier > > > functions to be able to track flag changes and to keep vma locking > > > correctness. > > > > > > Signed-off-by: Suren Baghdasaryan > > > Acked-by: Michal Hocko > > > Acked-by: Mel Gorman > > > Acked-by: Mike Rapoport (IBM) > > > Acked-by: Sebastian Reichel > > > --- > > > arch/arm/kernel/process.c | 2 +- > > > 120 files changed, 188 insertions(+), 199 deletions(-) > > > > > > > Hello Suren, > > Hi Hyeonggon, > > > > > [...] > > > > Whoa, it's so long. > > Mostly looks fine but two things I'm not sure about: > > > > > diff --git a/drivers/misc/open-dice.c b/drivers/misc/open-dice.c > > > index 9dda47b3fd70..7be4e6c9f120 100644 > > > --- a/drivers/misc/open-dice.c > > > +++ b/drivers/misc/open-dice.c > > > @@ -95,12 +95,12 @@ static int open_dice_mmap(struct file *filp, struct vm_area_struct *vma) > > > if (vma->vm_flags & VM_WRITE) > > > return -EPERM; > > > /* Ensure userspace cannot acquire VM_WRITE later. */ > > > - vma->vm_flags &= ~VM_MAYWRITE; > > > + vm_flags_clear(vma, VM_MAYSHARE); > > > } > > > > I think it should be: > > s/VM_MAYSHARE/VM_MAYWRITE/ > > Good eye! Yes, this is definitely a bug. Will post a next version with this fix. > > > > > > diff --git a/mm/mlock.c b/mm/mlock.c > > > index 5c4fff93cd6b..ed49459e343e 100644 > > > --- a/mm/mlock.c > > > +++ b/mm/mlock.c > > > @@ -380,7 +380,7 @@ static void mlock_vma_pages_range(struct vm_area_struct *vma, > > > */ > > > if (newflags & VM_LOCKED) > > > newflags |= VM_IO; > > > - WRITE_ONCE(vma->vm_flags, newflags); > > > + vm_flags_reset(vma, newflags); > > > > > > lru_add_drain(); > > > walk_page_range(vma->vm_mm, start, end, &mlock_walk_ops, NULL); > > > @@ -388,7 +388,7 @@ static void mlock_vma_pages_range(struct vm_area_struct *vma, > > > > > > if (newflags & VM_IO) { > > > newflags &= ~VM_IO; > > > - WRITE_ONCE(vma->vm_flags, newflags); > > > + vm_flags_reset(vma, newflags); > > > } > > > } > > > > wondering the if the comment above is still true? > > > > /* > > * There is a slight chance that concurrent page migration, > > * or page reclaim finding a page of this now-VM_LOCKED vma, > > * will call mlock_vma_folio() and raise page's mlock_count: > > * double counting, leaving the page unevictable indefinitely. > > * Communicate this danger to mlock_vma_folio() with VM_IO, > > * which is a VM_SPECIAL flag not allowed on VM_LOCKED vmas. > > * mmap_lock is held in write mode here, so this weird > > * combination should not be visible to other mmap_lock users; > > * but WRITE_ONCE so rmap walkers must see VM_IO if VM_LOCKED. > > */ > > > > does ACCESS_PRIVATE() still guarentee that compiler cannot mysteriously > > optimize writes like WRITE_ONCE()? > > I don't see ACCESS_PRIVATE() providing the same guarantees as > WRITE_ONCE(), therefore I think this also needs to be changed. I'll > need to introduce something like vm_flags_reset_once() and use it > here. vm_flags_reset_once() would do WRITE_ONCE() and otherwise would > be identical to vm_flags_reset(). > > I'll post a new version with the fixes later today. > > Thanks for the review! > Suren. Thanks for quick reply! Andrew's fix and the new patch looks good to me. with these two things addressed: Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> Regards, Hyeonggon