[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/5] xen/arm: optee: impose limit on shared buffer size



Hi Volodymyr,

On 9/16/19 4:26 PM, Volodymyr Babchuk wrote:

Hi Julien,

Julien Grall writes:

Hi,

On 9/12/19 8:45 PM, Volodymyr Babchuk wrote:

Hi Julien,

Julien Grall writes:

Hi Volodymyr,

On 9/11/19 7:48 PM, Volodymyr Babchuk wrote:

Julien Grall writes:

Hi Volodymyr,

On 8/23/19 7:48 PM, Volodymyr Babchuk wrote:
We want to limit number of calls to lookup_and_pin_guest_ram_addr()
per one request. There are two ways to do this: either preempt
translate_noncontig() or to limit size of one shared buffer size.

It is quite hard to preempt translate_noncontig(), because it is deep
nested. So we chose second option. We will allow 512 pages per one
shared buffer. This does not interfere with GP standard, as it
requires that size limit for shared buffer should be at lest 512kB.

Do you mean "least" instead of "lest"?
Yes

If so, why 512 pages (i.e 1MB)
I have missed that earlier. But 512 pages is 2MB, actually.

is plenty enough for most of the use cases? What does "xtest" consist
on?
Bigger buffer xtest tries to allocate is mere 32KB. I believe that 1MB
is enough for the most cases, because OP-TEE itself have a very limited
resources. But this value is chosen arbitrary.

Could we potentially reduce to let say 512KB (or maybe lower) if xtest
only allocate 32KB?
Potentially - yes. But only to 512KB if we want to be compatible with
the Global Platform specification. Why are you asking, though?

Does the Global Platform specification limit to 512KB? Or is it a minimum?
GP Spec says, that platform should allow *at lest* 512KB. Upper limit is
not set.

Because, the smaller the buffer is, the less time it will take to
process in the worst case. Also, if we can have a reason for the size
(you seem to suggest the spec define a size...) then it is much better
than a random value.
I have no strong arguments here, but I want to allow the biggest size
possible. It seems, that 512 pages is the accepted limit in hypervisor
code (at least, in p2m.c), so I chose this value.

If GP specific request at least 512KB, then any portable code should be able to deal with 512KB, right? So why would you allow more? What are the cons/pros?

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.