Thank you for the reply. My question is about following scenario: 1. running vCPU receives IPI and the vCPU's ipi_received gets true 2. the vCPU responds to the IPI 3. the vCPU exits 4. the vCPU is preempted by KVM 5. the vCPU is boosted, but it has already responded to the IPI 6. the vCPU enters and the vCPU's ipi_received is cleaned In this case, I think the check of vcpu->preempted does not limit the candidate vCPUs.