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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
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

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux