containers / containers/nri-plugins

What is expected behavior on resource policy start, stop and reconfigure

Open
#709 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
114
Forks
44
Avg merge
1d 8h
Merged PRs (30d)
20

Description

### Description

When a resource policy plugin (topology-aware or balloons) is started or reconfigured, it starts making system-wide changes in containers, CPUs and uncore, none of which are automatically "restored" after stopping the policy. For instance:
1. Policy changes container attributes:
- CPU and memory affinities
- cache allocations
- memory and block device bandwidth limits and quotas
2. Policy changes CPU attributes:
- min/max frequencies
- C-states
- SST CLOS associations, possibly fully overriding existing SST configuration
- Future: modify IRQ CPU masks
3. Policy changes uncore attributes:
- uncore frequencies

### Rationale

The purpose of this issue is to gather ideas and feedback what should happen when...
1. A policy is started. Should it automatically/optionally initialize cpuidle, cpufreq, uncore frequencies, for instance?
1. A policy is reconfigured. Note: not all knobs from old configuration may be present in new configuration, leaving newly unmanaged features in (unspecified) old state rather than a (specified) "default" state.
2. A policy is stopped, possibly for a restart/update/uninstall.

Contributor guide

Open the contributing guide

Research direction

Review the resource policy plugin lifecycle described in the issue: startup, reconfiguration, and stopping, along with the listed container, CPU, and uncore changes. Gather feedback on initialization, preservation, and restoration semantics; done means the expected behavior for each lifecycle transition is decided and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
infrastructure, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.