Please ignore this version, the report about the hypercall arguments is correct. KVM takes the APIC ID to kick in a1, as kvm_kick_cpu() does, so this asked for APIC ID 0 to be kicked and only passed because the halting vCPU was vCPU 0.
v2 halts on a vCPU with a non-zero APIC ID so that a kick sent to the wrong vCPU can no longer pass by accident, and I confirmed that reintroducing the v1 argument order makes it fail: https://lore.kernel.org/all/[email protected] Sorry for the noise. Hemanth

