Messages in this thread | | | Date | Sat, 15 Apr 2023 00:32:46 +0800 | Subject | Re: [RFC PATCH V4 13/17] x86/sev: Add Check of #HV event in path | From | Tianyu Lan <> |
| |
On 4/14/2023 7:02 PM, Pankaj Gupta wrote: >> +void check_hv_pending_irq_enable(void) >> +{ >> + struct pt_regs regs; >> + >> + if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) >> + return; >> + >> + memset(®s, 0, sizeof(struct pt_regs)); >> + asm volatile("movl %%cs, %%eax;" : "=a" (regs.cs)); >> + asm volatile("movl %%ss, %%eax;" : "=a" (regs.ss)); >> + regs.orig_ax = 0xffffffff; >> + regs.flags = native_save_fl(); >> + >> + /* >> + * Disable irq when handle pending #HV events after >> + * re-enabling irq. >> + */ >> + asm volatile("cli" : : : "memory"); > Just curious, Does the hypervisor injects irqs via doorbell page when > interrupts are disabled with "cli" ? Trying to understand the need to > cli/sti covering on "do_exc_hv".
Hi Pankaj: Thanks for your review. Yes, Hypervisor still injects #HV exception when irq was disabled check_hv_pending() is called when there is a #HV exception. It checks irq flag and return back without handling irq event when irq was disabled.
| |