Re: + memcg-swap-cgroup-for-remembering-usage-fix-4.patch added to -mm tree

From: KAMEZAWA Hiroyuki
Date: Wed Nov 19 2008 - 07:36:19 EST


akpm@xxxxxxxxxxxxxxxxxxxx said:

> See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find
> out what to do about this
>
> The current -mm tree may be found at
> http://userweb.kernel.org/~akpm/mmotm/
>
> ------------------------------------------------------
> Subject: memcg: avoid using buggy kmap at swap_cgroup
> From: Hugh Dickins <hugh@xxxxxxxxxxx>
>
> swap_cgroup's kmap logic conflicts shmem's kmap logic.
> avoid to use HIGHMEM for now and revisit this later.
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
> Acked-by: Hugh Dickins <hugh@xxxxxxxxxxx>

Sorry for inconvenience but I'm out of office until Friday.
I met Nishimura and disccussed to post rework patch.
(means unififed patch of original+fix1,2,3,4 + consider about lock again)

Thank you for handling.

Regards,
-Kame

> Cc: Daisuke Nishimura <nishimura@xxxxxxxxxxxxxxxxx>
> Cc: Li Zefan <lizf@xxxxxxxxxxxxxx>
> Cc: Pavel Emelyanov <xemul@xxxxxxxxxx>
> Cc: Balbir Singh <balbir@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
> mm/page_cgroup.c | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff -puN mm/page_cgroup.c~memcg-swap-cgroup-for-remembering-usage-fix-4
> mm/page_cgroup.c
> --- a/mm/page_cgroup.c~memcg-swap-cgroup-for-remembering-usage-fix-4
> +++ a/mm/page_cgroup.c
> @@ -305,7 +305,7 @@ static int swap_cgroup_prepare(int type)
> ctrl = &swap_cgroup_ctrl[type];
>
> for (idx = 0; idx < ctrl->length; idx++) {
> - page = alloc_page(GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO);
> + page = alloc_page(GFP_KERNEL | __GFP_ZERO);
> if (!page)
> goto not_enough_page;
> ctrl->map[idx] = page;
> @@ -346,11 +346,10 @@ struct mem_cgroup *swap_cgroup_record(sw
>
> mappage = ctrl->map[idx];
> spin_lock_irqsave(&ctrl->lock, flags);
> - sc = kmap_atomic(mappage, KM_USER0);
> + sc = page_address(mappage);
> sc += pos;
> old = sc->val;
> sc->val = mem;
> - kunmap_atomic((void *)sc, KM_USER0);
> spin_unlock_irqrestore(&ctrl->lock, flags);
> return old;
> }
> @@ -381,10 +380,9 @@ struct mem_cgroup *lookup_swap_cgroup(sw
> mappage = ctrl->map[idx];
>
> spin_lock_irqsave(&ctrl->lock, flags);
> - sc = kmap_atomic(mappage, KM_USER0);
> + sc = page_address(mappage);
> sc += pos;
> ret = sc->val;
> - kunmap_atomic((void *)sc, KM_USER0);
> spin_unlock_irqrestore(&ctrl->lock, flags);
> return ret;
> }
> _
>
> Patches currently in -mm which might be from hugh@xxxxxxxxxxx are
>
> lib-scatterlistc-fix-kunmap-argument-in-sg_miter_stop.patch
> sprint_symbol-use-less-stack.patch
> migration-fix-writepage-error.patch
> vmscan-let-gfp_nofs-go-to-swap-again.patch
> dont-unlink-an-active-swapfile.patch
> linux-next.patch
> mm-dont-mark_page_accessed-in-shmem_fault.patch
> mm-apply_to_range-call-pte-function-with-lazy-updates.patch
> memcg-handle-swap-caches.patch
> memcg-handle-swap-caches-build-fix.patch
> memcg-swap-cgroup-for-remembering-usage-fix-2.patch
> memcg-swap-cgroup-for-remembering-usage-fix-3.patch
> memcg-swap-cgroup-for-remembering-usage-fix-4.patch
> memcg-memswap-controller-core.patch
> memcg-memswap-controller-core-make-resize-limit-hold-mutex.patch
> prio_tree-debugging-patch.patch
>
> --
> To unsubscribe from this list: send the line "unsubscribe mm-commits" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/