All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@redhat.com>
To: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>,
	x86@kernel.org, platform-driver-x86@vger.kernel.org,
	dave.hansen@intel.com, npmccallum@redhat.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	"open list:X86 ARCHITECTURE (32-BIT AND 64-BIT)" 
	<linux-kernel@vger.kernel.org>,
	"open list:INTEL SGX" <intel-sgx-kernel-dev@lists.01.org>
Subject: Re: [PATCH v11 09/13] x86, sgx: basic routines for enclave page cache
Date: Mon, 25 Jun 2018 12:14:16 -0400	[thread overview]
Message-ID: <20180625161416.GC18878@hmswarspite.think-freely.org> (raw)
In-Reply-To: <b8ea3787ae99637a8aae286ff90ac6889d8b55f4.camel@linux.intel.com>

On Mon, Jun 25, 2018 at 12:21:22PM +0300, Jarkko Sakkinen wrote:
> On Wed, 2018-06-20 at 06:21 -0700, Sean Christopherson wrote:
> > On Fri, 2018-06-08 at 19:09 +0200, Jarkko Sakkinen wrote:
> > > SGX has a set of data structures to maintain information about the enclaves
> > > and their security properties. BIOS reserves a fixed size region of
> > > physical memory for these structures by setting Processor Reserved Memory
> > > Range Registers (PRMRR). This memory area is called Enclave Page Cache
> > > (EPC).
> > > 
> > > This commit implements the basic routines to allocate and free pages from
> > > different EPC banks. There is also a swapper thread ksgxswapd for EPC pages
> > > that gets woken up by sgx_alloc_page() when we run below the low watermark.
> > > The swapper thread continues swapping pages up until it reaches the high
> > > watermark.
> > > 
> > > Each subsystem that uses SGX must provide a set of callbacks for EPC
> > > pages that are used to reclaim, block and write an EPC page. Kernel
> > > takes the responsibility of maintaining LRU cache for them.
> > > 
> > > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
> > > ---
> > >  arch/x86/include/asm/sgx.h      |  67 +++++
> > >  arch/x86/include/asm/sgx_arch.h | 224 ++++++++++++++++
> > >  arch/x86/kernel/cpu/intel_sgx.c | 443 +++++++++++++++++++++++++++++++-
> > >  3 files changed, 732 insertions(+), 2 deletions(-)
> > >  create mode 100644 arch/x86/include/asm/sgx_arch.h
> > 
> > ...
> > 
> > > +struct sgx_pcmd {
> > > +	struct sgx_secinfo secinfo;
> > > +	uint64_t enclave_id;
> > > +	uint8_t reserved[40];
> > > +	uint8_t mac[16];
> > > +};
> > 
> > sgx_pcmd has a 128-byte alignment requirement.  I think it's
> > worth specifying here as sgx_pcmd is small enough that it could
> > be put on the stack, e.g. by KVM when trapping and executing
> > ELD* on behalf of a guest VM.
> > 
> > In fact, it probably makes sense to add alightment attributes
> > to all SGX structs for self-documentation purposes, even though
> > many of them will never be allocated statically or on the stack.
> 
> I agree with this. It also documents stuff so that you don't have
> to look it up from the SDM.
> 
> Neil: this should also clear your concerns.
> 
Agreed
Neil

> /Jarkko

  reply	other threads:[~2018-06-25 16:14 UTC|newest]

