vm_page_free(9)

vm_page_free9

Free a page

Usage

#include <sys/param.h>

#include <vm/vm.h>

#include <vm/vm_page.h>

void

vm_page_free(vm_page_t m);

void

vm_page_free_toq(vm_page_t m);

void

vm_page_free_zero(vm_page_t m);

Overview

The vm_page_free_toq() function moves a page into the free queue, and disassociates it from its object. If the page is held, wired, already free, or its busy count is not zero, the system will panic. If the PG_ZERO flag is set on the page, it is placed at the end of the free queue; otherwise, it is placed at the front.

If the page's object is of type OBJT_VNODE and it is the last page associated with the object, the underlying vnode may be freed.

The vm_page_free() and vm_page_free_zero() functions both call vm_page_free_toq() to actually free the page, but vm_page_free_zero() sets the PG_ZERO flag and vm_page_free() clears the PG_ZERO flag prior to the call to vm_page_free_toq().

Releases

56 releases since FreeBSD 5.0-RELEASE; the text changed 33 times.

  1. 5.0–6.3
  2. 6.4
  3. 7.0
  4. 7.1
  5. 7.2
  6. 7.3
  7. 7.4
  8. 8.0
  9. 8.1
  10. 8.2
  11. 8.3
  12. 8.4
  13. 9.0
  14. 9.1
  15. 9.2
  16. 9.3
  17. 10.0
  18. 10.1
  19. 10.2
  20. 10.3
  21. 10.4
  22. 11.0
  23. 11.1
  24. 11.2
  25. 11.3
  26. 11.4
  27. 12.0
  28. 12.1
  29. 12.2
  30. 12.3
  31. 12.4
  32. 13.0–13.2
  33. 13.3–15.1
  34. 16.0

Authors

This manual page was written by Chad David ⟨[email protected]⟩.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.