From: Shuah Khan <skhan@linuxfoundation.org>
To: Suren Baghdasaryan <surenb@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@suse.com>,
David Rientjes <rientjes@google.com>,
Matthew Wilcox <willy@infradead.org>,
Johannes Weiner <hannes@cmpxchg.org>,
Roman Gushchin <guro@fb.com>, Minchan Kim <minchan@kernel.org>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Andrea Arcangeli <aarcange@redhat.com>,
Christian Brauner <brauner@kernel.org>,
Christoph Hellwig <hch@infradead.org>,
Oleg Nesterov <oleg@redhat.com>,
David Hildenbrand <david@redhat.com>,
Jann Horn <jannh@google.com>, Shakeel Butt <shakeelb@google.com>,
Peter Xu <peterx@redhat.com>, John Hubbard <jhubbard@nvidia.com>,
shuah@kernel.org, LKML <linux-kernel@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>,
linux-kselftest@vger.kernel.org,
kernel-team <kernel-team@android.com>,
Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH 1/3] selftests: vm: add process_mrelease tests
Date: Tue, 10 May 2022 10:35:57 -0600 [thread overview]
Message-ID: <ebaad398-110d-6a6b-70a5-3abeacfcb14a@linuxfoundation.org> (raw)
In-Reply-To: <CAJuCfpEAqEEf-SCi87-VZrFYcoPff8Gkda5uF8fYRyKQo_vkjw@mail.gmail.com>
On 5/10/22 10:29 AM, Suren Baghdasaryan wrote:
> On Tue, May 10, 2022 at 8:43 AM Shuah Khan <skhan@linuxfoundation.org> wrote:
>>
>> On 5/9/22 9:00 PM, Suren Baghdasaryan wrote:
>>> Introduce process_mrelease syscall sanity tests. They include tests of
>>> invalid pidfd and flags inputs, attempting to call process_mrelease
>>> with a live process and a valid usage of process_mrelease. Because
>>> process_mrelease has to be used against a process with a pending SIGKILL,
>>> it's possible that the process exits before process_mrelease gets called.
>>> In such cases we retry the test with a victim that allocates twice more
>>> memory up to 1GB. This would require the victim process to spend more
>>> time during exit and process_mrelease has a better chance of catching
>>> the process before it exits.
>>>
>>
>> +1 on Mike's comments on improving the change log. List what is getting
>> tested as opposed to describing the test code.
>
> I'll try to improve the description but IMHO it does describe what
> it's testing - the process_mrelease syscall with valid and invalid
> inputs. I could omit the implementation details if that helps.
>
>>
>>> Signed-off-by: Suren Baghdasaryan <surenb@google.com>
>>> ---
>>> tools/testing/selftests/vm/Makefile | 1 +
>>> tools/testing/selftests/vm/mrelease_test.c | 176 +++++++++++++++++++++
>>> tools/testing/selftests/vm/run_vmtests.sh | 16 ++
>>> 3 files changed, 193 insertions(+)
>>> create mode 100644 tools/testing/selftests/vm/mrelease_test.c
>>
>> Please update .gitignore with the new executable.
>
> Ack.
>
>>
>>>
>>> diff --git a/tools/testing/selftests/vm/Makefile b/tools/testing/selftests/vm/Makefile
>>> index 04a49e876a46..733fccbff0ef 100644
>>> --- a/tools/testing/selftests/vm/Makefile
>>> +++ b/tools/testing/selftests/vm/Makefile
>>> @@ -43,6 +43,7 @@ TEST_GEN_FILES += map_populate
>>> TEST_GEN_FILES += memfd_secret
>>> TEST_GEN_FILES += mlock-random-test
>>> TEST_GEN_FILES += mlock2-tests
>>> +TEST_GEN_FILES += mrelease_test
>>> TEST_GEN_FILES += mremap_dontunmap
>>> TEST_GEN_FILES += mremap_test
>>> TEST_GEN_FILES += on-fault-limit
>>> diff --git a/tools/testing/selftests/vm/mrelease_test.c b/tools/testing/selftests/vm/mrelease_test.c
>>> new file mode 100644
>>> index 000000000000..a61061bf8433
>>> --- /dev/null
>>> +++ b/tools/testing/selftests/vm/mrelease_test.c
>>> @@ -0,0 +1,176 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>> +/*
>>> + * Copyright 2022 Google LLC
>>> + */
>>> +#define _GNU_SOURCE
>>> +#include <errno.h>
>>> +#include <stdio.h>
>>> +#include <stdlib.h>
>>> +#include <sys/wait.h>
>>> +#include <unistd.h>
>>> +
>>> +#include "util.h"
>>> +
>>> +static inline int pidfd_open(pid_t pid, unsigned int flags)
>>> +{
>>> +#ifdef __NR_pidfd_open
>>> + return syscall(__NR_pidfd_open, pid, flags);
>>> +#else
>>> + errno = ENOSYS;
>>
>> This isn't an error - this would be skip because this syscall
>> isn't supported.
>
> Ack.
>
>>
>>> + return -1;
>>> +#endif
>>
>> Key off of syscall return instead of these ifdefs - same comment
>> on all of the ifdefs
>
> Ack. I was using some other test as an example but I guess that was
> not a good model.
>
>>
>>> +}
>>> +
>>
>> I am not seeing any reason for breaking this code up have a separate
>> routine for pidfd_open().
>
> I'm a bit unclear what you mean. Do you mean that userspace headers
> should already define pidfd_open() and I don't need to define it?
>
Do you need pidfd_open() or can this be part of main? Without the ifdefs,
it is really a one line code.
thanks,
-- Shuah
next prev parent reply other threads:[~2022-05-10 16:36 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-10 3:00 [PATCH 1/3] selftests: vm: add process_mrelease tests Suren Baghdasaryan
2022-05-10 3:00 ` [PATCH 2/3] mm: drop oom code from exit_mmap Suren Baghdasaryan
2022-05-10 13:05 ` Michal Hocko
2022-05-10 16:31 ` Suren Baghdasaryan
2022-05-10 20:53 ` Michal Hocko
2022-05-10 20:59 ` Suren Baghdasaryan
2022-05-10 15:46 ` Shuah Khan
2022-05-10 16:35 ` Suren Baghdasaryan
2022-05-10 3:00 ` [PATCH 3/3] mm: delete unused MMF_OOM_VICTIM flag Suren Baghdasaryan
2022-05-10 13:08 ` Michal Hocko
2022-05-16 2:46 ` Suren Baghdasaryan
2022-05-10 15:51 ` Shuah Khan
2022-05-10 16:10 ` Suren Baghdasaryan
2022-05-10 15:43 ` [PATCH 1/3] selftests: vm: add process_mrelease tests Shuah Khan
2022-05-10 16:29 ` Suren Baghdasaryan
2022-05-10 16:35 ` Shuah Khan [this message]
2022-05-10 16:42 ` 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=ebaad398-110d-6a6b-70a5-3abeacfcb14a@linuxfoundation.org \
--to=skhan@linuxfoundation.org \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=brauner@kernel.org \
--cc=david@redhat.com \
--cc=guro@fb.com \
--cc=hannes@cmpxchg.org \
--cc=hch@infradead.org \
--cc=jannh@google.com \
--cc=jhubbard@nvidia.com \
--cc=kernel-team@android.com \
--cc=kirill@shutemov.name \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=minchan@kernel.org \
--cc=oleg@redhat.com \
--cc=peterx@redhat.com \
--cc=rientjes@google.com \
--cc=shakeelb@google.com \
--cc=shuah@kernel.org \
--cc=surenb@google.com \
--cc=willy@infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.