mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-12-16 09:52:28 +00:00
Suppose the current vcpu is 0, the other vcpus (1, 2, 3) may wait on the "get_split_lock", the current vcpu need clear the ACRN_REQUEST_SPLIT_LOCK explicitly here after finishing the emulation. Otherwise, it make cause dead lock. for example: 1. Once vcpu 0 "put_split_lock", let's say vcpu 1 will "get_split_lock". 2. vcpu 1 call "vcpu_make_request" to pause vcpu 0, 2, 3. 3. vcpu 1's VCPU_EVENT_SPLIT_LOCK is still not cleared because the vcpu 0 called "vcpu_make_request" ever. 4. All vcpus will wait for VCPU_EVENT_SPLIT_LOCK in acrn_handle_pending_request. We should avoid this dead lock case. Please note: this patch is only for release 2.5 test. Tracked-On: #6051 Signed-off-by: Jie Deng <jie.deng@intel.com>
5.1 KiB
5.1 KiB