[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <371e6a92cad25cbe7a8489785efa7d3457ecef3b.camel@linux.intel.com>
Date: Mon, 18 May 2020 23:01:11 +0300
From: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>
To: Andi Kleen <ak@...ux.intel.com>
Cc: Sasha Levin <sashal@...nel.org>, linux-kernel@...r.kernel.org,
tglx@...utronix.de, bp@...en8.de, luto@...nel.org, hpa@...or.com,
dave.hansen@...el.com, tony.luck@...el.com,
ravi.v.shankar@...el.com, chang.seok.bae@...el.com
Subject: Re: [PATCH v12 00/18] Enable FSGSBASE instructions
On Mon, 2020-05-18 at 08:34 -0700, Andi Kleen wrote:
> > Yes, for SGX this is functional feature because enclave entry points,
> > thread control structures (aka TCS's), reset FSBASE and GSBASE registers
> > to fixed (albeit user defined) values. And syscall's can be done only
> > outside of enclave.
> >
> > This is a required feature for fancier runtimes (such as Graphene).
>
> Can you please explain a bit more? What do they need GS for?
Apparently, uses only wrfsbase:
https://raw.githubusercontent.com/oscarlab/graphene/master/Pal/src/host/Linux-SGX/db_misc.c
I'm not too familiar with the codebase yet but by reading some research
papers in the past the idea is to multiplex one TCS for multiple virtual
threads inside the enclave.
E.g. TCS could represent a vcpu for a libos type of container and on
entry would pick on a thread and set fsbase accordingly for a thread
control block.
/Jarkko
Powered by blists - more mailing lists