/* Where to read and clear interrupt */
u8 __iomem *isr;
/* Lists of queues and potentially slow path queues *sowecandispatchIRQs.
*/
spinlock_t lock; struct list_head virtqueues; struct list_head slow_virtqueues;
/* Array of all virtqueues reported in the *PCIcommonconfignum_queuesfield
*/ struct virtio_pci_vq_info **vqs;
struct virtio_pci_admin_vq admin_vq;
/* MSI-X support */ int msix_enabled; int intx_enabled;
cpumask_var_t *msix_affinity_masks; /* Name strings for interrupts. This size should be enough,
* and I'm too lazy to allocate each name separately. */ char (*msix_names)[256]; /* Number of available vectors */ unsignedint msix_vectors; /* Vectors allocated, excluding per-vq vectors if any */ unsignedint msix_used_vectors;
/* Whether we have vector per vq */ bool per_vq_vectors;
/* Constants for MSI-X */ /* Use first vector for configuration changes, second and the rest for
* virtqueues Thus, we need at least 2 vectors for MSI. */ enum {
VP_MSIX_CONFIG_VECTOR = 0,
VP_MSIX_VQ_VECTOR = 1,
};
/* wait for pending irq handlers */ void vp_synchronize_vectors(struct virtio_device *vdev); /* the notify function used when creating a virt queue */ bool vp_notify(struct virtqueue *vq); /* the config->del_vqs() implementation */ void vp_del_vqs(struct virtio_device *vdev); /* the config->find_vqs() implementation */ int vp_find_vqs(struct virtio_device *vdev, unsignedint nvqs, struct virtqueue *vqs[], struct virtqueue_info vqs_info[], struct irq_affinity *desc); constchar *vp_bus_name(struct virtio_device *vdev);
/* Setup the affinity for a virtqueue: *-forcetheaffinityforpervqvector *-ORoverallaffinitiesforsharedMSI *-ignoretheaffinityrequestifwe'reusingINTX
*/ int vp_set_vq_affinity(struct virtqueue *vq, conststruct cpumask *cpu_mask);
conststruct cpumask *vp_get_vq_affinity(struct virtio_device *vdev, int index);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.