> On 28. Jul 2025, at 14:15, Mads Ynddal <m...@ynddal.dk> wrote:
> 
> 
>> +    /* Redistributor state (one per CPU) */
>> +
>> +    for (ncpu = 0; ncpu < s->num_cpu; ncpu++) {
>> +        GICv3CPUState *c = &s->cpu[ncpu];
>> +        hv_vcpu_t vcpu = c->cpu->accel->fd;
>> +
>> +        reg = c->gicr_waker;
>> +        hv_gic_set_redistributor_reg(vcpu, 
>> HV_GIC_REDISTRIBUTOR_REG_GICR_IGROUPR0, reg);
>> +
> 
> Sorry if I'm belaboring the obvious, but I think you need to call these
> from the owning thread of the CPU. This is also stated in Apple's docs
> (some are documented; some are not!).
> 
> I had to do that in the branch I was working on. You should check the
> return of the functions 'hv_gic_...'. They give an error when called
> from the wrong thread.
> 
> Could this be related to commit "hw/intc: hvf: add migration blocker
> when using multiple vCPUs with the Apple GIC”?
Yes that was it.

Reply via email to