Page MenuHomeFreeBSD

vm_reserv: add reservation-aware UMA small_alloc
Needs ReviewPublic

Authored by bnovkov on Wed, May 1, 1:54 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, May 13, 7:10 AM
Unknown Object (File)
Fri, May 10, 3:49 AM
Unknown Object (File)
Wed, May 8, 11:07 PM
Unknown Object (File)
Mon, May 6, 12:54 AM
Unknown Object (File)
Sun, May 5, 3:48 AM
Unknown Object (File)
Sun, May 5, 3:41 AM
Unknown Object (File)
Sun, May 5, 3:39 AM
Unknown Object (File)
Sun, May 5, 2:09 AM
Subscribers

Details

Reviewers
kib
markj
alc
Summary

This patch adds a reservation-aware replacement for uma_small_alloc.

The vm_reserv_uma_small_{alloc, free} routines use unmanaged reservations to allocate 0-order pages for UMA zones.
Those reservations are placed in dedicated, per-domain UMA small_alloc queues that keep track of partially populated reservations and reservations used for NOFREE allocations.

The allocator falls back to vm_page_alloc_noobj_domain in case of memory pressure.

Test Plan

All changes in this patch series were tested on amd64 using a bhyve vm.
No errors or panics were encountered while running vm-related stress2 tests for several hours.

I can confirm that everything builds properly for all other architectures.
I'm currently in the process of running smoke tests for other architectures and will update the revision if anything pops up.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped