On Thu, Oct 05, 2017 at 01:12:30PM +0200, Michal Hocko wrote: > On Thu 05-10-17 11:27:07, Roman Gushchin wrote: > > On Wed, Oct 04, 2017 at 02:24:26PM -0700, Shakeel Butt wrote: > [...] > > > Sorry about the confusion. There are two things. First, should we do a > > > css_get on the newly selected memcg within the for loop when we still > > > have a reference to it? > > > > We're holding rcu_read_lock, it should be enough. We're bumping css counter > > just before releasing rcu lock. > > yes > > > > > > > Second, for the OFFLINE memcg, you are right oom_evaluate_memcg() will > > > return 0 for offlined memcgs. Maybe no need to call > > > oom_evaluate_memcg() for offlined memcgs. > > > > Sounds like a good optimization, which can be done on top of the current > > patchset. > > You could achive this by checking whether a memcg has tasks rather than > explicitly checking for children memcgs as I've suggested already. Using cgroup_has_tasks() will require additional locking, so I'm not sure it worth it. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>