Files
linux/arch/xtensa/include/asm
Max Filippov 11e969bc96 xtensa: support coprocessors on SMP
Current coprocessor support on xtensa only works correctly on
uniprocessor configurations. Make it work on SMP too and keep it lazy.

Make coprocessor_owner array per-CPU and move it to struct exc_table for
easy access from the fast_coprocessor exception handler. Allow task to
have live coprocessors only on single CPU, record this CPU number in the
struct thread_info::cp_owner_cpu. Change struct thread_info::cpenable
meaning to be 'coprocessors live on cp_owner_cpu'.
Introduce C-level coprocessor exception handler that flushes and
releases live coprocessors of the task taking 'coprocessor disabled'
exception and call it from the fast_coprocessor handler when the task
has live coprocessors on other CPU.
Make coprocessor_flush_all and coprocessor_release_all work correctly
when called from any CPU by sending IPI to the cp_owner_cpu. Add
function coprocessor_flush_release_all to do flush followed by release
atomically. Add function local_coprocessors_flush_release_all to flush
and release all coprocessors on the local CPU and use it to flush
coprocessor contexts from the CPU that goes offline.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
2022-05-01 19:51:23 -07:00
..
2022-02-25 09:36:06 +01:00
2022-05-01 19:51:22 -07:00
2022-05-01 19:51:22 -07:00
2019-11-26 11:33:38 -08:00
2021-11-17 10:36:15 -05:00
2014-01-15 00:28:11 +04:00
2011-03-31 11:26:23 -03:00
2018-12-17 13:48:22 -08:00
2021-12-11 23:31:51 +01:00
2018-02-11 09:18:12 -08:00
2014-01-14 10:19:58 -08:00
2014-01-14 10:19:58 -08:00
2014-01-15 00:27:03 +04:00
2021-07-01 11:06:03 -07:00
2020-01-31 12:17:25 -08:00
2022-05-01 19:51:23 -07:00
2019-09-01 13:11:57 -07:00
2014-01-14 10:19:59 -08:00
2018-01-02 03:25:41 -08:00
2019-04-03 10:32:54 +02:00
2022-05-01 19:51:23 -07:00
2022-02-25 09:36:06 +01:00
2020-02-04 21:57:02 -08:00