-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Description
Opening an issue to document future cache_ext optimizations for self-reference and also in case we need to explore them sooner:
- Make kswapd work with cgroups. Initially this can be as simple as waking up kswapd when the cgroup memory gets low, since it already has logic for reclaiming from cgroups that exceed their soft limit. This removes reclaim from the critical path.
- On eviction, grab folios and do the rest of the work without locking. Will probably need some kind of per-folio lock / bit. No reason to do this without the previous bullet, as it will only benefit us if eviction is not on the critical path.
- On insert, batch folios in per-cpu arrays and batch-insert them instead of locking every time.
- Remove the need for
valid_folios_registryby instead taking a reference of the folio. Folios are refcounted for garbage collection so this just taps into existing infra. This won't make much difference until we also implement the next one though. - Keep folios of cache_ext-enabled cgroups in cache_ext lists, instead of having them still in the kernel's lists. This enables us to use the precious space of the list_head to implement the folio -> list_node mapping and completely remove the need for a hashtable.
Metadata
Metadata
Assignees
Labels
No labels