Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp3200531imm; Fri, 25 May 2018 01:16:54 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrGn5i1VZ/2VnvpDl3IDkSLnkSFgjxV/lj+Be7RZlp/8RwAFj8jv1CJWFBC5PsnwShxLdH3 X-Received: by 2002:a62:8a5b:: with SMTP id y88-v6mr1533081pfd.103.1527236214113; Fri, 25 May 2018 01:16:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527236214; cv=none; d=google.com; s=arc-20160816; b=tUh8MfbPv9OP1FonC/iY2OURAByKZj/wrIuBD7dbZB/6Tm93YjbbwrlqlpDn/YSZuI VSdMXYCHVlRFw8GTkP3Oc+YHmRTD0NRUfy8Jofdbf2+piH+3KpwftRMWF1j1fOYrmt2u JQlU1Hc+pd8mSALffWbcffxOZ8Fk+PU4GmRuvF6aITrJyYFDAh9lmDOeZQUV1/1XAhAH jQNzJDctiH1E8CRdaY9GGyxvPCNvc/nwCLhVgY7gAQc8JAmqvYpAm1PR7i5WwxFaG6M4 6jwRWVc9l9HUCIIsNIjmvBHgsVtYhnFchNPTtdJSSEkgt/XvyPmuFl/vSF2JpXcQsXwh IOIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=ZCToP8ZIauJnQQfyep0jPKbUdGduU+KgiS+8QVVdIoc=; b=zMx4q3M9LBy3AXth1mGhAkP5TJXzsVdy/onUD9nGJDmkt5L+HTLE6D9Et0TmpdjL9b a5BUsWHUwK59gLWGGfcG/MLmw7X1W5oUifv8ohSvaCi/3GWXa8DEnrc+JFPo4wSQUi0o xxjx8/9MjPrNAdWlaPvksj2mBYzriILxC1W59JI19hNF0wcvgY2WEyBy/EYZ/iRJtKlM jwPVFLQ7YjOC5HYQlGTLEaLWGVRbax+AfnKImLIm5RVVicDNghP4N6coueLx+If1PaR3 zmIP93cbVzSjJjprDD0x7TXSgs8ogDiZE/av3n3llYLjhpI/n+wB2BSICNOio9DRJoyy kzFQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a8-v6si22705561ple.222.2018.05.25.01.16.39; Fri, 25 May 2018 01:16:54 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936022AbeEYIQ1 (ORCPT + 99 others); Fri, 25 May 2018 04:16:27 -0400 Received: from mx2.suse.de ([195.135.220.15]:43833 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935866AbeEYIQ0 (ORCPT ); Fri, 25 May 2018 04:16:26 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext-too.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id E011BAD26; Fri, 25 May 2018 08:16:24 +0000 (UTC) Date: Fri, 25 May 2018 10:16:24 +0200 From: Michal Hocko To: Dave Chinner Cc: Jonathan Corbet , LKML , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, "Darrick J. Wong" , David Sterba Subject: Re: [PATCH] doc: document scope NOFS, NOIO APIs Message-ID: <20180525081624.GH11881@dhcp22.suse.cz> References: <20180424183536.GF30619@thunk.org> <20180524114341.1101-1-mhocko@kernel.org> <20180524221715.GY10363@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180524221715.GY10363@dastard> User-Agent: Mutt/1.9.5 (2018-04-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri 25-05-18 08:17:15, Dave Chinner wrote: > On Thu, May 24, 2018 at 01:43:41PM +0200, Michal Hocko wrote: [...] > > +FS/IO code then simply calls the appropriate save function right at the > > +layer where a lock taken from the reclaim context (e.g. shrinker) and > > +the corresponding restore function when the lock is released. All that > > +ideally along with an explanation what is the reclaim context for easier > > +maintenance. > > This paragraph doesn't make much sense to me. I think you're trying > to say that we should call the appropriate save function "before > locks are taken that a reclaim context (e.g a shrinker) might > require access to." > > I think it's also worth making a note about recursive/nested > save/restore stacking, because it's not clear from this description > that this is allowed and will work as long as inner save/restore > calls are fully nested inside outer save/restore contexts. Any better? -FS/IO code then simply calls the appropriate save function right at the -layer where a lock taken from the reclaim context (e.g. shrinker) and -the corresponding restore function when the lock is released. All that -ideally along with an explanation what is the reclaim context for easier -maintenance. +FS/IO code then simply calls the appropriate save function before any +lock shared with the reclaim context is taken. The corresponding +restore function when the lock is released. All that ideally along with +an explanation what is the reclaim context for easier maintenance. + +Please note that the proper pairing of save/restore function allows nesting +so memalloc_noio_save is safe to be called from an existing NOIO or NOFS scope. What about __vmalloc(GFP_NOFS) ============================== -- Michal Hocko SUSE Labs