From: Andrea Arcangeli <aarcange@redhat.com>
To: Prakash Sangappa <prakash.sangappa@oracle.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-api@vger.kernel.org, rppt@linux.vnet.ibm.com,
akpm@linux-foundation.org, mike.kravetz@oracle.com
Subject: Re: [RESEND PATCH 1/2] userfaultfd: Add feature to request for a signal delivery
Date: Wed, 26 Jul 2017 16:19:22 +0200 [thread overview]
Message-ID: <20170726141922.GV29716@redhat.com> (raw)
In-Reply-To: <1500958062-953846-2-git-send-email-prakash.sangappa@oracle.com>
On Tue, Jul 25, 2017 at 12:47:41AM -0400, Prakash Sangappa wrote:
> In some cases, userfaultfd mechanism should just deliver a SIGBUS signal
> to the faulting process, instead of the page-fault event. Dealing with
> page-fault event using a monitor thread can be an overhead in these
> cases. For example applications like the database could use the signaling
> mechanism for robustness purpose.
>
> Database uses hugetlbfs for performance reason. Files on hugetlbfs
> filesystem are created and huge pages allocated using fallocate() API.
> Pages are deallocated/freed using fallocate() hole punching support.
> These files are mmapped and accessed by many processes as shared memory.
> The database keeps track of which offsets in the hugetlbfs file have
> pages allocated.
>
> Any access to mapped address over holes in the file, which can occur due
> to bugs in the application, is considered invalid and expect the process
> to simply receive a SIGBUS. However, currently when a hole in the file is
> accessed via the mapped address, kernel/mm attempts to automatically
> allocate a page at page fault time, resulting in implicitly filling the
> hole in the file. This may not be the desired behavior for applications
> like the database that want to explicitly manage page allocations of
> hugetlbfs files.
>
> Using userfaultfd mechanism with this support to get a signal, database
> application can prevent pages from being allocated implicitly when
> processes access mapped address over holes in the file.
>
> This patch adds UFFD_FEATURE_SIGBUS feature to userfaultfd mechnism to
> request for a SIGBUS signal.
>
> See following for previous discussion about the database requirement
> leading to this proposal as suggested by Andrea.
>
> http://www.spinics.net/lists/linux-mm/msg129224.html
>
> Signed-off-by: Prakash Sangappa <prakash.sangappa@oracle.com>
> ---
> fs/userfaultfd.c | 3 +++
> include/uapi/linux/userfaultfd.h | 10 +++++++++-
> 2 files changed, 12 insertions(+), 1 deletions(-)
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Andrea Arcangeli <aarcange@redhat.com>
To: Prakash Sangappa <prakash.sangappa@oracle.com>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-api@vger.kernel.org, rppt@linux.vnet.ibm.com,
akpm@linux-foundation.org, mike.kravetz@oracle.com
Subject: Re: [RESEND PATCH 1/2] userfaultfd: Add feature to request for a signal delivery
Date: Wed, 26 Jul 2017 16:19:22 +0200 [thread overview]
Message-ID: <20170726141922.GV29716@redhat.com> (raw)
In-Reply-To: <1500958062-953846-2-git-send-email-prakash.sangappa@oracle.com>
On Tue, Jul 25, 2017 at 12:47:41AM -0400, Prakash Sangappa wrote:
> In some cases, userfaultfd mechanism should just deliver a SIGBUS signal
> to the faulting process, instead of the page-fault event. Dealing with
> page-fault event using a monitor thread can be an overhead in these
> cases. For example applications like the database could use the signaling
> mechanism for robustness purpose.
>
> Database uses hugetlbfs for performance reason. Files on hugetlbfs
> filesystem are created and huge pages allocated using fallocate() API.
> Pages are deallocated/freed using fallocate() hole punching support.
> These files are mmapped and accessed by many processes as shared memory.
> The database keeps track of which offsets in the hugetlbfs file have
> pages allocated.
>
> Any access to mapped address over holes in the file, which can occur due
> to bugs in the application, is considered invalid and expect the process
> to simply receive a SIGBUS. However, currently when a hole in the file is
> accessed via the mapped address, kernel/mm attempts to automatically
> allocate a page at page fault time, resulting in implicitly filling the
> hole in the file. This may not be the desired behavior for applications
> like the database that want to explicitly manage page allocations of
> hugetlbfs files.
>
> Using userfaultfd mechanism with this support to get a signal, database
> application can prevent pages from being allocated implicitly when
> processes access mapped address over holes in the file.
>
> This patch adds UFFD_FEATURE_SIGBUS feature to userfaultfd mechnism to
> request for a SIGBUS signal.
>
> See following for previous discussion about the database requirement
> leading to this proposal as suggested by Andrea.
>
> http://www.spinics.net/lists/linux-mm/msg129224.html
>
> Signed-off-by: Prakash Sangappa <prakash.sangappa@oracle.com>
> ---
> fs/userfaultfd.c | 3 +++
> include/uapi/linux/userfaultfd.h | 10 +++++++++-
> 2 files changed, 12 insertions(+), 1 deletions(-)
Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
next prev parent reply other threads:[~2017-07-26 14:19 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-25 4:47 [RESEND PATCH 0/2] userfaultfd: Add feature to request for a signal delivery Prakash Sangappa
2017-07-25 4:47 ` Prakash Sangappa
2017-07-25 4:47 ` [RESEND PATCH 1/2] " Prakash Sangappa
2017-07-25 4:47 ` Prakash Sangappa
2017-07-26 7:54 ` Mike Rapoport
2017-07-26 7:54 ` Mike Rapoport
2017-07-26 14:19 ` Andrea Arcangeli [this message]
2017-07-26 14:19 ` Andrea Arcangeli
2017-07-27 11:58 ` Michal Hocko
2017-07-27 11:58 ` Michal Hocko
2017-07-28 1:13 ` Prakash Sangappa
2017-07-28 1:13 ` Prakash Sangappa
2017-07-25 4:47 ` [RESEND PATCH 2/2] userfaultfd: selftest: Add tests for UFFD_FREATURE_SIGBUS Prakash Sangappa
2017-07-25 4:47 ` Prakash Sangappa
2017-07-26 7:53 ` Mike Rapoport
2017-07-26 7:53 ` Mike Rapoport
2017-07-26 18:54 ` Prakash Sangappa
2017-07-26 18:54 ` Prakash Sangappa
2017-07-26 14:27 ` Andrea Arcangeli
2017-07-26 14:27 ` Andrea Arcangeli
2017-07-26 19:02 ` Prakash Sangappa
2017-07-26 19:02 ` Prakash Sangappa
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=20170726141922.GV29716@redhat.com \
--to=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mike.kravetz@oracle.com \
--cc=prakash.sangappa@oracle.com \
--cc=rppt@linux.vnet.ibm.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 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.