From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Suren Baghdasaryan <surenb@google.com>
Cc: akpm@linux-foundation.org, ccross@google.com,
sumit.semwal@linaro.org, mhocko@suse.com, dave.hansen@intel.com,
keescook@chromium.org, willy@infradead.org,
kirill.shutemov@linux.intel.com, vbabka@suse.cz,
hannes@cmpxchg.org, corbet@lwn.net, viro@zeniv.linux.org.uk,
rdunlap@infradead.org, kaleshsingh@google.com, peterx@redhat.com,
rppt@kernel.org, peterz@infradead.org, catalin.marinas@arm.com,
vincenzo.frascino@arm.com, chinwen.chang@mediatek.com,
axelrasmussen@google.com, aarcange@redhat.com, jannh@google.com,
apopple@nvidia.com, jhubbard@nvidia.com, yuzhao@google.com,
will@kernel.org, fenghua.yu@intel.com,
thunder.leizhen@huawei.com, hughd@google.com,
feng.tang@intel.com, jgg@ziepe.ca, guro@fb.com,
tglx@linutronix.de, krisman@collabora.com,
chris.hyser@oracle.com, pcc@google.com, ebiederm@xmission.com,
axboe@kernel.dk, legion@kernel.org, eb@emlix.com,
songmuchun@bytedance.com, viresh.kumar@linaro.org,
thomascedeno@google.com, sashal@kernel.org, cxfcosmos@gmail.com,
linux@rasmusvillemoes.dk, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-doc@vger.kernel.org,
linux-mm@kvack.org, kernel-team@android.com,
Pekka Enberg <penberg@kernel.org>, Ingo Molnar <mingo@kernel.org>,
Oleg Nesterov <oleg@redhat.com>,
Jan Glauber <jan.glauber@gmail.com>,
John Stultz <john.stultz@linaro.org>,
Rob Landley <rob@landley.net>,
"Serge E. Hallyn" <serge.hallyn@ubuntu.com>,
David Rientjes <rientjes@google.com>,
Rik van Riel <riel@redhat.com>, Mel Gorman <mgorman@suse.de>,
Michel Lespinasse <walken@google.com>,
Tang Chen <tangchen@cn.fujitsu.com>, Robin Holt <holt@sgi.com>,
Shaohua Li <shli@fusionio.com>,
Sasha Levin <sasha.levin@oracle.com>,
Minchan Kim <minchan@kernel.org>
Subject: Re: [PATCH v8 1/3] mm: rearrange madvise code to allow for reuse
Date: Sat, 28 Aug 2021 19:19:46 +0300 [thread overview]
Message-ID: <YSpiIrQKs5RUccYk@grain> (raw)
In-Reply-To: <20210827191858.2037087-2-surenb@google.com>
On Fri, Aug 27, 2021 at 12:18:56PM -0700, Suren Baghdasaryan wrote:
...
>
> +/*
> + * Apply an madvise behavior to a region of a vma. madvise_update_vma
> + * will handle splitting a vm area into separate areas, each area with its own
> + * behavior.
> + */
> +static int madvise_vma_behavior(struct vm_area_struct *vma,
> + struct vm_area_struct **prev,
> + unsigned long start, unsigned long end,
> + unsigned long behavior)
> +{
> + int error = 0;
Hi Suren! A nitpick -- this variable is never used with default value
so I think we could drop assignment here.
...
> + case MADV_DONTFORK:
> + new_flags |= VM_DONTCOPY;
> + break;
> + case MADV_DOFORK:
> + if (vma->vm_flags & VM_IO) {
> + error = -EINVAL;
We can exit early here, without jumping to the end of the function, right?
> + goto out;
> + }
> + new_flags &= ~VM_DONTCOPY;
> + break;
> + case MADV_WIPEONFORK:
> + /* MADV_WIPEONFORK is only supported on anonymous memory. */
> + if (vma->vm_file || vma->vm_flags & VM_SHARED) {
> + error = -EINVAL;
And here too.
> + goto out;
> + }
> + new_flags |= VM_WIPEONFORK;
> + break;
> + case MADV_KEEPONFORK:
> + new_flags &= ~VM_WIPEONFORK;
> + break;
> + case MADV_DONTDUMP:
> + new_flags |= VM_DONTDUMP;
> + break;
> + case MADV_DODUMP:
> + if (!is_vm_hugetlb_page(vma) && new_flags & VM_SPECIAL) {
> + error = -EINVAL;
Same.
> + goto out;
> + }
> + new_flags &= ~VM_DONTDUMP;
> + break;
> + case MADV_MERGEABLE:
> + case MADV_UNMERGEABLE:
> + error = ksm_madvise(vma, start, end, behavior, &new_flags);
> + if (error)
> + goto out;
> + break;
> + case MADV_HUGEPAGE:
> + case MADV_NOHUGEPAGE:
> + error = hugepage_madvise(vma, &new_flags, behavior);
> + if (error)
> + goto out;
> + break;
> + }
> +
> + error = madvise_update_vma(vma, prev, start, end, new_flags);
> +
> +out:
I suppose we better keep the former comment on why we maps ENOMEM to EAGAIN?
Cyrill
next prev parent reply other threads:[~2021-08-28 16:19 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-27 19:18 [PATCH v8 0/3] Anonymous VMA naming patches Suren Baghdasaryan
2021-08-27 19:18 ` [PATCH v8 1/3] mm: rearrange madvise code to allow for reuse Suren Baghdasaryan
2021-08-28 0:14 ` Kees Cook
2021-08-28 0:58 ` Suren Baghdasaryan
2021-08-28 16:19 ` Cyrill Gorcunov [this message]
2021-08-28 21:59 ` Suren Baghdasaryan
2021-08-27 19:18 ` [PATCH v8 2/3] mm: add a field to store names for private anonymous memory Suren Baghdasaryan
2021-08-28 1:47 ` Matthew Wilcox
2021-08-28 5:52 ` Kees Cook
2021-08-28 21:47 ` Suren Baghdasaryan
2021-08-30 8:12 ` Rasmus Villemoes
2021-08-30 16:16 ` Suren Baghdasaryan
2021-08-30 16:59 ` Matthew Wilcox
2021-08-31 17:21 ` Suren Baghdasaryan
2021-08-28 21:28 ` Cyrill Gorcunov
2021-08-28 21:53 ` Suren Baghdasaryan
2021-09-01 8:09 ` Michal Hocko
2021-09-01 15:28 ` Suren Baghdasaryan
2021-09-01 8:10 ` Michal Hocko
2021-09-01 15:42 ` Suren Baghdasaryan
2021-09-03 11:49 ` Michal Hocko
2021-09-03 15:47 ` Suren Baghdasaryan
2021-08-27 19:18 ` [PATCH v8 3/3] mm: add anonymous vma name refcounting Suren Baghdasaryan
2021-08-28 5:28 ` Kees Cook
2021-08-28 21:13 ` Suren Baghdasaryan
2021-08-30 7:03 ` Rolf Eike Beer
2021-08-30 16:12 ` Suren Baghdasaryan
2021-08-28 12:48 ` [PATCH v8 0/3] Anonymous VMA naming patches Pavel Machek
2021-08-28 22:06 ` Suren Baghdasaryan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YSpiIrQKs5RUccYk@grain \
--to=gorcunov@gmail.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=apopple@nvidia.com \
--cc=axboe@kernel.dk \
--cc=axelrasmussen@google.com \
--cc=catalin.marinas@arm.com \
--cc=ccross@google.com \
--cc=chinwen.chang@mediatek.com \
--cc=chris.hyser@oracle.com \
--cc=corbet@lwn.net \
--cc=cxfcosmos@gmail.com \
--cc=dave.hansen@intel.com \
--cc=eb@emlix.com \
--cc=ebiederm@xmission.com \
--cc=feng.tang@intel.com \
--cc=fenghua.yu@intel.com \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=holt@sgi.com \
--cc=hughd@google.com \
--cc=jan.glauber@gmail.com \
--cc=jannh@google.com \
--cc=jgg@ziepe.ca \
--cc=jhubbard@nvidia.com \
--cc=john.stultz@linaro.org \
--cc=kaleshsingh@google.com \
--cc=keescook@chromium.org \
--cc=kernel-team@android.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=krisman@collabora.com \
--cc=legion@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mgorman@suse.de \
--cc=mhocko@suse.com \
--cc=minchan@kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=pcc@google.com \
--cc=penberg@kernel.org \
--cc=peterx@redhat.com \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=riel@redhat.com \
--cc=rientjes@google.com \
--cc=rob@landley.net \
--cc=rppt@kernel.org \
--cc=sasha.levin@oracle.com \
--cc=sashal@kernel.org \
--cc=serge.hallyn@ubuntu.com \
--cc=shli@fusionio.com \
--cc=songmuchun@bytedance.com \
--cc=sumit.semwal@linaro.org \
--cc=surenb@google.com \
--cc=tangchen@cn.fujitsu.com \
--cc=tglx@linutronix.de \
--cc=thomascedeno@google.com \
--cc=thunder.leizhen@huawei.com \
--cc=vbabka@suse.cz \
--cc=vincenzo.frascino@arm.com \
--cc=viresh.kumar@linaro.org \
--cc=viro@zeniv.linux.org.uk \
--cc=walken@google.com \
--cc=will@kernel.org \
--cc=willy@infradead.org \
--cc=yuzhao@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).