Re: [PATCH 0/16 v5] Device assignment improvement in userspace

Avi Kivity
2009-03-17T09:40:37Z

Marcelo Tosatti wrote:
> Looks good to me, ready to be applied.
>
> There is one pending detail in the ioctl interface. Its a minor issue,
> but might become troublesome later (and can be fixed after the patchset
> has been applied).
>
> The unassign ioctl takes "struct kvm_assigned_irq" and parses its flags
> to decide what to do, in this way:
>
> - If any bit is set in the guest mask (GUEST_INTX, GUEST_MSI,
> GUEST_MSIX), we disable guest-side interrupt.
> - Likewise for host, disabling host-side interrupt.
>
> host_irq_type = irq_requested_type & KVM_DEV_IRQ_HOST_MASK;
> guest_irq_type = irq_requested_type & KVM_DEV_IRQ_GUEST_MASK;
>
> if (host_irq_type)
> deassign_host_irq(kvm, assigned_dev);
> if (guest_irq_type)
> deassign_guest_irq(kvm, assigned_dev);
>
> This is a little confusing. If we simply want to disable
> _whatever is assigned_ in either guest or host side, we want a
> UNASSIGN_GUEST/UNASSIGN_HOST pair of flags (this is how the ioctl
> behaves, but we pass more flags and don't use them effectively).
>
> Or, if the unassign ioctl continues to receive guest/host flags with
> interrupt type detail, it should error out if userspace passed a type
> that does not match what is currently assigned.
>
> The current behaviour is simpler for userspace, but then we'd need not
> to pass "struct kvm_assigned_irq".
>
> Sheng, what do you say?
>
>

Maybe we want different ioctl pairs for guest and host?

--
error compiling committee.c: too many arguments to function