All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nadav Amit <namit@vmware.com>
To: Dave Hansen <dave.hansen@linux.intel.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
	"open list:MEMORY MANAGEMENT" <linux-mm@kvack.org>,
	Andrea Arcangeli <aarcange@redhat.com>,
	"luto@kernel.org" <luto@kernel.org>,
	"torvalds@linux-foundation.org" <torvalds@linux-foundation.org>,
	"keescook@google.com" <keescook@google.com>,
	"hughd@google.com" <hughd@google.com>,
	"jgross@suse.com" <jgross@suse.com>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH 05/11] x86/mm: do not auto-massage page protections
Date: Fri, 23 Mar 2018 19:15:55 +0000	[thread overview]
Message-ID: <224464E0-1D3A-4ED8-88E0-A8E84C4265FC@vmware.com> (raw)
In-Reply-To: <20180323174454.CD00F614@viggo.jf.intel.com>

Dave Hansen <dave.hansen@linux.intel.com> wrote:

> 
> From: Dave Hansen <dave.hansen@linux.intel.com>
> 
> A PTE is constructed from a physical address and a pgprotval_t.
> __PAGE_KERNEL, for instance, is a pgprot_t and must be converted
> into a pgprotval_t before it can be used to create a PTE.  This is
> done implicitly within functions like set_pte() by massage_pgprot().
> 
> However, this makes it very challenging to set bits (and keep them
> set) if your bit is being filtered out by massage_pgprot().
> 
> This moves the bit filtering out of set_pte() and friends.  For

I don’t see that set_pte() filters the bits, so I am confused by this
sentence...

> +static inline pgprotval_t check_pgprot(pgprot_t pgprot)
> +{
> +	pgprotval_t massaged_val = massage_pgprot(pgprot);
> +
> +	/* mmdebug.h can not be included here because of dependencies */
> +#ifdef CONFIG_DEBUG_VM
> +	WARN_ONCE(pgprot_val(pgprot) != massaged_val,
> +		  "attempted to set unsupported pgprot: %016lx "
> +		  "bits: %016lx supported: %016lx\n",
> +		  pgprot_val(pgprot),
> +		  pgprot_val(pgprot) ^ massaged_val,
> +		  __supported_pte_mask);
> +#endif
Why not to use VM_WARN_ON_ONCE() and avoid the ifdef?

  reply	other threads:[~2018-03-23 19:15 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-23 17:44 [PATCH 00/11] Use global pages with PTI Dave Hansen
2018-03-23 17:44 ` [PATCH 01/11] x86/mm: factor out pageattr _PAGE_GLOBAL setting Dave Hansen
2018-03-23 17:44 ` [PATCH 02/11] x86/mm: undo double _PAGE_PSE clearing Dave Hansen
2018-03-23 17:44 ` [PATCH 03/11] x86/mm: introduce "default" kernel PTE mask Dave Hansen
2018-03-23 17:44 ` [PATCH 04/11] x86/espfix: document use of _PAGE_GLOBAL Dave Hansen
2018-03-23 17:44 ` [PATCH 05/11] x86/mm: do not auto-massage page protections Dave Hansen
2018-03-23 19:15   ` Nadav Amit [this message]
2018-03-23 19:26     ` Dave Hansen
2018-03-23 19:26       ` Dave Hansen
2018-03-23 19:34       ` Nadav Amit
2018-03-23 19:38         ` Dave Hansen
2018-03-24 15:10   ` kbuild test robot
2018-03-24 15:10     ` kbuild test robot
2018-03-24 15:21   ` kbuild test robot
2018-03-24 15:21     ` kbuild test robot
2018-03-23 17:44 ` [PATCH 06/11] x86/mm: remove extra filtering in pageattr code Dave Hansen
2018-03-23 17:44 ` [PATCH 07/11] x86/mm: comment _PAGE_GLOBAL mystery Dave Hansen
2018-03-23 17:44 ` [PATCH 08/11] x86/mm: do not forbid _PAGE_RW before init for __ro_after_init Dave Hansen
2018-03-23 17:45 ` [PATCH 09/11] x86/pti: enable global pages for shared areas Dave Hansen
2018-03-23 19:12   ` Nadav Amit
2018-03-23 19:36     ` Dave Hansen
2018-03-23 17:45 ` [PATCH 10/11] x86/pti: clear _PAGE_GLOBAL for kernel image Dave Hansen
2018-03-23 17:45 ` [PATCH 11/11] x86/pti: leave kernel text global for !PCID Dave Hansen
2018-03-23 18:26 ` [PATCH 00/11] Use global pages with PTI Linus Torvalds
2018-03-24  0:40   ` Dave Hansen
2018-03-24  0:46     ` Linus Torvalds
2018-03-24  0:54       ` Linus Torvalds
2018-03-24 11:05     ` Ingo Molnar
2018-03-27 13:36     ` Thomas Gleixner
2018-03-27 16:32       ` Dave Hansen
2018-03-27 17:51         ` Thomas Gleixner
2018-03-27 20:07           ` Ingo Molnar
2018-03-27 20:19             ` Dave Hansen
2018-03-29  0:17             ` Dave Hansen
2018-03-30 12:09               ` Ingo Molnar
2018-03-30 12:17                 ` Ingo Molnar
2018-03-30 20:26                   ` Dave Hansen
2018-03-30 20:32                     ` Thomas Gleixner
2018-03-30 21:40                       ` Dave Hansen
2018-03-31  5:39                         ` Ingo Molnar
2018-03-31 18:19                           ` Dave Hansen
2018-04-02 17:27 [PATCH 00/11] [v3] " Dave Hansen
2018-04-02 17:27 ` [PATCH 05/11] x86/mm: do not auto-massage page protections Dave Hansen
2018-04-04  1:09 [PATCH 00/11] [v4] Use global pages with PTI Dave Hansen
2018-04-04  1:09 ` [PATCH 05/11] x86/mm: do not auto-massage page protections Dave Hansen
2018-04-05 19:49   ` Tom Lendacky
2018-04-06 20:55 [PATCH 00/11] [v5] Use global pages with PTI Dave Hansen
2018-04-06 20:55 ` [PATCH 05/11] x86/mm: do not auto-massage page protections Dave Hansen

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=224464E0-1D3A-4ED8-88E0-A8E84C4265FC@vmware.com \
    --to=namit@vmware.com \
    --cc=aarcange@redhat.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=hughd@google.com \
    --cc=jgross@suse.com \
    --cc=keescook@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    /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.