On Mon, 23 Jul 2018 at 14:19, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 23/07/2018 08:10, Wanpeng Li wrote: > >>> On 20/07/2018 18:28, Wanpeng Li wrote: > >>>> +a0: ipi_bitmap low 64 bits > >>>> +a1: ipi_bitmap high 64 bits > >>>> +a2: the lowest APIC ID in bitmap > >>>> +a3: APIC ICR > >>>> + > >>>> +The hypercall lets a guest send multicast IPIs at most can handle > >>>> +128 vCPUs per hypercall on 64-bit machines and 64 vCPUs per hypercall > >>>> +on 32-bit machines. > >>>> + > >>>> +Returns 0 if successfully delivery the IPIs and 1 if discarded. > >>> This description does not mention what happens in 32-bit mode. > > Sorry, I think I mentioned "64 vCPUs per hypercall on 32-bit machines" above. > > Yes, but the description of a0 and a1 is not accurate. Something like > > a0: lower part of the bitmap of destination APIC IDs > a1: higher part of the bitmap of destination APIC IDs > .... > > The hypercall lets a guest send multicast IPIs, with at most 128 > 128 destinations per hypercall in 64-bit mode and 64 vCPUs per > hypercall in 32-bit mode. The destinations are represented by a bitmap > contained in the first two arguments (a0 and a1). Bit 0 of a0 > corresponds to the APIC ID in the third argument (a2), bit 1 corresponds > to the APIC ID a2+1, and so on. Thanks to the great description, I will fold this to the next version. Regards, Wanpeng Li