---
name: "UFFDIO_WAKE"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/UFFDIO_WAKE"
---

# UFFDIO\_WAKE(2const)

wake up a thread waiting for page-fault resolution

## NAME

UFFDIO\_WAKE - wake up a thread waiting for page-fault resolution

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <linux/userfaultfd.h>  /* Definition of UFFD* constants */
#include <sys/ioctl.h>
```

**int ioctl(int** *fd***, UFFDIO\_WAKE, const struct uffdio\_range \****argp***);**

## DESCRIPTION

Wake up the thread waiting for page-fault resolution on a specified memory address range.

The **UFFDIO\_WAKE** operation is used in conjunction with **UFFDIO\_COPY** and **UFFDIO\_ZEROPAGE** operations that have the **UFFDIO\_COPY\_MODE\_DONTWAKE** or **UFFDIO\_ZEROPAGE\_MODE\_DONTWAKE** bit set in the *mode* field. The userfault monitor can perform several **UFFDIO\_COPY** and **UFFDIO\_ZEROPAGE** operations in a batch and then explicitly wake up the faulting thread using **UFFDIO\_WAKE**.

## RETURN VALUE

This [**ioctl**(2)](/ioctl/2.md) operation returns 0 on success. On error, -1 is returned and *errno* is set to indicate the error.

## ERRORS

- **EINVAL**

  The *start* or the *len* field of the *ufdio\_range* structure was not a multiple of the system page size; or *len* was zero; or the specified range was otherwise invalid.

## STANDARDS

Linux.

## HISTORY

Linux 4.3.

## EXAMPLES

See [**userfaultfd**(2)](/userfaultfd/2.md).

## SEE ALSO

[**ioctl**(2)](/ioctl/2.md), [**ioctl\_userfaultfd**(2)](/ioctl_userfaultfd/2.md), [**UFFDIO\_REGISTER**(2const)](/UFFDIO_REGISTER/2const.md), [**userfaultfd**(2)](/userfaultfd/2.md)

*linux.git/Documentation/admin-guide/mm/userfaultfd.rst*
