RE: Questin about swap_slot free and invalidate page
From: Dan Magenheimer
Date: Mon Feb 25 2013 - 12:27:16 EST
> From: Ric Mason [mailto:ric.masonn@xxxxxxxxx]
> Subject: Re: Questin about swap_slot free and invalidate page
>
> On 02/22/2013 05:42 AM, Dan Magenheimer wrote:
> >> From: Ric Mason [mailto:ric.masonn@xxxxxxxxx]
> >> Subject: Re: Questin about swap_slot free and invalidate page
> >>
> >> On 02/19/2013 11:27 PM, Dan Magenheimer wrote:
> >>>> From: Ric Mason [mailto:ric.masonn@xxxxxxxxx]
> >>>>> Hugh is right that handling the possibility of duplicates is
> >>>>> part of the tmem ABI. If there is any possibility of duplicates,
> >>>>> the ABI defines how a backend must handle them to avoid data
> >>>>> coherency issues.
> >>>>>
> >>>>> The kernel implements an in-kernel API which implements the tmem
> >>>>> ABI. If the frontend and backend can always agree that duplicate
> >>>> Which ABI in zcache implement that?
> >>> https://oss.oracle.com/projects/tmem/dist/documentation/api/tmemspec-v001.pdf
> >>>
> >>> The in-kernel APIs are frontswap and cleancache. For more information about
> >>> tmem, see http://lwn.net/Articles/454795/
> >> But you mentioned that you have in-kernel API which can handle
> >> duplicate. Do you mean zcache_cleancache/frontswap_put_page? I think
> >> they just overwrite instead of optional flush the page on the
> >> second(duplicate) put as mentioned in your tmemspec.
> > Maybe I am misunderstanding your question... The spec allows
> > overwrite (and return success) OR flush the page (and return
> > failure). Zcache does the latter (flush). The code that implements
> > it is in tmem_put.
>
> Thanks for your point out. Pers pages can have duplicate put since swap
> cache page can be reused. Can eph pages also have duplicate put? If yes,
> when can happen?
Yes, I have seen it. I am not sure of the exact circumstances
when it happens as I am not an expert in the VFS subsystem.
(Chris Mason wrote the VFS cleancache hooks in 2009.)
Dan
--
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/