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

# PR\_SVE\_GET\_VL(2const)

get the thread's SVE vector length

## NAME

PR\_SVE\_GET\_VL - get the thread's SVE vector length

## LIBRARY

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

## SYNOPSIS

```
#include <linux/prctl.h>  /* Definition of PR_* constants */
#include <sys/prctl.h>
```

**int prctl(PR\_SVE\_GET\_VL);**

## DESCRIPTION

Get the thread's current SVE vector length configuration.

This operation returns a nonnegative value that describes the *current* configuration. The bits corresponding to **PR\_SVE\_VL\_LEN\_MASK** contain the currently configured vector length in bytes. The bit corresponding to **PR\_SVE\_VL\_INHERIT** indicates whether the vector length will be inherited across [**execve**(2)](/execve/2.md).

## RETURN VALUE

On success, **PR\_SVE\_GET\_VL**, return the nonnegative values described above. On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

- **EINVAL**

  SVE is not available on this platform.

## STANDARDS

Linux. arm64 only.

## HISTORY

Linux 4.15 (arm64).

## CAVEATS

There is no way to determine whether there is a pending vector length change that has not yet taken effect.

## SEE ALSO

[**prctl**(2)](/prctl/2.md), [**PR\_SVE\_SET\_VL**(2const)](/PR_SVE_SET_VL/2const.md)

For more information, see the kernel source file *Documentation/arch/arm64/sve.rst*.
