On Thu, Nov 3, 2011 at 10:35 AM, Glauber Costa <glommer@xxxxxxxxxxxxx> wrote: > >> If multiple subsystems on the same hierarchy each need to >> walk up the pointer chain on the same event, then after the first >> subsystem has done so the chain will be in cache for any subsequent >> walks from other subsystems. > > No, it won't. Precisely because different subsystems have completely > independent pointer chains. Because they're following res_counter parent pointers, etc, rather than using the single cgroups parent pointer chain? So if that's the problem, rather than artificially constrain flexibility in order to improve micro-benchmarks, why not come up with approaches that keep both the flexibility and the performance? - make res_counter hierarchies be explicitly defined via the cgroup parent pointers, rather than an parent pointer hidden inside the res_counter. So the cgroup parent chain traversal would all be along the common parent pointers (and res_counter would be one pointer smaller). - allow subsystems to specify that they need a small amount of data that can be accessed efficiently up the cgroup chain. (Many subsystems wouldn't need this, and those that do would likely only need it for a subset of their per-cgroup data). Pack this data into as few cachelines as possible, allocated as a single lump of memory per cgroup. Each subsystem would know where in that allocation its private data lay (it would be the same offset for every cgroup, although dynamically determined at runtime based on the number of subsystems mounted on that hierarchy) Paul _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers