On Thu, 18 Mar 2021 10:00:17 -0600 Jens Axboe <axboe@xxxxxxxxx> wrote: > On 3/18/21 9:53 AM, Shakeel Butt wrote: > > On Wed, Mar 17, 2021 at 3:30 PM Jens Axboe <axboe@xxxxxxxxx> wrote: > >> > >> On 3/16/21 9:36 AM, Dan Schatzberg wrote: > >>> No major changes, just rebasing and resubmitting > >> > >> Applied for 5.13, thanks. > >> > > > > I have requested a couple of changes in the patch series. Can this > > applied series still be changed or new patches are required? > > I have nothing sitting on top of it for now, so as far as I'm concerned > we can apply a new series instead. Then we can also fold in that fix > from Colin that he posted this morning... The collision in memcontrol.c is a pain, but I guess as this is mainly a loop patch, the block tree is an appropriate route. Here's the collision between "mm: Charge active memcg when no mm is set" and Shakeels's https://lkml.kernel.org/r/20210305212639.775498-1-shakeelb@xxxxxxxxxx --- mm/memcontrol.c +++ mm/memcontrol.c @@ -6728,8 +6730,15 @@ int mem_cgroup_charge(struct page *page, struct mm_struct *mm, gfp_t gfp_mask) rcu_read_unlock(); } - if (!memcg) - memcg = get_mem_cgroup_from_mm(mm); + if (!memcg) { + if (!mm) { + memcg = get_mem_cgroup_from_current(); + if (!memcg) + memcg = get_mem_cgroup_from_mm(current->mm); + } else { + memcg = get_mem_cgroup_from_mm(mm); + } + } ret = try_charge(memcg, gfp_mask, nr_pages); if (ret) Which I resolved thusly: int mem_cgroup_charge(struct page *page, struct mm_struct *mm, gfp_t gfp_mask) { struct mem_cgroup *memcg; int ret; if (mem_cgroup_disabled()) return 0; if (!mm) { memcg = get_mem_cgroup_from_current(); (!memcg) memcg = get_mem_cgroup_from_mm(current->mm); } else { memcg = get_mem_cgroup_from_mm(mm); } ret = __mem_cgroup_charge(page, memcg, gfp_mask); css_put(&memcg->css); return ret; }