RFC Resource controllers based on process containers
Get series with b4
b4 am [email protected]Versions newest first
- v1 RFC Latest7 patches 121 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | Resource countersinclude/ init/ kernel/ +1 more | +160 | 15 replies | |
| 2/7 | RSS controller coreinclude/ init/ mm/ +1 more | +384 | 65 replies | |
| 3/7 | Data structures changes for RSS accountinginclude/ include/ include/ +2 more | +35 | 7 replies | |
| 4/7 | RSS accounting hooks over the codefs/ include/ mm/ +4 more | +120 | 23 replies | |
| 5/7 | Per-container OOM killer and page reclamationmm/ mm/ | +228 | 2 replies | |
| 6/7 | Account for the number of tasks within containerinclude/ include/ init/ +5 more | +204 | 4 replies | |
| 7/7 | Account for the number of files opened within containerfs/ fs/ fs/ +4 more | +208 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [RFC][PATCH 0/7] Resource controllers based on process containers
This patchset adds RSS, accounting and control and limiting the number of tasks and files within container.
Based on top of Paul Menage's container subsystem v7
RSS controller includes per-container RSS accounter, reclamation and OOM killer. It behaves like standalone machine - when container runs out of resources it tries to reclaim some pages and if it doesn't succeed in it kills some task which mm_struct belongs to container in question.
Num tasks and files containers are very simple and self-descriptive from code.
As discussed before when a task moves from one container to another no resources follow it - they keep holding the container they were allocated in.
The difficulties met during using of Pauls' containers were:
1. Container fork hook is placed before new task changes. This makes impossible of handling fork properly. I.e. new mm_struct should have pointer to RSS container, but we don't have one at that early time.
2. Extended containers may register themselves too late. Kernel threads/helpers start forking, opening files and touching pages much earlier. This patchset workarounds this in not-so-cute manner and I'm waiting for Paul's comments on this issue.