> On Apr 15, 2020, at 7:57 AM, Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx> wrote: > > On 15.04.20 16:23, Michal Hocko wrote: >> On Wed 15-04-20 16:10:08, Guoqing Jiang wrote: >>> On 15.04.20 13:48, Michal Hocko wrote: >>>> On Thu 09-04-20 23:38:13, Guoqing Jiang wrote: >>>> [...] >>>>> Not know memalloc_noio_{save,restore} well, but I guess it is better >>>>> to use them to mark a small scope, just my two cents. >>>> This would go against the intentio of the api. It is really meant to >>>> define reclaim recursion problematic scope. >>> Well, in current proposal, the scope is just when >>> scribble_allo/kvmalloc_array is called. >>> >>> memalloc_noio_save >>> scribble_allo/kvmalloc_array >>> memalloc_noio_restore >>> >>> With the new proposal, the marked scope would be bigger than current one >>> since there >>> are lots of places call mddev_suspend/resume. >>> >>> mddev_suspend >>> memalloc_noio_save >>> ... >>> memalloc_noio_restore >>> mddev_resume >>> >>> IMHO, if the current proposal works then what is the advantage to increase >>> the scope. >> The advantage is twofold. It serves the documentation purpose because it >> is clear _what_ and _why_ is the actual allocation restricted context. >> In this case mddev_{suspend,resume} because XYZ and you do not have to >> care about __GFP_IO for _any_ allocation inside the scope. > > Personally, I'd prefer fine grained protection scope, anyway just my own > flavor. And I think Song has his opinion about the proposal, I will respect > his decision. Thanks Coly, Guoqing, and Michal for these great inputs. Coly's v3 set looks good to me. I will go ahead apply that version to md-next branch. Thanks again, Song