From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965342AbbJVPgN (ORCPT ); Thu, 22 Oct 2015 11:36:13 -0400 Received: from mail-wi0-f175.google.com ([209.85.212.175]:34844 "EHLO mail-wi0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756749AbbJVPgC (ORCPT ); Thu, 22 Oct 2015 11:36:02 -0400 Date: Thu, 22 Oct 2015 17:35:59 +0200 From: Michal Hocko To: Tejun Heo Cc: Christoph Lameter , Tetsuo Handa , linux-mm@kvack.org, linux-kernel@vger.kernel.org, torvalds@linux-foundation.org, David Rientjes , oleg@redhat.com, kwalker@redhat.com, akpm@linux-foundation.org, hannes@cmpxchg.org, vdavydov@parallels.com, skozina@redhat.com, mgorman@suse.de, riel@redhat.com Subject: Re: [PATCH] mm,vmscan: Use accurate values for zone_reclaimable() checks Message-ID: <20151022153559.GF26854@dhcp22.suse.cz> References: <20151021143337.GD8805@dhcp22.suse.cz> <20151021145505.GE8805@dhcp22.suse.cz> <201510222037.ACH86458.OFOLFtQFOHJSVM@I-love.SAKURA.ne.jp> <20151022140944.GA30579@mtj.duckdns.org> <20151022150623.GE26854@dhcp22.suse.cz> <20151022151528.GG30579@mtj.duckdns.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20151022151528.GG30579@mtj.duckdns.org> 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 On Fri 23-10-15 00:15:28, Tejun Heo wrote: > On Thu, Oct 22, 2015 at 05:06:23PM +0200, Michal Hocko wrote: > > Do I get it right that if vmstat_update has its own workqueue with > > WQ_MEM_RECLAIM then there is a _guarantee_ that the rescuer will always > > be able to process vmstat_update work from the requested CPU? > > Yeah. Thanks for the confirmation. > > That should be sufficient because vmstat_update doesn't sleep on > > allocation. I agree that this would be a more appropriate fix. > > The problem seems to be reclaim path busy looping waiting for > vmstat_update and workqueue thinking that the work item must be making > forward-progress and thus not starting the next work item. But that shouldn't happen because the allocation path does cond_resched even when nothing is really reclaimable (e.g. wait_iff_congested from __alloc_pages_slowpath). -- Michal Hocko SUSE Labs