From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Andy Lutomirski <luto@amacapital.net>,
David Vrabel <david.vrabel@citrix.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Xen-devel@lists.xen.org,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
Pavel Emelyanov <xemul@parallels.com>,
Ingo Molnar <mingo@redhat.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: Re: Regression: x86/mm: new _PTE_SWP_SOFT_DIRTY bit conflicts with existing use
Date: Thu, 22 Aug 2013 11:03:05 +0400 [thread overview]
Message-ID: <20130822070305.GH18673@moon> (raw)
In-Reply-To: <5215D23A02000078000ED7FC@nat28.tlf.novell.com>
On Thu, Aug 22, 2013 at 07:56:26AM +0100, Jan Beulich wrote:
> >>> On 21.08.13 at 18:19, Cyrill Gorcunov <gorcunov@gmail.com> wrote:
> > 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?
>
> Fact is that this
>
> static inline pte_t pte_swp_mksoft_dirty(pte_t pte)
> {
> return pte_set_flags(pte, _PAGE_SWP_SOFT_DIRTY);
> }
>
> has no checking whatsoever that the PTE being modified is a
> non-present one, not even in any of the debugging modes. It
> would be a different thing if the above acted on a swp_entry_t.
>
> The fact that there currently may be just a single call site (where
> the caller guarantees the non-present state) is no guarantee that
> in the future another one won't appear, and then result in very
> hard to debug problems.
Ok, how about this?
static inline pte_t pte_swp_mksoft_dirty(pte_t pte)
{
BUG_ON(pte_present(pte));
return pte_set_flags(pte, _PAGE_SWP_SOFT_DIRTY);
}
next prev parent reply other threads:[~2013-08-22 7:03 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-21 13:48 Regression: x86/mm: new _PTE_SWP_SOFT_DIRTY bit conflicts with existing use David Vrabel
2013-08-21 13:53 ` konrad wilk
2013-08-21 13:53 ` konrad wilk
2013-08-21 14:11 ` H. Peter Anvin
2013-08-21 14:19 ` Cyrill Gorcunov
2013-08-21 14:19 ` Cyrill Gorcunov
2013-08-21 14:22 ` H. Peter Anvin
2013-08-21 14:22 ` H. Peter Anvin
2013-08-21 14:29 ` Cyrill Gorcunov
2013-08-21 14:29 ` Cyrill Gorcunov
2013-08-21 16:30 ` Linus Torvalds
2013-08-21 16:42 ` Cyrill Gorcunov
2013-08-21 16:42 ` Cyrill Gorcunov
2013-08-21 23:05 ` Cyrill Gorcunov
2013-08-21 23:42 ` Andi Kleen
2013-08-21 23:42 ` Andi Kleen
2013-08-22 5:49 ` Cyrill Gorcunov
2013-08-22 6:37 ` Minchan Kim
2013-08-22 13:12 ` Cyrill Gorcunov
2013-08-22 13:12 ` Cyrill Gorcunov
2013-08-22 6:37 ` Minchan Kim
2013-08-22 5:49 ` Cyrill Gorcunov
2013-08-21 23:05 ` Cyrill Gorcunov
2013-08-27 22:04 ` Benjamin Herrenschmidt
2013-08-27 22:04 ` Benjamin Herrenschmidt
2013-08-21 16:30 ` Linus Torvalds
2013-08-21 14:11 ` H. Peter Anvin
2013-08-21 14:12 ` Cyrill Gorcunov
2013-08-21 14:22 ` H. Peter Anvin
2013-08-21 14:22 ` H. Peter Anvin
2013-08-21 14:53 ` Jan Beulich
2013-08-21 14:58 ` H. Peter Anvin
2013-08-21 14:58 ` H. Peter Anvin
2013-08-21 15:42 ` Cyrill Gorcunov
2013-08-21 16:03 ` Jan Beulich
2013-08-21 16:03 ` Jan Beulich
2013-08-21 16:19 ` Cyrill Gorcunov
2013-08-21 16:19 ` Cyrill Gorcunov
2013-08-21 16:56 ` David Vrabel
2013-08-21 17:25 ` Cyrill Gorcunov
2013-08-21 17:25 ` Cyrill Gorcunov
2013-08-21 18:17 ` Cyrill Gorcunov
2013-08-21 18:50 ` H. Peter Anvin
2013-08-21 18:50 ` H. Peter Anvin
2013-08-21 19:03 ` Cyrill Gorcunov
2013-08-21 19:07 ` Andy Lutomirski
2013-08-21 19:20 ` Cyrill Gorcunov
2013-08-21 19:20 ` Cyrill Gorcunov
2013-08-21 19:21 ` Pavel Emelyanov
2013-08-21 19:21 ` Pavel Emelyanov
2013-08-21 19:07 ` Andy Lutomirski
2013-08-21 23:04 ` Linus Torvalds
2013-08-22 0:51 ` Dave Jones
2013-08-22 0:51 ` Dave Jones
2013-08-22 5:44 ` Cyrill Gorcunov
2013-08-22 5:44 ` Cyrill Gorcunov
2013-08-22 6:41 ` Pavel Emelyanov
2013-08-22 6:41 ` Pavel Emelyanov
2013-08-22 7:47 ` Jan Beulich
2013-08-22 7:47 ` Jan Beulich
2013-08-22 9:32 ` David Vrabel
2013-08-22 9:32 ` David Vrabel
2013-08-22 10:16 ` Pavel Emelyanov
2013-08-22 10:16 ` Pavel Emelyanov
2013-08-21 23:04 ` Linus Torvalds
2013-08-21 19:03 ` Cyrill Gorcunov
2013-08-21 18:17 ` Cyrill Gorcunov
2013-08-21 16:56 ` David Vrabel
2013-08-22 6:56 ` Jan Beulich
2013-08-22 6:56 ` Jan Beulich
2013-08-22 7:03 ` Cyrill Gorcunov
2013-08-22 7:03 ` Cyrill Gorcunov [this message]
2013-08-22 7:27 ` Jan Beulich
2013-08-22 11:27 ` Cyrill Gorcunov
2013-08-22 11:33 ` Jan Beulich
2013-08-22 11:33 ` Jan Beulich
2013-08-22 12:18 ` Pavel Emelyanov
2013-08-22 12:18 ` Pavel Emelyanov
2013-08-22 11:27 ` Cyrill Gorcunov
2013-08-22 7:27 ` Jan Beulich
2013-08-21 15:42 ` Cyrill Gorcunov
2013-08-21 14:53 ` Jan Beulich
2013-08-21 14:12 ` Cyrill Gorcunov
2013-08-21 17:28 ` Andy Lutomirski
2013-08-21 17:28 ` Andy Lutomirski
2013-08-22 7:54 ` Jan Beulich
2013-08-22 9:06 ` Stefan Bader
2013-08-22 7:54 ` Jan Beulich
-- strict thread matches above, loose matches on Subject: below --
2013-08-21 13:48 David Vrabel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130822070305.GH18673@moon \
--to=gorcunov@gmail.com \
--cc=JBeulich@suse.com \
--cc=Xen-devel@lists.xen.org \
--cc=akpm@linux-foundation.org \
--cc=boris.ostrovsky@oracle.com \
--cc=david.vrabel@citrix.com \
--cc=hpa@zytor.com \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@redhat.com \
--cc=torvalds@linux-foundation.org \
--cc=xemul@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.