search for: virtio_mmio_vq_info

Displaying 20 results from an estimated 91 matches for "virtio_mmio_vq_info".

2017 Feb 04
0
[PATCH] virtio_mmio: remove virtio_mmio_vq_info
...367aec415bf 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -89,22 +89,8 @@ struct virtio_mmio_device { void __iomem *base; unsigned long version; - - /* a list of queues so we can dispatch IRQs */ - spinlock_t lock; - struct list_head virtqueues; -}; - -struct virtio_mmio_vq_info { - /* the actual virtqueue */ - struct virtqueue *vq; - - /* the list node for the virtqueues list */ - struct list_head node; }; - - /* Configuration interface */ static u64 vm_get_features(struct virtio_device *vdev) @@ -286,9 +272,7 @@ static bool vm_notify(struct virtqueue *vq) static...
2017 Feb 04
0
[PATCH] virtio_mmio: remove virtio_mmio_vq_info
...367aec415bf 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -89,22 +89,8 @@ struct virtio_mmio_device { void __iomem *base; unsigned long version; - - /* a list of queues so we can dispatch IRQs */ - spinlock_t lock; - struct list_head virtqueues; -}; - -struct virtio_mmio_vq_info { - /* the actual virtqueue */ - struct virtqueue *vq; - - /* the list node for the virtqueues list */ - struct list_head node; }; - - /* Configuration interface */ static u64 vm_get_features(struct virtio_device *vdev) @@ -286,9 +272,7 @@ static bool vm_notify(struct virtqueue *vq) static...
2011 Oct 27
1
[PATCH v3] virtio: Add platform bus driver for memory mapped virtio device
On Mon, 2011-10-24 at 03:33 +0100, Rusty Russell wrote: > No, that's it I think. Please send a diff for the documentation, since > I'm updating the LyX master and I've already applied your previous > version. Here it goes (below). Also do you think you would be able to merge the driver (corresponding v4 patch follows) in the 3.2 merge window that seems to have just opened?
2011 Oct 27
1
[PATCH v3] virtio: Add platform bus driver for memory mapped virtio device
On Mon, 2011-10-24 at 03:33 +0100, Rusty Russell wrote: > No, that's it I think. Please send a diff for the documentation, since > I'm updating the LyX master and I've already applied your previous > version. Here it goes (below). Also do you think you would be able to merge the driver (corresponding v4 patch follows) in the 3.2 merge window that seems to have just opened?
2014 Oct 25
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...o.c +++ b/drivers/virtio/virtio_mmio.c @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) return ret; } +/* Notify all virtqueues on an interrupt. */ +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) +{ + struct virtio_mmio_device *vm_dev = opaque; + struct virtio_mmio_vq_info *info; + unsigned long status; + unsigned long flags; + irqreturn_t ret = IRQ_NONE; + /* Read the interrupt reason and reset it */ + status = *vm_dev->isr_mem; + *vm_dev->isr_mem = 0x0; + + if (unlikely(status & VIRTIO_MMIO_INT_CONFIG)) { + virtio_config_changed(&vm_dev->vdev);...
2014 Oct 25
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...o.c +++ b/drivers/virtio/virtio_mmio.c @@ -259,7 +259,31 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) return ret; } +/* Notify all virtqueues on an interrupt. */ +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) +{ + struct virtio_mmio_device *vm_dev = opaque; + struct virtio_mmio_vq_info *info; + unsigned long status; + unsigned long flags; + irqreturn_t ret = IRQ_NONE; + /* Read the interrupt reason and reset it */ + status = *vm_dev->isr_mem; + *vm_dev->isr_mem = 0x0; + + if (unlikely(status & VIRTIO_MMIO_INT_CONFIG)) { + virtio_config_changed(&vm_dev->vdev);...
2014 Oct 25
0
[RFC PATCH 1/2] Add a new register offset let interrupt reason available
...io/virtio_mmio.c index ef9a165..28ddb55 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -122,6 +122,8 @@ struct virtio_mmio_device { /* a list of queues so we can dispatch IRQs */ spinlock_t lock; struct list_head virtqueues; + + uint8_t *isr_mem; }; struct virtio_mmio_vq_info { @@ -443,6 +445,7 @@ static int virtio_mmio_probe(struct platform_device *pdev) struct virtio_mmio_device *vm_dev; struct resource *mem; unsigned long magic; + int err; mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!mem) @@ -481,6 +484,15 @@ static int virtio_mmio_probe(str...
2023 Oct 10
1
[PATCH 2/2] virtio-mmio: Support multiple interrupts per device
...device { > /* a list of queues so we can dispatch IRQs */ > spinlock_t lock; > struct list_head virtqueues; > + > + /* IRQ range allocated to the device */ > + unsigned int irq_base; > + unsigned int num_irqs; > }; > > struct virtio_mmio_vq_info { > @@ -101,6 +106,9 @@ struct virtio_mmio_vq_info { > > /* the list node for the virtqueues list */ > struct list_head node; > + > + /* IRQ mapped to virtqueue */ > + unsigned int irq; > }; > > > @@ -297,7 +305,7 @@ static bool vm_notif...
2023 Oct 10
1
[PATCH 2/2] virtio-mmio: Support multiple interrupts per device
...device { > /* a list of queues so we can dispatch IRQs */ > spinlock_t lock; > struct list_head virtqueues; > + > + /* IRQ range allocated to the device */ > + unsigned int irq_base; > + unsigned int num_irqs; > }; > > struct virtio_mmio_vq_info { > @@ -101,6 +106,9 @@ struct virtio_mmio_vq_info { > > /* the list node for the virtqueues list */ > struct list_head node; > + > + /* IRQ mapped to virtqueue */ > + unsigned int irq; > }; > > > @@ -297,7 +305,7 @@ static bool vm_notif...
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...rt */ >> + int single_irq_enabled; >> + /* Number of available irqs */ >> + unsigned num_irqs; >> + /* Used number of irqs */ >> + int used_irqs; >> + /* Name strings for interrupts. */ >> + char (*vm_vq_names)[256]; >> }; >> >> struct virtio_mmio_vq_info { >> @@ -229,33 +238,53 @@ static bool vm_notify(struct virtqueue *vq) >> return true; >> } >> >> +/* Handle a configuration change: Tell driver if it wants to know. */ >> +static irqreturn_t vm_config_changed(int irq, void *opaque) >> +{ >> + st...
2014 Nov 06
2
[RFC PATCH] virtio-mmio: support for multiple irqs
...rt */ >> + int single_irq_enabled; >> + /* Number of available irqs */ >> + unsigned num_irqs; >> + /* Used number of irqs */ >> + int used_irqs; >> + /* Name strings for interrupts. */ >> + char (*vm_vq_names)[256]; >> }; >> >> struct virtio_mmio_vq_info { >> @@ -229,33 +238,53 @@ static bool vm_notify(struct virtqueue *vq) >> return true; >> } >> >> +/* Handle a configuration change: Tell driver if it wants to know. */ >> +static irqreturn_t vm_config_changed(int irq, void *opaque) >> +{ >> + st...
2014 Oct 27
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...turn_t vm_interrupt(int irq, void *opaque) >> return ret; >> } >> >> +/* Notify all virtqueues on an interrupt. */ >> +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) >> +{ >> + struct virtio_mmio_device *vm_dev = opaque; >> + struct virtio_mmio_vq_info *info; >> + unsigned long status; >> + unsigned long flags; >> + irqreturn_t ret = IRQ_NONE; >> >> + /* Read the interrupt reason and reset it */ >> + status = *vm_dev->isr_mem; >> + *vm_dev->isr_mem = 0x0; > > you are reading and modifying s...
2014 Oct 27
1
[RFC PATCH 2/2] Assign a new irq handler while irqfd enabled
...turn_t vm_interrupt(int irq, void *opaque) >> return ret; >> } >> >> +/* Notify all virtqueues on an interrupt. */ >> +static irqreturn_t vm_interrupt_irqfd(int irq, void *opaque) >> +{ >> + struct virtio_mmio_device *vm_dev = opaque; >> + struct virtio_mmio_vq_info *info; >> + unsigned long status; >> + unsigned long flags; >> + irqreturn_t ret = IRQ_NONE; >> >> + /* Read the interrupt reason and reset it */ >> + status = *vm_dev->isr_mem; >> + *vm_dev->isr_mem = 0x0; > > you are reading and modifying s...
2014 Oct 25
8
[RFC PATCH 0/2] virtio-mmio: add irqfd support for vhost-net based on virtio-mmio
From: Li Liu <john.liuli at huawei.com> This set of patches try to implemet irqfd support of vhost-net based on virtio-mmio. I had posted a mail to talking about the status of vhost-net on kvm-arm refer to http://www.spinics.net/lists/kvm-arm/msg10804.html. Some dependent patches are listed in the mail too. Basically the vhost-net brings great performance improvements, almost 50%+.
2014 Oct 25
8
[RFC PATCH 0/2] virtio-mmio: add irqfd support for vhost-net based on virtio-mmio
From: Li Liu <john.liuli at huawei.com> This set of patches try to implemet irqfd support of vhost-net based on virtio-mmio. I had posted a mail to talking about the status of vhost-net on kvm-arm refer to http://www.spinics.net/lists/kvm-arm/msg10804.html. Some dependent patches are listed in the mail too. Basically the vhost-net brings great performance improvements, almost 50%+.
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...ues; > + > + /* multiple irq support */ > + int single_irq_enabled; > + /* Number of available irqs */ > + unsigned num_irqs; > + /* Used number of irqs */ > + int used_irqs; > + /* Name strings for interrupts. */ > + char (*vm_vq_names)[256]; > }; > > struct virtio_mmio_vq_info { > @@ -229,33 +238,53 @@ static bool vm_notify(struct virtqueue *vq) > return true; > } > > +/* Handle a configuration change: Tell driver if it wants to know. */ > +static irqreturn_t vm_config_changed(int irq, void *opaque) > +{ > + struct virtio_mmio_device *vm_dev...
2014 Nov 06
0
[RFC PATCH] virtio-mmio: support for multiple irqs
...>> + /* Number of available irqs */ > >> + unsigned num_irqs; > >> + /* Used number of irqs */ > >> + int used_irqs; > >> + /* Name strings for interrupts. */ > >> + char (*vm_vq_names)[256]; > >> }; > >> > >> struct virtio_mmio_vq_info { > >> @@ -229,33 +238,53 @@ static bool vm_notify(struct virtqueue *vq) > >> return true; > >> } > >> > >> +/* Handle a configuration change: Tell driver if it wants to know. */ > >> +static irqreturn_t vm_config_changed(int irq, void *opa...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...spatch IRQs */ spinlock_t lock; struct list_head virtqueues; + + /* multiple irq support */ + int single_irq_enabled; + /* Number of available irqs */ + unsigned num_irqs; + /* Used number of irqs */ + int used_irqs; + /* Name strings for interrupts. */ + char (*vm_vq_names)[256]; }; struct virtio_mmio_vq_info { @@ -229,33 +238,53 @@ static bool vm_notify(struct virtqueue *vq) return true; } +/* Handle a configuration change: Tell driver if it wants to know. */ +static irqreturn_t vm_config_changed(int irq, void *opaque) +{ + struct virtio_mmio_device *vm_dev = opaque; + struct virtio_driver *vdrv =...
2014 Nov 04
6
[RFC PATCH] virtio-mmio: support for multiple irqs
...spatch IRQs */ spinlock_t lock; struct list_head virtqueues; + + /* multiple irq support */ + int single_irq_enabled; + /* Number of available irqs */ + unsigned num_irqs; + /* Used number of irqs */ + int used_irqs; + /* Name strings for interrupts. */ + char (*vm_vq_names)[256]; }; struct virtio_mmio_vq_info { @@ -229,33 +238,53 @@ static bool vm_notify(struct virtqueue *vq) return true; } +/* Handle a configuration change: Tell driver if it wants to know. */ +static irqreturn_t vm_config_changed(int irq, void *opaque) +{ + struct virtio_mmio_device *vm_dev = opaque; + struct virtio_driver *vdrv =...
2014 Sep 22
1
[PATCH] virtio: unify config_changed handling
...-git a/drivers/virtio/virtio_mmio.c b/drivers/virtio/virtio_mmio.c index c600ccf..ef9a165 100644 --- a/drivers/virtio/virtio_mmio.c +++ b/drivers/virtio/virtio_mmio.c @@ -234,8 +234,6 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) { struct virtio_mmio_device *vm_dev = opaque; struct virtio_mmio_vq_info *info; - struct virtio_driver *vdrv = container_of(vm_dev->vdev.dev.driver, - struct virtio_driver, driver); unsigned long status; unsigned long flags; irqreturn_t ret = IRQ_NONE; @@ -244,9 +242,8 @@ static irqreturn_t vm_interrupt(int irq, void *opaque) status = readl(vm_dev->base...