Page MenuHomeFreeBSD

Plumb a domain parameter through uma_reclaim() and callees.
AbandonedPublic

Authored by markj on Feb 6 2020, 3:48 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 17, 11:10 AM
Unknown Object (File)
Mon, Apr 15, 12:38 PM
Unknown Object (File)
Dec 20 2023, 4:01 AM
Unknown Object (File)
Nov 26 2023, 10:49 PM
Unknown Object (File)
Nov 22 2023, 11:34 AM
Unknown Object (File)
Nov 22 2023, 11:04 AM
Unknown Object (File)
Nov 22 2023, 10:35 AM
Unknown Object (File)
Nov 19 2023, 9:30 PM
Subscribers
None

Details

Reviewers
rlibby
jeff
Summary

Now that zones are first-touch by default, it starts making sense to
permit reclamation from a specific domain when the page daemons are
trying to free pages. No functional change intended.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 29201
Build 27129: arc lint + arc unit

Event Timeline

sys/kern/kern_mbuf.c
719

elsewhere we have done:
foo_bar()
foo_bar_domain()

Rather than adding a parameter to all current consumers. In this case quite a lot will want any and I suspect only a few will want _domain() so it may be less churn.

sys/kern/vfs_subr.c
1452

Did we already discuss this?

Why aren't we draining the specific zone here? Do we need to drain unrelated things to push vnode references? this looks weird.

sys/vm/uma_core.c
1154

We should just move iteration and the work into different functions.

I was thinking it would be nice if this code was closer and named with the other zone_domain_ stuff.

1267

again unnecessary iteration.

sys/vm/uma_core.c
1306–1310

This doesn't make as much sense anymore. We still need the logic that protects from concurrent destruction, but now we will refuse to reclaim from one domain if we're already reclaiming from another. What do you think the right behavior will be?

I'm sorry - I lost track of this review. I ended up writing a diff that addresses the feedback here: D29685.