Nauman Rafique wrote: ... > Hi Gui, > This patch should solve the problems reported by you. Please let me know if it does not work. > @Vivek, this has a few more changes after the patch I sent you separately. > Hi Nauman, I'v tried your patch, seems the bug has been fixed. thanks! > DESC > Add ref counting for io_group. > EDESC > > Reference counting for io_group solves many problems, most of which > occured when we tried to delete the cgroup. Earlier, ioqs were being > moved out of cgroup to root cgroup. That is problematic in many ways: > First, the pending requests in queues might get unfair service, and > will also cause unfairness for other cgroups at the root level. This > problem can become signficant if cgroups are created and destroyed > relatively frequently. Second, moving queues to root cgroups was > complicated and was causing many BUG_ON's to trigger. Third, there is > a single io queue in AS, Deadline and Noop within a cgroup; and it > does not make sense to move it to the root cgroup. The same is true of > async queues. > > Requests already keep a reference on ioq, so queues keep a reference on > cgroup. For async queues in CFQ, and single ioq in other schedulers, > io_group also keeps are reference on io_queue. This reference on ioq > is dropped when the queue is released (elv_release_ioq). So the queue > can be freed. > > When a queue is released, it puts the reference to io_group and the > io_group is released after all the queues are released. Child groups > also take reference on parent groups, and release it when they are > destroyed. > > Also we no longer need to maintain a seprate linked list of idle > entities, which was maintained only to help release the ioq references > during elevator switch. The code for releasing io_groups is reused for > elevator switch, resulting in simpler and tight code. > -- Regards Gui Jianfeng _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers