1. List of topics
1. Control loops in userspace
2. Hierarchical Cgroup support in userland
3. Efficient utilization by overcommitment
4. dcache management
5. Memory controller improvements
6. Checkpoint/restart in the userspace
7. Container in a file
8. Proc fs virtualization
9. Entering a container
10.vzctl for LXC
11.Extending CPU accounting stats
2. dcache mgmt 1/2: problems
● Problem 1
● the number of dentries grows uncontrollable
● Entries can be pinned with low effort, leading to all
memory being used and unreclaimable
● Leading to system being unresponsive/stuck
● Problem 2
● Unfair dentry cache usage distribution among
containers
3. dcache mgmt 2/2: Solution
● Account for and limit dcache usage per (smth)
● Currently (smth) is superblock
● Shrink dcache per (smth) once limit it hit
4. checkpoint-restore 1/3
● Checkpoint:
● freeze task(s) with freezer cgroup
● read tasks creds via /proc
– some patches extending kernel API required
● read tasks regs with PTRACE
● dump tasks mem with PTRASE_SEIZE (new)
5. checkpoint-restore 2/3
● Restore:
● Fork task tree
– CLONE_SETPID required
● each task restores its creds
– uid/gid
– open files
– capabilities
– etc.
● each task calls execve() on an image
– ELF binfmt handler extension required
7. Container in a file 1/2
● Currently containers' files reside on host
partition and tasks work in plain chroot
● Problems:
● extX journal is performance bottleneck
● hackish live migration (rsync)
● not effective management (tons of small files)
8. Container in a file 2/2
● Solution – loop-like block device
● Parallels implementation – block device, that
remaps bio-s with FS bmap call
● Possible implementation – DM extension
● block map provided by userspace
● block map got from FS bmap call