On Fri, Apr 27, 2012 at 08:02:17AM -0700, Tejun Heo wrote: > Hello, > > On Fri, Apr 27, 2012 at 10:54:01AM -0400, Jeff Moyer wrote: > > > This patch implements per-blkg request_list. Each blkg has its own > > > request_list and any IO allocates its request from the matching blkg > > > making blkcgs completely isolated in terms of request allocation. > > > > So, nr_requests is now actually nr_requests * # of blk cgroups. Is that > > right? Are you at all concerned about the amount of memory that can be > > tied up as the number of cgroups increases? > > Yeah, I thought about it and I don't think there's a single good > solution here. The other extreme would be splitting nr_requests by > the number of cgroups but that seems even worse - each cgroup should > be able to hit maximum throughput. Given that a lot of workloads tend > to regulate themselves before hitting nr_requests, I think it's best > to leave it as-is and treat each cgroup as having separate channel for > now. It's a configurable parameter after all. So on a slow device a malicious application can easily create thousands of group, queue up tons of IO and create unreclaimable memory easily? Sounds little scary. I had used two separate limits. Per queue limit and per group limit (nr_requests and nr_group_requests). That had made implementation complex and relied on user doing the right configuration so that one cgroup does not get serialized behind other once we hit nr_requests. I am not advocating that solution as it was not very nice either. Hmm.., tricky... Thanks Vivek _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers