Page MenuHomeFreeBSD

factor common code out of vm_page_alloc*contig_domain
ClosedPublic

Authored by dougm on Dec 18 2021, 9:54 AM.
Tags
None
Referenced Files
F137676429: D33551.id100522.diff
Mon, Nov 24, 9:16 PM
Unknown Object (File)
Sun, Nov 23, 12:24 AM
Unknown Object (File)
Fri, Nov 21, 1:43 PM
Unknown Object (File)
Fri, Nov 21, 11:40 AM
Unknown Object (File)
Wed, Nov 19, 1:41 PM
Unknown Object (File)
Mon, Nov 17, 10:08 AM
Unknown Object (File)
Sat, Nov 15, 9:51 PM
Unknown Object (File)
Sat, Nov 15, 1:40 PM
Subscribers

Details

Summary

Besides reducing code duplication, for the object case this avoids needlessly executing some code when a reservation is broken to release pages.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

dougm requested review of this revision.Dec 18 2021, 9:54 AM
dougm created this revision.

This change does slightly reduce the code size:
dougm@108-254-203-204:GENERIC $ size orig.vm_page.o

 text    data     bss     dec       hex   filename
50782   25808   13424   90014   0x15f9e   orig.vm_page.o

dougm@108-254-203-204:GENERIC $ size vm_page.o

 text    data     bss     dec       hex   filename
50670   25808   13424   89902   0x15f2e   vm_page.o
sys/vm/vm_page.c
2195

This partial sentence should be reformulated now, I believe. Out of old context it is not sufficient, and should be a normal sentence.

2208

Now in vm_page_alloc_contig_domain(), this would loop without retrying vm_reserv_alloc_contig(). Was it intended? From the commit message it seems so, but vm_domain_alloc_fail() drops object lock which might change the disposition for reservations?

dougm marked 2 inline comments as done.

Improve comments.

This revision is now accepted and ready to land.Dec 24 2021, 1:43 AM
sys/vm/vm_page.c
2208

It was intended. Now, if vm_reserv_reclaim_contig returns true, control goes to vm_reserv_object && vm_reserv_alloc_contig without a call to vm_domain_alloc_fail, so the object lock would not have been dropped, and the vm_reserv_alloc_contig call will fail a second time.