Re: [patch 1/2] [PATCH] mm: Save soft-dirty bits on swapped pages

From: Cyrill Gorcunov
Date: Thu Aug 01 2013 - 02:28:24 EST


On Thu, Aug 01, 2013 at 03:16:32PM +0900, Minchan Kim wrote:
>
> I don't get it. Could you correct me with below example?
>
> Process A context
> try_to_unmap
> swp_pte = swp_entry_to_pte /* change generic swp into arch swap */
> swp_pte = pte_swp_mksoft_dirty(swp_pte);
> set_pte_at(, swp_pte);
>
> Process A context
> ..
> mincore_pte_range
pte_t pte = *ptep; <-- local copy of the pte value, in memory it remains the same
with swap softdirty bit set
> pte_to_swp_entry
> pte = pte_swp_clear_soft_dirty <=== 1)
> change arch swp with generic swp
> mincore_page
>
> Process B want to know dirty state of the page
> ..
> pagemap_read
> pte_to_pagemap_entry
> is_swap_pte
> if (pte_swap_soft_dirty(pte)) <=== but failed by 1)
>
> So, Process B can't get the dirty status from process A's the page.
--
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/