On 22/09/21 12:32, Xiaoyao Li wrote:I agree Paolo. EXIT_REASON.bus_lock_detected may or may not be set when exit_reason=EXIT_REASON_BUS_LOCK, It clould depend on hardware implementaion. No matter when intel states it clearly, I think it is better that we avoid repeated assignment by adding additional check condition in vmx_handle_exit. Of course , it is also ok that hand_bus_lock_vmexit do nothing , but the code is not clear, and the code logic will be inconsistent with spec description.
EXIT_REASON.bus_lock_detected may or may not be set when exit reason == EXIT_REASON_BUS_LOCK. Intel will update ISE or SDM to state it.
Maybe we can do below in handle_bus_lock_vmexit handler:
if (!to_vmx(vcpu)->exit_reason.bus_lock_detected)
to_vmx(vcpu)->exit_reason.bus_lock_detected = 1;
But is manually changing the hardware reported value for software purpose a good thing?
No. That said, Hao's patch is just making the code clearer; there's no behavioral change since the "if" will just redo the same assignments as handle_bus_lock_vmexit.
Paolo