On 12/10/17 10:22, Thomas Gleixner wrote: > On Tue, 10 Oct 2017, Marc Zyngier wrote: >> int its_alloc_vcpu_irqs(struct its_vm *vm) >> { >> int vpe_base_irq, i; >> >> + vm->affinity_masks = kzalloc(vm->nr_vpes * sizeof(*vm->affinity_masks), >> + GFP_KERNEL); >> + if (!vm->affinity_masks) >> + goto err; >> + >> + for (i = 0; i < vm->nr_vpes; i++) { >> + if (!alloc_cpumask_var(&vm->affinity_masks[i], GFP_KERNEL)) >> + goto err; >> + >> + cpumask_copy(vm->affinity_masks[i], cpu_possible_mask); > > That looks a bit like abuse of managed interrupts as you don't use any of > the managing parts, i.e. the managed shutdown/startup on cpu hotplug. > > You can prevent user space from fiddling with the affinities by flagging > these interrupts with IRQ_NO_BALANCING.
I had a look at that initially, and can't remember what I discounted it... This is obviously a much simpler approach (just an additional flag as we initialize the vcpus). I'll drop that patch and post another one. Thanks, M. -- Jazz is not dead. It just smells funny...