Thread overview: 181+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-08 17:09 [PATCH v11 00/13] Intel SGX1 support Jarkko Sakkinen
2018-06-08 17:09 ` Jarkko Sakkinen
2018-06-08 17:09 ` Jarkko Sakkinen
2018-06-08 17:09 ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 01/13] compiler.h, kasan: add __SANITIZE_ADDRESS__ check for __no_kasan_or_inline Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 02/13] x86, sgx: updated MAINTAINERS Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 03/13] x86, sgx: add SGX definitions to cpufeature Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 04/13] x86, sgx: add SGX definitions to msr-index.h Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:25   ` Dave Hansen
2018-06-19 13:18     ` Jarkko Sakkinen
2018-06-19 13:18       ` Jarkko Sakkinen
2018-06-19 14:01       ` Dave Hansen
2018-06-19 14:01         ` Dave Hansen
2018-06-21 17:22         ` Jarkko Sakkinen
2018-06-21 17:22           ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 05/13] x86, cpufeatures: add Intel-defined SGX leaf CPUID_12_EAX Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 06/13] crypto: aesni: add minimal build option for SGX LE Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:27   ` Dave Hansen
2018-06-11 15:24     ` Sean Christopherson
2018-06-08 17:09 ` [PATCH v11 07/13] x86, sgx: detect Intel SGX Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:36   ` Dave Hansen
2018-06-18 21:36     ` [intel-sgx-kernel-dev] " Andy Lutomirski
2018-06-25  7:39       ` Jarkko Sakkinen
2018-06-19 13:33     ` Jarkko Sakkinen
2018-06-19 13:33       ` Jarkko Sakkinen
2018-06-11 11:35   ` Neil Horman
2018-06-19 13:34     ` Jarkko Sakkinen
2018-06-19 13:34       ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 08/13] x86, sgx: added ENCLS wrappers Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:43   ` Dave Hansen
2018-06-19 13:25     ` Jarkko Sakkinen
2018-06-19 13:25       ` Jarkko Sakkinen
2018-06-20 13:12   ` Sean Christopherson
2018-06-20 13:12     ` Sean Christopherson
2018-06-25  9:16     ` Jarkko Sakkinen
2018-06-25  9:16       ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 09/13] x86, sgx: basic routines for enclave page cache Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 18:21   ` Jethro Beekman
2018-06-18 21:33     ` [intel-sgx-kernel-dev] " Andy Lutomirski
2018-06-25  7:36       ` Jarkko Sakkinen
2018-06-19 14:08     ` Jarkko Sakkinen
2018-06-19 14:08       ` Jarkko Sakkinen
2018-06-19 15:44       ` Jethro Beekman
2018-06-19 15:44         ` Jethro Beekman
2018-06-08 18:24   ` Dave Hansen
2018-06-19 14:57     ` Jarkko Sakkinen
2018-06-19 14:57       ` Jarkko Sakkinen
2018-06-19 15:19       ` Neil Horman
2018-06-19 15:19         ` Neil Horman
2018-06-19 15:32       ` Dave Hansen
2018-06-19 15:32         ` Dave Hansen
2018-06-25  9:01         ` Jarkko Sakkinen
2018-06-25  9:01           ` Jarkko Sakkinen
2018-06-19 15:59       ` Sean Christopherson
2018-06-19 15:59         ` Sean Christopherson
2018-06-25  9:14         ` Jarkko Sakkinen
2018-06-25  9:14           ` Jarkko Sakkinen
2018-06-10  5:32   ` [intel-sgx-kernel-dev] " Andy Lutomirski
2018-06-11 15:12     ` Sean Christopherson
2018-06-20 13:21   ` Sean Christopherson
2018-06-20 13:21     ` Sean Christopherson
2018-06-25  9:21     ` Jarkko Sakkinen
2018-06-25  9:21       ` Jarkko Sakkinen
2018-06-25 16:14       ` Neil Horman [this message]
2018-06-25 16:14         ` Neil Horman
2018-06-20 15:26   ` Sean Christopherson
2018-06-20 15:26     ` Sean Christopherson
2018-06-25  9:21     ` Jarkko Sakkinen
2018-06-25  9:21       ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 10/13] intel_sgx: driver for Intel Software Guard Extensions Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 19:35   ` Dave Hansen
2018-06-19 13:29     ` Jarkko Sakkinen
2018-06-19 13:29       ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 11/13] intel_sgx: ptrace() support Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 18:34   ` Dave Hansen
2018-06-11 15:02     ` Sean Christopherson
2018-06-19 13:38       ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 12/13] intel_sgx: driver documentation Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 18:32   ` Jethro Beekman
2018-06-19 13:30     ` Jarkko Sakkinen
2018-06-19 13:30       ` Jarkko Sakkinen
2018-06-08 21:41   ` Randy Dunlap
2018-06-08 21:41     ` Randy Dunlap
2018-06-19 13:31     ` Jarkko Sakkinen
2018-06-19 13:31       ` Jarkko Sakkinen
2018-06-08 17:09 ` [PATCH v11 13/13] intel_sgx: in-kernel launch enclave Jarkko Sakkinen
2018-06-08 17:09   ` Jarkko Sakkinen
2018-06-08 18:50   ` [intel-sgx-kernel-dev] " Andy Lutomirski
2018-06-19 15:05     ` Jarkko Sakkinen
2018-06-10  5:39   ` Andy Lutomirski
2018-06-11  5:17     ` Andy Lutomirski
2018-06-11 11:52       ` Neil Horman
2018-06-12  4:55         ` Andy Lutomirski
2018-06-12 17:45           ` Neil Horman
2018-06-18 21:58             ` Andy Lutomirski
2018-06-19 13:17               ` Neil Horman
2018-06-20 16:28               ` Nathaniel McCallum
2018-06-20 18:16                 ` Jethro Beekman
2018-06-20 18:39                   ` Jethro Beekman
2018-06-20 21:01                     ` Sean Christopherson
2018-06-21 12:32                       ` Nathaniel McCallum
2018-06-21 15:29                         ` Neil Horman
2018-06-21 19:11                           ` Nathaniel McCallum
2018-06-21 21:20                             ` Sean Christopherson
2018-06-25 21:00                               ` Nathaniel McCallum
2018-06-25 22:35                                 ` Sean Christopherson
2018-06-21 22:48                             ` Andy Lutomirski
2018-06-25 21:06                               ` Nathaniel McCallum
2018-06-25 23:40                                 ` Andy Lutomirski
2018-06-25  9:41                         ` Jarkko Sakkinen
2018-06-25 15:45                           ` Andy Lutomirski
2018-06-25 21:28                             ` Nathaniel McCallum
2018-06-26  8:43                             ` Jarkko Sakkinen
2018-06-26 15:01                               ` Nathaniel McCallum
2018-06-27 15:31                                 ` Jarkko Sakkinen
2018-06-21 12:12                   ` Nathaniel McCallum
2018-06-25  9:27                 ` Jarkko Sakkinen
2018-06-25 21:26                   ` Nathaniel McCallum
2018-06-20  7:23       ` Jarkko Sakkinen
2018-06-12 10:50 ` [PATCH v11 00/13] Intel SGX1 support Pavel Machek
2018-06-12 10:50   ` Pavel Machek
2018-06-19 14:59   ` Jarkko Sakkinen
2018-06-19 14:59     ` Jarkko Sakkinen
2018-06-19 14:59     ` Jarkko Sakkinen
2018-06-19 20:04     ` Pavel Machek
2018-06-19 20:04       ` Pavel Machek
2018-06-19 20:23       ` Peter Zijlstra
2018-06-19 20:23         ` Peter Zijlstra
2018-06-19 20:23         ` Peter Zijlstra
2018-06-19 20:23         ` Peter Zijlstra
2018-06-19 21:48       ` Josh Triplett
2018-06-19 21:48         ` Josh Triplett
2018-06-19 21:48         ` Josh Triplett
2018-06-19 21:48         ` Josh Triplett
2018-12-09 20:06         ` Pavel Machek
2018-12-09 20:06           ` Pavel Machek
2018-12-09 20:06           ` Pavel Machek
2018-12-09 20:06           ` Pavel Machek
2018-12-10  7:47           ` Josh Triplett
2018-12-10  7:47             ` Josh Triplett
2018-12-10  7:47             ` Josh Triplett
2018-12-10  7:47             ` Josh Triplett
2018-12-10  8:27             ` Pavel Machek
2018-12-10  8:27               ` Pavel Machek
2018-12-10  8:27               ` Pavel Machek
2018-12-10  8:27               ` Pavel Machek
2018-12-10 23:12               ` Josh Triplett
2018-12-10 23:12                 ` Josh Triplett
2018-12-10 23:12                 ` Josh Triplett
2018-12-10 23:12                 ` Josh Triplett
2018-12-11 18:10                 ` Dave Hansen
2018-12-11 18:10                   ` Dave Hansen
2018-12-11 18:10                   ` Dave Hansen
2018-12-11 18:10                   ` Dave Hansen
2018-12-11 18:31                   ` Sean Christopherson
2018-12-11 18:31                     ` Sean Christopherson
2018-12-11 18:31                     ` Sean Christopherson
2018-12-11 18:31                     ` Sean Christopherson
2018-06-19 20:36     ` Peter Zijlstra
2018-06-19 20:36       ` Peter Zijlstra
2018-06-19 20:36       ` Peter Zijlstra
2018-06-19 20:36       ` Peter Zijlstra
2018-06-21 12:55 ` Ingo Molnar
2018-06-21 12:55   ` Ingo Molnar
2018-06-21 12:55   ` Ingo Molnar
2018-06-25  9:44   ` Jarkko Sakkinen
2018-06-25  9:44     ` Jarkko Sakkinen
2018-06-25  9:44     ` Jarkko Sakkinen

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=20180625161416.GC18878@hmswarspite.think-freely.org \
    --to=nhorman@redhat.com \
    --cc=dave.hansen@intel.com \
    --cc=hpa@zytor.com \
    --cc=intel-sgx-kernel-dev@lists.01.org \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=npmccallum@redhat.com \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=sean.j.christopherson@intel.com \
    --cc=tglx@linutronix.de \
    --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.