> On 28. Jul 2025, at 14:15, Mads Ynddal <[email protected]> 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”? Oh that makes quite some sense… thanks for the hint :)
Will fix this and see what happens...
