Re: [PATCH v2 5/7] kvm/riscv: rework guest entry logic

From: Paolo Bonzini
Date: Thu Jan 20 2022 - 06:18:18 EST


On 1/19/22 11:58, Mark Rutland wrote:
+ * There's no barrier which ensures that pending interrupts are
+ * recognised, so we just hope that the CPU takes any pending
+ * interrupts between the enable and disable.
*/
local_irq_enable();
+ local_irq_disable();

This should be the required architectural behavior: "a CSR access is performed after the execution of any prior instructions in program order whose behavior modifies or is modified by the CSR state and before the execution of any subsequent instructions in program order whose behavior modifies or is modified by the CSR state" (Zicsr spec, paragraph "CSR Access Ordering", available at https://www.five-embeddev.com/riscv-isa-manual/latest/csr.html#csrinsts).

Paolo