---
name: "io_uring_register_napi"
section: "3"
platform: "linux"
package: "liburing"
version: "2.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/io_uring_register_napi"
---

# io\_uring\_register\_napi(3)

register NAPI busy poll settings

## NAME

io\_uring\_register\_napi - register NAPI busy poll settings

## SYNOPSIS

```
#include <liburing.h>
```

**int io\_uring\_register\_napi(struct io\_uring \****ring***,**                            **struct io\_uring\_napi \****napi)*

## DESCRIPTION

The [**io\_uring\_register\_napi**(3)](/io_uring_register_napi/3.md) function registers the NAPI settings for subsequent operations. The NAPI settings are specified in the structure that is passed in the *napi* parameter. The structure consists of the napi timeout *busy\_poll\_to* (napi busy poll timeout in us) and *prefer\_busy\_poll*.

Registering a NAPI settings sets the mode when calling the function napi\_busy\_loop and corresponds to the SO\_PREFER\_BUSY\_POLL socket option.

NAPI busy poll can reduce the network roundtrip time.

## RETURN VALUE

On success [**io\_uring\_register\_napi**(3)](/io_uring_register_napi/3.md) return 0. On failure they return **-errno**. It also updates the napi structure with the current values.
