From: Julien Grall <julien.grall@arm.com>
To: Volodymyr Babchuk <volodymyr_babchuk@epam.com>,
xen-devel@lists.xenproject.org, xen-devel@lists.xen.org
Cc: tee-dev@lists.linaro.org, Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v2 04/13] optee: add OP-TEE mediator skeleton
Date: Wed, 5 Sep 2018 14:16:23 +0100 [thread overview]
Message-ID: <df04e90d-592d-bc56-8880-7037150d3013@arm.com> (raw)
In-Reply-To: <161417b6-b1e2-99d6-fabf-de99edd68143@epam.com>
Hi,
On 09/05/2018 01:17 PM, Volodymyr Babchuk wrote:
> On 04.09.18 22:48, Julien Grall wrote:
>>
>>
>> On 09/03/2018 06:55 PM, Volodymyr Babchuk wrote:
>>> Hi Julien,
>>
>> Hi Volodymyr,
>>
>>> On 03.09.18 20:38, Julien Grall wrote:
>>>> Hi Volodymyr,
>>>>
>>>> On 03/09/18 17:54, Volodymyr Babchuk wrote:
>>>>> Add very basic OP-TEE mediator. It can probe for OP-TEE presence,
>>>>> tell it about domain creation/destuction and forward all known
>>>>
>>>> s/destuction/destruction/
>>>>
>>>>> calls.
>>>>>
>>>>> This is all what is needed for Dom0 to work with OP-TEE as long
>>>>> as Dom0 shares 1:1 mapped pages with OP-TEE. Any attempt to call
>>>>> OP-TEE from DomU will fail and can lead to spectacular results.
>>>>
>>>> Shall we expect fireworks? :).
>>> I tried couple of time, but with no success :)
>>>
>>>> Anyway, I think this is a call for forbidding DomU access until it
>>>> is supported. This also has the benefits to allow merging Dom0
>>>> support for OP-TEE without the rest.
>>> Some time ago you said that I can't be sure that Dom0 is 1:1 mapped,
>>> because of grant refs. So, actually, any access should be forbidden.
>>> I can omit
>>
>> Oh right. I that case, make it clear in the commit message because
>> there are nothing in Dom0 preventing to share page that are not direct
>> mapped.
>
>> This will make easier for the commiter (either Stefano or I) to know
>> this can't go without the rest of the series.
>>
> Ah, sure. Had to indicate this explicitly. Will do this in the next
> version of the series.
>
> [...]
>>>>
>>>>> + &resp);
>>>>> +
>>>>> + set_user_reg(regs, 0, resp.a0);
>>>>> + set_user_reg(regs, 1, resp.a1);
>>>>> + set_user_reg(regs, 2, resp.a2);
>>>>> + set_user_reg(regs, 3, resp.a3);
>>>>> + set_user_reg(regs, 4, 0);
>>>>> + set_user_reg(regs, 5, 0);
>>>>> + set_user_reg(regs, 6, 0);
>>>>> + set_user_reg(regs, 7, 0);
>>>>> +}
>>>>> +
>>>>> +static void optee_domain_destroy(struct domain *d)
>>>>> +{
>>>>> + struct arm_smccc_res resp;
>>>>> +
>>>>> + /* At this time all domain VCPUs should be stopped */
>>>>> +
>>>>> + /* Inform OP-TEE that domain is shutting down */
>>>>> + arm_smccc_smc(OPTEE_SMC_VM_DESTROYED, d->domain_id + 1, 0, 0,
>>>>> 0, 0, 0, 0,
>>>>> + &resp);
>>>>
>>>> So this SMC should never fail or even get preempted? I was kind of
>>>> expecting that it may time some time to destroy a domain.
>>>
>>> It is the fast SMCCC call, so it can't be preempted. And it is really
>>> fast, at lest in OP-TEE case.
>>
>> Without number, I can't really know what fast means here. Do you have
>> a rough idea?
> "Fast" used there in a sense, defined in SMCCC:
>
> "
> Fast Calls execute atomic operations.
>
> The call appears to be atomic from the perspective of the calling PE,
> and returns when the requested
> operation has completed."
>
> And "Standard Call" (will be introduced in the series) is the "Yielding
> Call". Probably I should use term from SMCCC, but for some reason I
> stick to term used it OP-TEE.
I don't mind which term you used as long as you clearly define them
within your series.
>
> I can do some measurements on how "fast" this particular call is. But
> problem is that it is really atomic from OP-TEE perspective.
My concern is usually such operation can take time. In the context of
Xen, the domain destruction path is preemptible which allow a domain to
be rescheduled.
While today, SMC_VM_DESTROYED is a fast call because there are not much.
I am a bit concern that in the future this may grow and therefore turn
into a long operation (i.e few ms).
So I am a bit concerned that this interface is not future-proof.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-09-05 13:16 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-03 16:54 [PATCH v2 00/13] TEE mediator (and OP-TEE) support in XEN Volodymyr Babchuk
2018-09-03 16:54 ` [PATCH v2 01/13] arm: add generic TEE mediator framework Volodymyr Babchuk
2018-09-03 17:22 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 02/13] domctl: add tee_op domctl Volodymyr Babchuk
2018-09-03 17:16 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 03/13] arm: tee: add OP-TEE header files Volodymyr Babchuk
2018-09-03 16:54 ` [PATCH v2 04/13] optee: add OP-TEE mediator skeleton Volodymyr Babchuk
2018-09-03 17:38 ` Julien Grall
2018-09-03 17:55 ` Volodymyr Babchuk
2018-09-04 19:48 ` Julien Grall
2018-09-05 12:17 ` Volodymyr Babchuk
2018-09-05 13:16 ` Julien Grall [this message]
2018-09-05 13:38 ` Volodymyr Babchuk
2018-09-05 13:47 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 05/13] optee: add fast calls handling Volodymyr Babchuk
2018-09-05 13:36 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 06/13] optee: add domain contexts Volodymyr Babchuk
2018-09-05 14:10 ` Julien Grall
2018-09-05 14:18 ` Andrew Cooper
2018-09-05 14:23 ` Volodymyr Babchuk
2018-09-05 14:27 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 07/13] optee: add std call handling Volodymyr Babchuk
2018-09-05 15:17 ` Julien Grall
2018-09-10 17:37 ` Volodymyr Babchuk
2018-09-11 11:19 ` Julien Grall
2018-09-11 11:31 ` Volodymyr Babchuk
2018-09-11 13:30 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 08/13] optee: add support for RPC SHM buffers Volodymyr Babchuk
2018-09-10 13:01 ` Julien Grall
2018-09-10 17:44 ` Volodymyr Babchuk
2018-09-11 11:53 ` Julien Grall
2018-09-11 19:30 ` Volodymyr Babchuk
2018-09-12 10:59 ` Julien Grall
2018-09-12 13:51 ` Volodymyr Babchuk
2018-09-18 16:11 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 09/13] optee: add support for arbitrary shared memory Volodymyr Babchuk
2018-09-10 14:02 ` Julien Grall
2018-09-10 18:04 ` Volodymyr Babchuk
2018-09-11 13:37 ` Julien Grall
2018-09-11 19:33 ` Volodymyr Babchuk
2018-09-12 11:02 ` Julien Grall
2018-09-12 12:45 ` Volodymyr Babchuk
2018-09-18 16:19 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 10/13] optee: add support for RPC commands Volodymyr Babchuk
2018-09-10 15:34 ` Julien Grall
2018-09-10 18:14 ` Volodymyr Babchuk
2018-09-11 13:56 ` Julien Grall
2018-09-11 18:58 ` Volodymyr Babchuk
2018-09-18 16:50 ` Julien Grall
2018-09-19 15:21 ` Volodymyr Babchuk
2018-09-03 16:54 ` [PATCH v2 11/13] libxc: add xc_dom_tee_enable(...) function Volodymyr Babchuk
2018-09-06 10:59 ` Wei Liu
2018-09-03 16:54 ` [PATCH v2 12/13] xl: add "tee" option for xl.cfg Volodymyr Babchuk
2018-09-11 14:23 ` Julien Grall
2018-09-03 16:54 ` [PATCH v2 13/13] lixl: arm: create optee firmware node in DT if tee=1 Volodymyr Babchuk
2018-09-11 14:48 ` Julien Grall
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=df04e90d-592d-bc56-8880-7037150d3013@arm.com \
--to=julien.grall@arm.com \
--cc=sstabellini@kernel.org \
--cc=tee-dev@lists.linaro.org \
--cc=volodymyr_babchuk@epam.com \
--cc=xen-devel@lists.xen.org \
--cc=xen-devel@lists.xenproject.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).