On Fri, Jan 08, 2016 at 04:20:28PM +0100, Andrew Jones wrote: > On Fri, Jan 08, 2016 at 12:22:13PM +0100, Andrew Jones wrote: > > When we want more than 256 vcpus we'll need a new kvm-irq-line ioctl, > > but, as for the arm devices, we could avoid the problem completely by > > extending the SET/GET_DEVICE_ATTR ioctl to also be a vcpu ioctl. > > Replying to myself on this comment. The arm-gic device is fine as is, as > it really is a vm device. However I'm convincing myself more and more > (and with the help of Radim Krcmar being my sounding board) that using > the device api for the pmu is wrong (at least as a per-vm device). The > pmu is a per-vcpu device. > > I think we should consider adding KVM_CREATE_DEVICE, KVM_SET/GET_DEVICE_ATTR > to the vcpu ioctl to allow per-vcpu devices. Then, instead of looping vcpus > in the kernel to init the pmu per vcpu on the call to KVM_CREATE_DEVICE, > we'd have the more natural looping in userspace. Also, the set-attr for the > irq would be part of that loop, and no longer need a vcpu-index parameter. > Another note, for this pmu device we don't actually need KVM_CREATE_DEVICE to be a vcpu ioctl. We can just add another vcpu-init feature flag that we set with KVM_ARM_VCPU_INIT in order to "create" the pmu. We still need to add KVM_SET/GET_DEVICE_ATTR to the vcpu ioctl though, allowing the irq to be set. KVM_ARM_PMU_GRP_IRQ will just become a vcpu attribute. Thanks, drew -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html