|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH 02/10] arm64: Add hook to handle guest GICv3 sysreg accesses
Hi, I forgot to mention one thing about the placement of do_fixup_vgic_errata. On 16/01/18 15:42, mjaggi@xxxxxxxxxxxxxxxxxx wrote:
I am fully aware that I suggested this solution and still support that the vGIC errata should be fully separated. After all, it deals with hardware bug and the errata will just update the LRs as the hardware would do. enter_hypervisor_head() will sync the LRs state to the internal vGIC state. leave_hypervisor_head() will process pending softirq and write/update the LRs based on the internal vGIC state. As you rightfully did, the do_fixup_vgic_errata should be called before syncing the LRs. However, even if you return early here, you will still execute leave_hypervisor_tail(). This mean that pending softirqs will be processed and potentially the vCPU rescheduled. Because the LRs were not synced (enter_hypervisor_head()) was not called, then the vGIC state will not out-of-date and would lead to all sort of potential issues. As the vGIC errata implies trapping the register such as IAR1 (reading interrupt), we want to get a fastpath for it (e.g not trying to execute softirq...). So I think we should bypass leave_hypervisor_tail(). I am not entirely sure how to do it nicely thought. Cheers,
-- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |