Page MenuHomeFreeBSD

uma_core: replace listq with plinks.q in temp lists
ClosedPublic

Authored by dougm on Apr 30 2025, 10:13 PM.
Tags
None
Referenced Files
F127579259: D50094.id154597.diff
Tue, Sep 2, 12:26 PM
Unknown Object (File)
Mon, Sep 1, 11:32 PM
Unknown Object (File)
Sat, Aug 30, 7:18 AM
Unknown Object (File)
Thu, Aug 28, 2:47 AM
Unknown Object (File)
Mon, Aug 25, 12:38 PM
Unknown Object (File)
Sun, Aug 17, 9:23 AM
Unknown Object (File)
Jul 14 2025, 1:47 AM
Unknown Object (File)
Jul 9 2025, 12:56 PM
Subscribers

Details

Summary

Change the two functions that use local tailq variables to use the plinks.q field, instead of the listq field, for the pointers.

This should resolve one source of conflict should the tailq field and the object field come to share the same space in some future change to the vm_page definition.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

dougm created this revision.

Use a single call to pmap_qenter rather than having it in a loop.

dougm retitled this revision from uma_core: replace local tailqs with local arrays to uma_core: replace listq with plinks.q in temp lists.
dougm edited the summary of this revision. (Show Details)

Throw it all out, as @alc suggests that the arrays could be too big. Just switch from using listq to using plinks.q for the temporary lists.

This revision is now accepted and ready to land.May 1 2025, 3:58 AM

The key here is that all page allocation functions call vm_page_dequeue(), completing any lingering page queue operations that involve the plinks.q field.