Re: Regression: x86/mm: new _PTE_SWP_SOFT_DIRTY bit conflicts withexisting use

From: Cyrill Gorcunov
Date: Wed Aug 21 2013 - 12:19:54 EST


On Wed, Aug 21, 2013 at 05:03:13PM +0100, Jan Beulich wrote:
> >
> > Only to non-present ptes, as far as I know.
>
> That's not really any guarantee. And the accessor functions also
> don't check that they'd be used on non-present PTEs only.

Wait. This _PAGE_SWP_SOFT_DIRTY bit (which is in real PSE bit) assigned
in only one place -- in try_to_unmap_one(). The PTE get non-present then
and consists of swap entry format. I don't see any accessor to such entry
without testing if it's swap entry or pte-none. What I'm missing?

> > orig_pte has pse bit set if page has been soft dirty
> > when it reached swap.
>
> "when it reached swap" to me again implies that it could come
> from a live page table, with the present bit set. So that
> explanation attempt of yours confuses me more than it
> clarifies things for me. (And referring to this bit as PSE bit is

When page swapped out it become non-present in pte entry.

> sort of wrong here too - there's no PSE bit for 4k PTEs, that
> bit is the PAT one, and that's what the whole discussion
> started from.)

And I asked David to point me how it happens, because I don't
understand at which point pse bit get analized when page is
not present.
--
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/