KVM: Device assignment framework rework
authorSheng Yang <sheng@linux.intel.com>
Thu, 12 Mar 2009 13:45:39 +0000 (21:45 +0800)
committerAvi Kivity <avi@redhat.com>
Wed, 10 Jun 2009 08:48:29 +0000 (11:48 +0300)
commite56d532f20c890a06bbe7cd479f4201e3a03cd73
tree6c8b1a019a77bf2081ac7482eea322f5b0a636e8
parent386eb6e8b3caface8a0514da70a47c05cabb5b96
KVM: Device assignment framework rework

After discussion with Marcelo, we decided to rework device assignment framework
together. The old problems are kernel logic is unnecessary complex. So Marcelo
suggest to split it into a more elegant way:

1. Split host IRQ assign and guest IRQ assign. And userspace determine the
combination. Also discard msi2intx parameter, userspace can specific
KVM_DEV_IRQ_HOST_MSI | KVM_DEV_IRQ_GUEST_INTX in assigned_irq->flags to
enable MSI to INTx convertion.

2. Split assign IRQ and deassign IRQ. Import two new ioctls:
KVM_ASSIGN_DEV_IRQ and KVM_DEASSIGN_DEV_IRQ.

This patch also fixed the reversed _IOR vs _IOW in definition(by deprecated the
old interface).

[avi: replace homemade bitcount() by hweight_long()]

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/x86.c
include/linux/kvm.h
include/linux/kvm_host.h
virt/kvm/kvm_main.c