linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Randy Dunlap <rdunlap@infradead.org>
To: Michal Hocko <mhocko@kernel.org>,
	Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: Dave Chinner <david@fromorbit.com>,
	Jonathan Corbet <corbet@lwn.net>,
	LKML <linux-kernel@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	David Sterba <dsterba@suse.cz>
Subject: Re: [PATCH] doc: document scope NOFS, NOIO APIs
Date: Mon, 28 May 2018 09:10:43 -0700	[thread overview]
Message-ID: <d2f6c4c1-856a-d233-8610-67a868b856f9@infradead.org> (raw)
In-Reply-To: <20180528092138.GI1517@dhcp22.suse.cz>

On 05/28/2018 02:21 AM, Michal Hocko wrote:
> On Sun 27-05-18 15:47:22, Mike Rapoport wrote:
>> On Fri, May 25, 2018 at 10:16:24AM +0200, Michal Hocko wrote:
>>> 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
>>
>> Maybe: "The corresponding restore function is called when the lock is
>> released"
> 
> This will get rewritten some more based on comments from Dave
>  
>>> +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.
>>  
>> so it is safe to call memalloc_noio_save from an existing NOIO or NOFS
>> scope
> 
> Here is what I have right now on top
> 
> diff --git a/Documentation/core-api/gfp_mask-from-fs-io.rst b/Documentation/core-api/gfp_mask-from-fs-io.rst
> index c0ec212d6773..0cff411693ab 100644
> --- a/Documentation/core-api/gfp_mask-from-fs-io.rst
> +++ b/Documentation/core-api/gfp_mask-from-fs-io.rst
> @@ -34,12 +34,15 @@ scope will inherently drop __GFP_FS respectively __GFP_IO from the given
>  mask so no memory allocation can recurse back in the FS/IO.
>  
>  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.
> +critical section wrt. the reclaim is started - e.g. lock shared with the

Please spell out "with respect to".

> +reclaim context or when a transaction context nesting would be possible
> +via reclaim. The corresponding restore function when the critical

"The corresponding restore ... ends."  << That is not a complete sentence.
It's missing something.

> +section ends. 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 it is safe to call ``memalloc_noio_save`` respectively
> +``memalloc_noio_restore`` from an existing NOIO or NOFS scope.

Please note that the proper pairing of save/restore functions allows
nesting so it is safe to call ``memalloc_noio_save`` or
``memalloc_noio_restore`` respectively from an existing NOIO or NOFS scope.


>  
>  What about __vmalloc(GFP_NOFS)
>  ==============================
> 


-- 
~Randy

  reply	other threads:[~2018-05-28 16:10 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24 16:27 vmalloc with GFP_NOFS Michal Hocko
2018-04-24 16:46 ` Mikulas Patocka
2018-04-24 16:55   ` Michal Hocko
2018-04-24 17:05     ` Mikulas Patocka
2018-04-24 18:35 ` Theodore Y. Ts'o
2018-04-24 19:25   ` Michal Hocko
2018-05-09 13:42     ` Michal Hocko
2018-05-09 14:13       ` David Sterba
2018-05-09 15:13       ` Darrick J. Wong
2018-05-09 16:24         ` Mike Rapoport
2018-05-09 21:06           ` Michal Hocko
2018-05-09 21:04         ` Michal Hocko
2018-05-09 22:02           ` Darrick J. Wong
2018-05-10  5:58             ` Michal Hocko
2018-05-10  7:18               ` Michal Hocko
2018-05-24 11:43   ` [PATCH] doc: document scope NOFS, NOIO APIs Michal Hocko
2018-05-24 14:33     ` Shakeel Butt
2018-05-24 14:47       ` Michal Hocko
2018-05-24 16:37     ` Randy Dunlap
2018-05-25  7:52       ` Michal Hocko
2018-05-28  7:21         ` Nikolay Borisov
2018-05-29  8:22           ` Michal Hocko
2018-05-28 11:32         ` Vlastimil Babka
2018-05-24 20:52     ` Jonathan Corbet
2018-05-25  8:11       ` Michal Hocko
2018-05-24 22:17     ` Dave Chinner
2018-05-24 23:25       ` Theodore Y. Ts'o
2018-05-25  8:16       ` Michal Hocko
2018-05-27 12:47         ` Mike Rapoport
2018-05-28  9:21           ` Michal Hocko
2018-05-28 16:10             ` Randy Dunlap [this message]
2018-05-29  8:21               ` Michal Hocko
2018-05-27 23:48         ` Dave Chinner
2018-05-28  9:19           ` Michal Hocko
2018-05-28 22:32             ` Dave Chinner
2018-05-29  8:18               ` Michal Hocko
2018-05-29  8:26     ` [PATCH v2] " Michal Hocko
2018-05-29 10:22       ` Dave Chinner
2018-05-29 11:50       ` Mike Rapoport
2018-05-29 11:51       ` Jonathan Corbet
2018-05-29 12:37         ` Michal Hocko
2018-07-17 12:49   ` vmalloc with GFP_NOFS Michal Hocko
2018-04-24 19:03 ` Richard Weinberger
2018-04-24 19:28   ` Michal Hocko
2018-04-24 22:18     ` Richard Weinberger
2018-04-24 23:09       ` Michal Hocko
2018-04-24 23:17         ` Mikulas Patocka
2018-04-24 23:25           ` Michal Hocko
2018-04-25 12:43             ` Mikulas Patocka
2018-04-25 14:45               ` Michal Hocko
2018-04-25 15:25                 ` Mikulas Patocka
2018-04-25 16:56                   ` Michal Hocko
2018-07-17 12:47   ` Michal Hocko
2018-04-24 19:05 ` Richard Weinberger
2018-04-24 19:10 ` Richard Weinberger
2018-04-24 19:26 ` Steven Whitehouse
2018-04-24 20:09   ` Michal Hocko
2018-07-17 12:50     ` Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d2f6c4c1-856a-d233-8610-67a868b856f9@infradead.org \
    --to=rdunlap@infradead.org \
    --cc=corbet@lwn.net \
    --cc=darrick.wong@oracle.com \
    --cc=david@fromorbit.com \
    --cc=dsterba@suse.cz \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mhocko@kernel.org \
    --cc=rppt@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox