Re: [RESEND PATCH 2/2] userfaultfd: selftest: Add tests for UFFD_FREATURE_SIGBUS

From: Prakash Sangappa
Date: Wed Jul 26 2017 - 15:02:47 EST




On 7/26/17 7:27 AM, Andrea Arcangeli wrote:
On Tue, Jul 25, 2017 at 12:47:42AM -0400, Prakash Sangappa wrote:
Signed-off-by: Prakash Sangappa <prakash.sangappa@xxxxxxxxxx>
---
tools/testing/selftests/vm/userfaultfd.c | 121 +++++++++++++++++++++++++++++-
1 files changed, 118 insertions(+), 3 deletions(-)
Like Mike said, some comment about the test would be better, commit
messages are never one liners in the kernel.

Ok


@@ -408,6 +409,7 @@ static int copy_page(int ufd, unsigned long offset)
userfaults++;
break;
case UFFD_EVENT_FORK:
+ close(uffd);
uffd = msg.arg.fork.ufd;
pollfd[0].fd = uffd;
break;
Isn't this fd leak bugfix independent of the rest of the changes? The
only side effects should have been that it could run out of fds, but I
assume this was found by source review as I doubt it could run out of fds.
This could be splitted off in a separate patch.

Not just the fd leak, it causes problems here with the addition of the
new test userfaultfd_sig_test(). Since the original vma registration
persists in the parent, subsequent registration in userfaultfd_events_test()
fails with 'EBUSY' error, as userfault implementation does not allow
registering same vma with another uffd, while one exists.

Therefore, will need this change. I could just leave this fix here along
with the rest of the changes, will that be ok?

-Prakash

Overall it looks a good test also exercising UFFD_EVENT_FORK at the
same time.

Thanks,
Andrea