Page MenuHomeFreeBSD

Don't relock the vm object after busy sleeps.
ClosedPublic

Authored by jeff on Dec 15 2019, 2:53 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jan 13, 9:16 AM
Unknown Object (File)
Dec 13 2024, 2:28 PM
Unknown Object (File)
Nov 13 2024, 7:20 AM
Unknown Object (File)
Oct 4 2024, 11:51 PM
Unknown Object (File)
Oct 4 2024, 9:51 PM
Unknown Object (File)
Oct 2 2024, 10:05 AM
Unknown Object (File)
Oct 2 2024, 4:24 AM
Unknown Object (File)
Sep 30 2024, 8:19 AM
Subscribers

Details

Summary

A surprising amount of contention comes from waking up after busy sleep, locking the object, and then dropping immediately.

This change also makes it cleaner to sleep with an object read lock in some cases as well as avoiding touching the object after sleep which closes one of the type stability issues.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28159
Build 26293: arc lint + arc unit

Event Timeline

jeff added reviewers: alc, doug_freebsd.con.com, kib, markj.
jeff set the repository for this revision to rS FreeBSD src repository - subversion.
This revision is now accepted and ready to land.Dec 15 2019, 7:55 PM
markj added inline comments.
sys/vm/vm_page.c
1057

It looks strange to me to compare a bool with 0. if (!_vm_page_busy_sleep(...)) would make more sense IMO.

Comment a little better. Use bool appropriately.

This revision now requires review to proceed.Dec 21 2019, 7:42 PM
This revision is now accepted and ready to land.Dec 21 2019, 9:31 PM