Bug 151821

Summary: Implement CPU affinity mask virtualization (or CPU ID namespaces)
Product: Process Management Reporter: Florian Weimer (fweimer)
Component: SchedulerAssignee: Ingo Molnar (mingo)
Status: NEW ---    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.7 Subsystem:
Regression: No Bisected commit-id:

Description Florian Weimer 2016-08-09 15:18:57 UTC
There is a concern that large multi-processor systems which exceed the 128 byte cpuset_t limit cause applications to fail:

  https://github.com/golang/go/issues/11823

One possible approach to address this is to virtualize the user view of CPU IDs, so that a namespace only sees a subset of all CPUs the kernel can support.  This way, such affected applications could be run in a namespace which is fully compatible with a 128 byte cpuset_t type.

It does not appear to be prudent to perform the translation in user space because of the wide range of interfaces which are affected.