| daeea036 | 03-Nov-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
Add CFG_CONCURRENT_SINGLE_INSTANCE_TA
Commit 2b07dcb97c5e ("core: avoid deadlocks caused by single-instance TA") introduces a lock that allows only one single instance TA to be executing at any time
Add CFG_CONCURRENT_SINGLE_INSTANCE_TA
Commit 2b07dcb97c5e ("core: avoid deadlocks caused by single-instance TA") introduces a lock that allows only one single instance TA to be executing at any time. While it does address the risk of deadlock that can arise when several single instance TAs call each other, it also puts a serious performance limitation on multi-core platforms, which could otherwise execute several unrelated single instance TAs simultaneously.
This commit makes the single instance lock optional. By setting CFG_CONCURRENT_SINGLE_INSTANCE_TA=y, the lock is disabled and TAs are allowed to run concurrently. In the future, we may implement a deadlock detection algorithm; in the meantime, this simple solution should be enough to cover the current use cases.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey960) CC: Zeng Tao <prime.zeng@hisilicon.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| ce553c81 | 12-Oct-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: asan: empty __asan_handle_no_return()
It seems __asan_handle_no_return() isn't called when a __noreturn function returns, instead it's called before the function is called. So empty the __asa
core: asan: empty __asan_handle_no_return()
It seems __asan_handle_no_return() isn't called when a __noreturn function returns, instead it's called before the function is called. So empty the __asan_handle_no_return() function to let __noreturn function be called.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b05cd886 | 15-Jun-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
core: enable non-contiguous temporary reference parameters
Now, when we can pass list of pages between REE and TEE it is possible to use temporary memory references that are not located in a preallo
core: enable non-contiguous temporary reference parameters
Now, when we can pass list of pages between REE and TEE it is possible to use temporary memory references that are not located in a preallocated shared memory area. By employing OPTEE_MSG_ATTR_NONCONTIG parameter attribute, REE can provide own buffer as a temporary memory reference.
Actually, such parameters are indistinguishable from registered shared memory references. So, when OP-TEE spots temporary memory reference with OPTEE_MSG_ATTR_NONCONTIG attribute, it will create `mobj_reg_shm` for it. After call was handled, it will free that mobj.
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (FVP, QEMU v7/v8) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Juno with and without pager) Tested-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> (Rcar M3)
show more ...
|
| 34deb103 | 02-Oct-2017 |
Peng Fan <peng.fan@nxp.com> |
core: dt: fix getting address and size
According to ePAPR spec.
" The #address-cells and #size-cells properties may be used in any device node that has children in the device tree hierarchy and des
core: dt: fix getting address and size
According to ePAPR spec.
" The #address-cells and #size-cells properties may be used in any device node that has children in the device tree hierarchy and describes how child device nodes should be addressed. The #address-cells property defines the number of <u32> cells used to encode the address field in a child node’s reg property. The #size-cells property defines the number of <u32> cells used to encode the size field in a child node’s reg property.
The #address-cells and #size-cells properties are not inherited from ancestors in the device tree. They shall be explicitly defined.
An ePAPR-compliant boot program shall supply #address-cells and #size-cells on all nodes that have children.
If missing, a client program should assume a default value of 2 for
An ePAPR-compliant boot program shall supply #address-cells and #size-cells on all nodes that have children. "
So need to use the parent's address-cells and size-cells property.
Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 726ce13e | 08-Sep-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: asan: fix check_access()
Prior to this patch the for loop in check_access() that checks the access in the shadow area is skipping accesses smaller than a ASAN block (8 bytes). This patch fixes
core: asan: fix check_access()
Prior to this patch the for loop in check_access() that checks the access in the shadow area is skipping accesses smaller than a ASAN block (8 bytes). This patch fixes that problem and checks also smaller accesses.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|