Re: [PATCH 2/8] mm/swap: fix race on swap_info reuse between swapoffand swapon

From: Hugh Dickins
Date: Mon Feb 03 2014 - 23:15:05 EST


On Mon, 3 Feb 2014, Andrew Morton wrote:
> On Mon, 3 Feb 2014 15:23:40 -0800 Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, 27 Jan 2014 18:03:04 +0800 Weijie Yang <weijie.yang@xxxxxxxxxxx> wrote:
> >
> > > swapoff clear swap_info's SWP_USED flag prematurely and free its resources
> > > after that. A concurrent swapon will reuse this swap_info while its previous
> > > resources are not cleared completely.
> > >
> > > These late freed resources are:
> > > - p->percpu_cluster
> > > - swap_cgroup_ctrl[type]
> > > - block_device setting
> > > - inode->i_flags &= ~S_SWAPFILE
> > >
> > > This patch clear SWP_USED flag after all its resources freed, so that swapon
> > > can reuse this swap_info by alloc_swap_info() safely.
> > >
> > > This patch is just for a rare scenario, aim to correct of code.
> >
> > I believe that
> > http://ozlabs.org/~akpm/mmots/broken-out/mm-swap-fix-race-on-swap_info-reuse-between-swapoff-and-swapon.patch
> > makes this patch redundant?
> >
>
> oop, hang on. This patch *is* a stealth-updated version of
> http://ozlabs.org/~akpm/mmots/broken-out/mm-swap-fix-race-on-swap_info-reuse-between-swapoff-and-swapon.patch.
>
> Undocumented removals of si->swap_map have been added. What's going on
> there?
>
> I think I'll stick with the original patch for now. If you see
> additional optimisations or changes, let's address that separately?

Correct decision, thanks: I explained in an answer when Acking the
previous version why I dislike this version (it would prevent you
from watching the slow progress of swapoff).

Hugh
--
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/