search for: msix_notify

Displaying 20 results from an estimated 32 matches for "msix_notify".

Did you mean: mic_notify
2011 Nov 02
3
[PATCH RFC 0/2] virtio-pci: polling mode support
MSIX spec requires that device can be operated with all vectors masked, by polling. So the following patchset (lightly tested) adds this ability: when driver reads ISR, the device recalls a pending notification, and returns pending status in the ISR register. The polling driver can operate as follows: - map all VQs and config to the same vector - poll ISR to get status - this also flushes VQ
2011 Nov 02
3
[PATCH RFC 0/2] virtio-pci: polling mode support
MSIX spec requires that device can be operated with all vectors masked, by polling. So the following patchset (lightly tested) adds this ability: when driver reads ISR, the device recalls a pending notification, and returns pending status in the ISR register. The polling driver can operate as follows: - map all VQs and config to the same vector - poll ISR to get status - this also flushes VQ
2009 Jun 21
1
[PATCHv6 05/12] qemu/pci: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 21
1
[PATCHv6 05/12] qemu/pci: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 02
0
[PATCHv2 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 02
0
[PATCHv2 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 18
0
[PATCHv5 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 18
0
[PATCHv5 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 10
0
[PATCHv4 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 10
0
[PATCHv4 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 May 25
1
[PATCH 05/11] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 May 25
1
[PATCH 05/11] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 05
1
[PATCHv3 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 Jun 05
1
[PATCHv3 05/13] qemu: MSI-X support functions
...aque; + unsigned int offset = addr & (MSIX_PAGE_SIZE - 1); + int vector = offset / MSIX_ENTRY_SIZE; + memcpy(dev->msix_table_page + offset, &val, 4); + if (!msix_is_masked(dev, vector) && msix_is_pending(dev, vector)) { + msix_clr_pending(dev, vector); + msix_notify(dev, vector); + } +} + +static void msix_mmio_write_unallowed(void *opaque, target_phys_addr_t addr, + uint32_t val) +{ + fprintf(stderr, "MSI-X: only dword write is allowed!\n"); +} + +static CPUWriteMemoryFunc *msix_mmio_write[] = { + msix_m...
2009 May 11
0
[PATCH 1/2] qemu-kvm: add MSI-X support
...n pci_get_word(config + MSIX_TABLE_OFFSET) & ~PCI_MSIX_FLAGS_BIRMASK; +} + +/* Size of space reserved for */ +uint32_t msix_size(PCIDevice *dev) +{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_...
2009 May 11
0
[PATCH 1/2] qemu-kvm: add MSI-X support
...n pci_get_word(config + MSIX_TABLE_OFFSET) & ~PCI_MSIX_FLAGS_BIRMASK; +} + +/* Size of space reserved for */ +uint32_t msix_size(PCIDevice *dev) +{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_...
2009 Jun 21
0
[PATCHv2 RFC] qemu/msix: remove msix_supported safety flag
...to do if MSI is not supported by interrupt controller */ - if (!msix_supported) - return -ENOTSUP; - if (nentries > MSIX_MAX_ENTRIES) return -EINVAL; diff --git a/hw/msix.h b/hw/msix.h index 3427778..27f2dad 100644 --- a/hw/msix.h +++ b/hw/msix.h @@ -29,6 +29,4 @@ void msix_notify(PCIDevice *dev, unsigned vector); void msix_reset(PCIDevice *dev); -extern int msix_supported; - #endif -- 1.6.2.2
2009 Jun 21
0
[PATCHv2 RFC] qemu/msix: remove msix_supported safety flag
...to do if MSI is not supported by interrupt controller */ - if (!msix_supported) - return -ENOTSUP; - if (nentries > MSIX_MAX_ENTRIES) return -EINVAL; diff --git a/hw/msix.h b/hw/msix.h index 3427778..27f2dad 100644 --- a/hw/msix.h +++ b/hw/msix.h @@ -29,6 +29,4 @@ void msix_notify(PCIDevice *dev, unsigned vector); void msix_reset(PCIDevice *dev); -extern int msix_supported; - #endif -- 1.6.2.2
2009 May 20
0
[PATCHv2-RFC 1/2] qemu-kvm: add MSI-X support
...n pci_get_word(config + MSIX_TABLE_OFFSET) & ~PCI_MSIX_FLAGS_BIRMASK; +} + +/* Size of space reserved for */ +uint32_t msix_size(PCIDevice *dev) +{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_...
2009 May 20
0
[PATCHv2-RFC 1/2] qemu-kvm: add MSI-X support
...n pci_get_word(config + MSIX_TABLE_OFFSET) & ~PCI_MSIX_FLAGS_BIRMASK; +} + +/* Size of space reserved for */ +uint32_t msix_size(PCIDevice *dev) +{ + return MSIX_PAGE_SIZE; +} + +/* TODO: convert to qemu_set_irq and friends, to make this work without kvm */ +/* Send an MSI-X message */ +void msix_notify(PCIDevice *dev, unsigned vector) +{ + if (vector < dev->msix_irq_entries_nr && dev->msix_entry_used[vector]) + kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); +} + +/* Mark vector as used. */ +int msix_vector_use(PCIDevice *dev, unsigned vector) +{ + uint8_...