• Rouven Czerwinski's avatar
    tee: optee: add might_sleep for RPC requests · 9f02b8f6
    Rouven Czerwinski authored
    If the kernel is compiled with CONFIG_PREEMPT_VOLUNTARY and OP-TEE is
    executing a long running workload, the following errors are raised:
    
    [ 1705.971228] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
    [ 1705.977195] rcu:     (detected by 0, t=2102 jiffies, g=51977, q=3)
    [ 1705.983152] rcu: All QSes seen, last rcu_sched kthread activity 2102 (140596-138494), jiffies_till_next_fqs=1, root ->qsmask 0x0
    [ 1705.994729] optee-xtest     R  running task        0   169    157 0x00000002
    
    While OP-TEE is returning regularly to the kernel due to timer
    interrupts, the OPTEE_SMC_FUNC_FOREIGN_INTR case does not contain an
    explicit rescheduling point. Add a might_sleep() to the RPC request case
    to ensure that the kernel can reschedule another task if OP-TEE requests
    RPC handling.
    Signed-off-by: default avatarRouven Czerwinski <r.czerwinski@pengutronix.de>
    Signed-off-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
    9f02b8f6
call.c 16.3 KB