[PATCH 0/9] In-kernel XICS interrupt controller emulation

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

 



This patch series implements in-kernel emulation of the XICS interrupt
controller architecture defined in PAPR (Power Architecture Platform
Requirements, the document that defines IBM's pSeries platform
architecture).

One of the things I have done in this version is to provide a way for
this to coexist with other interrupt controller emulations.  The XICS
emulation exports a vector of function pointers that the generic
book3s code uses to call in to it.  Other emulations could set this
vector to point to their own functions.  (I realize that Scott Wood's
recently-posted patch series uses an entirely orthogonal approach and
may or may not find this useful.)

The interface defined here consists of:

* KVM_CREATE_IRQCHIP_ARGS: like KVM_CREATE_IRQCHIP but takes an
  argument struct containing a `type' field, specifying what overall
  interrupt controller architecture to emulate, and a `param' field
  (unused by the XICS emulation).  This is only called once per VM,
  before VCPUs are created.

* KVM_IRQCHIP_SET_SOURCES: used to create and configure interrupt
  sources in bulk.  The notion of "interrupt source" is fairly
  generic; a source has an identifying number (20 bits in the current
  implementation), a priority, a destination (a vcpu number or
  potentially a vcpu group identifier), plus flags indicating
  edge/level sensitivity, a masked bit, and a pending bit.

* KVM_IRQCHIP_GET_SOURCES: used to query the configuration and status
  of interrupt sources in bulk.

* A 64-bit one_reg identifier, KVM_REG_PPC_ICP_STATE, used to get and
  set per-vcpu interrupt controller state (per-vcpu priority,
  interrupt status, and pending IPI and interrupt state).

I believe this corresponds reasonably well to what was discussed at
KVM Forum.

This series is against Alex's kvm-ppc-queue branch, although it also
applies cleanly on the kvm tree's next branch.

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