Skip to content

kernel: add background goroutine for periodic memory usage accounting#12538

Draft
xiangbin-hu wants to merge 1 commit intogoogle:masterfrom
xiangbin-hu:claude/decouple-memory-updates-CXoIm
Draft

kernel: add background goroutine for periodic memory usage accounting#12538
xiangbin-hu wants to merge 1 commit intogoogle:masterfrom
xiangbin-hu:claude/decouple-memory-updates-CXoIm

Conversation

@xiangbin-hu
Copy link

Add a background ticker goroutine that calls MemoryFile.UpdateUsage() every second, decoupling memory accounting from external polling via runsc events. Previously, memory usage counters only updated when something read cgroup memory stats, /proc/meminfo, or triggered a Full usage collection RPC—leaving post-restore allocations invisible for up to the polling interval.

The ticker integrates with the kernel lifecycle: it starts in Kernel.Start(), stops in pauseTimeLocked() before save, and restarts in resumeTimeLocked() after save completes. UpdateUsage's internal throttling (CONFIG_HZ) prevents redundant mincore scans.

Add a background ticker goroutine that calls MemoryFile.UpdateUsage()
every second, decoupling memory accounting from external polling via
runsc events. Previously, memory usage counters only updated when
something read cgroup memory stats, /proc/meminfo, or triggered a
Full usage collection RPC—leaving post-restore allocations invisible
for up to the polling interval.

The ticker integrates with the kernel lifecycle: it starts in
Kernel.Start(), stops in pauseTimeLocked() before save, and restarts
in resumeTimeLocked() after save completes. UpdateUsage's internal
throttling (CONFIG_HZ) prevents redundant mincore scans.
@google-cla
Copy link

google-cla bot commented Jan 23, 2026

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@xiangbin-hu xiangbin-hu marked this pull request as draft January 23, 2026 19:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants