]> www.infradead.org Git - nvme.git/commit
LoongArch: KVM: Sync pending interrupt when getting ESTAT from user mode
authorBibo Mao <maobibo@loongson.cn>
Tue, 9 Jul 2024 08:25:50 +0000 (16:25 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Tue, 9 Jul 2024 08:25:50 +0000 (16:25 +0800)
commite306e514906c444c3678b9c94dd92584b0859859
tree3b977320e2da75ccf81ec5184199883a3d52285e
parent256abd8e550ce977b728be79a74e1729438b4948
LoongArch: KVM: Sync pending interrupt when getting ESTAT from user mode

Currently interrupts are posted and cleared with the asynchronous mode,
meanwhile they are saved in SW state vcpu::arch::irq_pending and vcpu::
arch::irq_clear. When vcpu is ready to run, pending interrupt is written
back to CSR.ESTAT register from SW state vcpu::arch::irq_pending at the
guest entrance.

During VM migration stage, vcpu is put into stopped state, however
pending interrupts are not synced to CSR.ESTAT register. So there will
be interrupt lost when VCPU is migrated to another host machines.

Here in this patch when ESTAT CSR register is read from VMM user mode,
pending interrupts are synchronized to ESTAT also. So that VMM can get
correct pending interrupts.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kvm/vcpu.c