---
name: "memcontrol"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/memcontrol"
---

# memcontrol(8)

control system cache behaviour with respect to memory

## NAME

**memcontrol** – control system cache behaviour with respect to memory

## SYNOPSIS

**memcontrol** **list** \[**-a**\]

**memcontrol** **set** **-b** *base* **-l** *length* **-o** *owner* *attribute*

**memcontrol** **clear** **-o** *owner*

**memcontrol** **clear** **-b** *base* **-l** *length*

## DESCRIPTION

A number of supported system architectures allow the behaviour of the CPU cache to be programmed to behave differently depending on the region being written.

The **memcontrol** utility provides an interface to this facility, allowing CPU cache behavior to be altered for ranges of system physical memory.

These ranges are typically power-of-2 aligned and sized, however the specific rules governing their layout vary between architectures. The **memcontrol** utility does not attempt to enforce these rules, however the system will reject any attempt to set an illegal combination.

- **list**

  List range slots.

  - **-a**

    List all range slots, even those that are inactive.

- **set**

  Set memory range attributes.

  - **-b** *base*

    Memory range base address.

  - **-l** *length*

    Length of memory range in bytes, power of 2.

  - **-o** *owner*

    Text identifier for this setting (7 char max).

  - *attribute*

    Attributes applied to this range; combinations of **force**, **uncacheable**, **write-combine**, **write-through**, **write-back**, and **write-protect**.

- **clear**

  Clear memory range attributes. Ranges may be cleared by owner or by base/length combination.

  To clear based on ownership:

  - **-o** *owner*

    All ranges with this owner will be cleared.

    To clear based on the base/length combination:

    - **-b** *base*

      Memory range base address.

    - **-l** *length*

      Length of memory range in bytes, power of 2.

      Base and length must exactly match an existing range.

## SEE ALSO

[mem(4)](/mem/4.md)
