Messages in this thread | | | Date | Sat, 27 Jul 2013 01:18:44 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [PATCH] mm: Save soft-dirty bits on file pages |
| |
On Fri, Jul 26, 2013 at 01:55:04PM -0700, Andy Lutomirski wrote: > On Fri, Jul 26, 2013 at 1:18 PM, Cyrill Gorcunov <gorcunov@gmail.com> wrote: > > Andy reported that if file page get reclaimed we loose soft-dirty bit > > if it was there, so save _PAGE_BIT_SOFT_DIRTY bit when page address > > get encoded into pte entry. Thus when #pf happens on such non-present > > pte we can restore it back. > > > > Unless I'm misunderstanding this, it's saving the bit in the > non-present PTE. This sounds wrong -- what happens if the entire pmd
It's the same as encoding pgoff in pte entry (pte is not present), but together with pgoff we save soft-bit status, later on #pf we decode pgoff and restore softbit back if it was there, pte itself can't disappear since it holds pgoff information.
> (or whatever the next level is called) gets zapped? (Also, what > happens if you unmap a file and map a different file there?)
If file pages are remapped to a new place we remember softdity bit status previously has and propagate it to a new pte (as in install_file_pte, old ptes are cleared).
If file unmapped then new one mapped, pmd/ptes are cleared (including softbit) and it remains clear until new write happens, if only i've not missed something obvious.
| |