# Re: \[PATCH 0/3\] userfaultfd: non-cooperative: syncronous events

- From: Andrew Morton \<akpm@linux-foundation.org\>
- Date: 2018-03-02 23:38:53 
- List: linux-api
- Page: https://ratatoskr.run/linux-api/2018/03/5228070
- Thread: https://ratatoskr.run/linux-mm/2018/02/5194751/t.md

```text
On Tue, 27 Feb 2018 10:19:49 +0200 Mike Rapoport [ref] wrote:

> Hi,
> 
> These patches add ability to generate userfaultfd events so that their
> processing will be synchronized with the non-cooperative thread that caused
> the event.
> 
> In the non-cooperative case userfaultfd resumes execution of the thread
> that caused an event when the notification is read() by the uffd monitor.
> In some cases, like, for example, madvise(MADV_REMOVE), it might be
> desirable to keep the thread that caused the event suspended until the
> uffd monitor had the event handled to avoid races between the thread that
> caused the and userfaultfd ioctls.
> 
> Theses patches extend the userfaultfd API with an implementation of
> UFFD_EVENT_REMOVE_SYNC that allows to keep the thread that triggered
> UFFD_EVENT_REMOVE until the uffd monitor would not wake it explicitly.

"might be desirable" is a bit weak.  It might not be desirable, too ;)

_Is_ it desirable?  What are the use-cases and what is the end-user
benefit?
```
