Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964903AbbLHLG6 (ORCPT ); Tue, 8 Dec 2015 06:06:58 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:37429 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932767AbbLHLG4 (ORCPT ); Tue, 8 Dec 2015 06:06:56 -0500 Date: Tue, 8 Dec 2015 12:06:53 +0100 From: Michal Hocko To: Tetsuo Handa Cc: linux-mm@kvack.org, akpm@linux-foundation.org, torvalds@linux-foundation.org, mgorman@suse.de, rientjes@google.com, riel@redhat.com, hughd@google.com, oleg@redhat.com, andrea@kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH -v2] mm, oom: introduce oom reaper Message-ID: <20151208110653.GA25800@dhcp22.suse.cz> References: <201511281339.JHH78172.SLOQFOFHVFOMJt@I-love.SAKURA.ne.jp> <201511290110.FJB87096.OHJLVQOSFFtMFO@I-love.SAKURA.ne.jp> <20151201132927.GG4567@dhcp22.suse.cz> <201512052133.IAE00551.LSOQFtMFFVOHOJ@I-love.SAKURA.ne.jp> <20151207160718.GA20774@dhcp22.suse.cz> <201512080719.EHD73429.JQHFtMOFLOFSVO@I-love.SAKURA.ne.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201512080719.EHD73429.JQHFtMOFLOFSVO@I-love.SAKURA.ne.jp> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1149 Lines: 35 On Tue 08-12-15 07:19:42, Tetsuo Handa wrote: > Michal Hocko wrote: > > Yes you are right! The reference count should be incremented before > > publishing the new mm_to_reap. I thought that an elevated ref. count by > > the caller would be enough but this was clearly wrong. Does the update > > below looks better? > > I think that moving mmdrop() from oom_kill_process() to > oom_reap_vmas() xor wake_oom_reaper() makes the patch simpler. It surely is less lines of code but I am not sure it is simpler. I do not think we should drop the reference in a different path than it is taken. Maybe we will grow more users of wake_oom_reaper in the future and this is quite subtle behavior. > > rcu_read_unlock(); > > + if (can_oom_reap) > + wake_oom_reaper(mm); /* will call mmdrop() */ > + else > + mmdrop(mm); > - mmdrop(mm); > put_task_struct(victim); > } Thanks! -- Michal Hocko SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/