Displaying 20 results from an estimated 64 matches for "virtblk_wq".
Did you mean:
virtblk_req
2011 Jan 27
1
[PATCH] virtio_blk: allow re-reading config space at runtime
...+0100
> @@ -6,10 +6,12 @@
> #include <linux/virtio.h>
> #include <linux/virtio_blk.h>
> #include <linux/scatterlist.h>
> +#include <linux/string_helpers.h>
>
> #define PART_BITS 4
>
> static int major, index;
> +struct workqueue_struct *virtblk_wq;
>
> struct virtio_blk
> {
> @@ -42,6 +44,11 @@ struct virtblk_req
> u8 status;
> };
>
> +struct virtblk_config_change {
> + struct virtio_device *vdev;
> + struct work_struct work;
> +};
> +
> static void blk_done(struct virtqueue *vq)
> {
>...
2011 Jan 27
1
[PATCH] virtio_blk: allow re-reading config space at runtime
...+0100
> @@ -6,10 +6,12 @@
> #include <linux/virtio.h>
> #include <linux/virtio_blk.h>
> #include <linux/scatterlist.h>
> +#include <linux/string_helpers.h>
>
> #define PART_BITS 4
>
> static int major, index;
> +struct workqueue_struct *virtblk_wq;
>
> struct virtio_blk
> {
> @@ -42,6 +44,11 @@ struct virtblk_req
> u8 status;
> };
>
> +struct virtblk_config_change {
> + struct virtio_device *vdev;
> + struct work_struct work;
> +};
> +
> static void blk_done(struct virtqueue *vq)
> {
>...
2014 Oct 23
2
[PATCH] virtio_blk: fix race at module removal
...ivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -883,8 +883,8 @@ out_destroy_workqueue:
static void __exit fini(void)
{
- unregister_blkdev(major, "virtblk");
unregister_virtio_driver(&virtio_blk);
+ unregister_blkdev(major, "virtblk");
destroy_workqueue(virtblk_wq);
}
module_init(init);
--
MST
2014 Oct 23
2
[PATCH] virtio_blk: fix race at module removal
...ivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -883,8 +883,8 @@ out_destroy_workqueue:
static void __exit fini(void)
{
- unregister_blkdev(major, "virtblk");
unregister_virtio_driver(&virtio_blk);
+ unregister_blkdev(major, "virtblk");
destroy_workqueue(virtblk_wq);
}
module_init(init);
--
MST
2011 Jun 01
6
[PATCH 1/1] [virt] virtio-blk: Use ida to allocate disk index
...nux/scatterlist.h>
#include <linux/string_helpers.h>
#include <scsi/scsi_cmnd.h>
+#include <linux/idr.h>
#define PART_BITS 4
-static int major, index;
+static int major;
+static DEFINE_SPINLOCK(vd_index_lock);
+static DEFINE_IDA(vd_index_ida);
+
struct workqueue_struct *virtblk_wq;
struct virtio_blk
@@ -23,6 +27,7 @@ struct virtio_blk
/* The disk structure for the kernel. */
struct gendisk *disk;
+ u32 index;
/* Request tracking. */
struct list_head reqs;
@@ -343,12 +348,26 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
struct request_queu...
2011 Jun 01
6
[PATCH 1/1] [virt] virtio-blk: Use ida to allocate disk index
...nux/scatterlist.h>
#include <linux/string_helpers.h>
#include <scsi/scsi_cmnd.h>
+#include <linux/idr.h>
#define PART_BITS 4
-static int major, index;
+static int major;
+static DEFINE_SPINLOCK(vd_index_lock);
+static DEFINE_IDA(vd_index_ida);
+
struct workqueue_struct *virtblk_wq;
struct virtio_blk
@@ -23,6 +27,7 @@ struct virtio_blk
/* The disk structure for the kernel. */
struct gendisk *disk;
+ u32 index;
/* Request tracking. */
struct list_head reqs;
@@ -343,12 +348,26 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
struct request_queu...
2014 Jun 22
2
[PATCH v1 2/2] block: virtio-blk: support multi virt queues per virtio-blk device
...e PART_BITS 4
>
> +#define MAX_NUM_VQ 16
> +
> static int major;
> static DEFINE_IDA(vd_index_ida);
>
Does it work much worse if we just use as many queues as
hardware supports, allocating as much memory as necessary?
> @@ -24,8 +26,8 @@ static struct workqueue_struct *virtblk_wq;
> struct virtio_blk
> {
> struct virtio_device *vdev;
> - struct virtqueue *vq;
> - spinlock_t vq_lock;
> + struct virtqueue *vq[MAX_NUM_VQ];
> + spinlock_t vq_lock[MAX_NUM_VQ];
array of struct {
*vq;
spinlock_t lock;
}
would use more memory but would get us bette...
2014 Jun 22
2
[PATCH v1 2/2] block: virtio-blk: support multi virt queues per virtio-blk device
...e PART_BITS 4
>
> +#define MAX_NUM_VQ 16
> +
> static int major;
> static DEFINE_IDA(vd_index_ida);
>
Does it work much worse if we just use as many queues as
hardware supports, allocating as much memory as necessary?
> @@ -24,8 +26,8 @@ static struct workqueue_struct *virtblk_wq;
> struct virtio_blk
> {
> struct virtio_device *vdev;
> - struct virtqueue *vq;
> - spinlock_t vq_lock;
> + struct virtqueue *vq[MAX_NUM_VQ];
> + spinlock_t vq_lock[MAX_NUM_VQ];
array of struct {
*vq;
spinlock_t lock;
}
would use more memory but would get us bette...
2012 May 21
6
[RFC PATCH 1/5] block: Introduce q->abort_queue_fn()
When user hot-unplug a disk which is busy serving I/O, __blk_run_queue
might be unable to drain all the requests. As a result, the
blk_drain_queue() would loop forever and blk_cleanup_queue would not
return. So hot-unplug will fail.
This patch adds a callback in blk_drain_queue() for low lever driver to
abort requests.
Currently, this is useful for virtio-blk to do cleanup in hot-unplug.
Cc:
2012 May 21
6
[RFC PATCH 1/5] block: Introduce q->abort_queue_fn()
When user hot-unplug a disk which is busy serving I/O, __blk_run_queue
might be unable to drain all the requests. As a result, the
blk_drain_queue() would loop forever and blk_cleanup_queue would not
return. So hot-unplug will fail.
This patch adds a callback in blk_drain_queue() for low lever driver to
abort requests.
Currently, this is useful for virtio-blk to do cleanup in hot-unplug.
Cc:
2012 Aug 28
3
[PATCH v2 1/2] virtio-ring: Use threshold for switching to indirect descriptors
...+++
8 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 2edfb5c..13b8ae9 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -22,6 +22,9 @@ static DEFINE_IDA(vd_index_ida);
struct workqueue_struct *virtblk_wq;
+static unsigned int indirect_thresh;
+module_param(indirect_thresh, uint, S_IRUGO);
+
struct virtio_blk
{
struct virtio_device *vdev;
@@ -735,6 +738,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
INIT_WORK(&vblk->config_work, virtblk_config_changed_work);
v...
2012 Aug 28
3
[PATCH v2 1/2] virtio-ring: Use threshold for switching to indirect descriptors
...+++
8 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 2edfb5c..13b8ae9 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -22,6 +22,9 @@ static DEFINE_IDA(vd_index_ida);
struct workqueue_struct *virtblk_wq;
+static unsigned int indirect_thresh;
+module_param(indirect_thresh, uint, S_IRUGO);
+
struct virtio_blk
{
struct virtio_device *vdev;
@@ -735,6 +738,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
INIT_WORK(&vblk->config_work, virtblk_config_changed_work);
v...
2012 Jun 18
2
[RFC 1/2] virtio-ring: Use threshold for switching to indirect descriptors
...+++
8 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 693187d..a2c8d97 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -19,6 +19,9 @@ static DEFINE_IDA(vd_index_ida);
struct workqueue_struct *virtblk_wq;
+static unsigned int indirect_thresh = 0;
+module_param(indirect_thresh, uint, S_IRUGO);
+
struct virtio_blk
{
spinlock_t lock;
@@ -438,6 +441,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
mutex_init(&vblk->config_lock);
INIT_WORK(&vblk->config_work, v...
2012 Jun 18
2
[RFC 1/2] virtio-ring: Use threshold for switching to indirect descriptors
...+++
8 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 693187d..a2c8d97 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -19,6 +19,9 @@ static DEFINE_IDA(vd_index_ida);
struct workqueue_struct *virtblk_wq;
+static unsigned int indirect_thresh = 0;
+module_param(indirect_thresh, uint, S_IRUGO);
+
struct virtio_blk
{
spinlock_t lock;
@@ -438,6 +441,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
mutex_init(&vblk->config_lock);
INIT_WORK(&vblk->config_work, v...
2012 Aug 30
2
[PATCH v3 1/2] virtio-ring: Use threshold for switching to indirect descriptors
...+++
8 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 2edfb5c..7c63065 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -22,6 +22,9 @@ static DEFINE_IDA(vd_index_ida);
struct workqueue_struct *virtblk_wq;
+static unsigned int indirect_thresh;
+module_param(indirect_thresh, uint, S_IRUGO);
+
struct virtio_blk
{
struct virtio_device *vdev;
@@ -735,6 +738,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
INIT_WORK(&vblk->config_work, virtblk_config_changed_work);
v...
2012 Aug 30
2
[PATCH v3 1/2] virtio-ring: Use threshold for switching to indirect descriptors
...+++
8 files changed, 40 insertions(+), 6 deletions(-)
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 2edfb5c..7c63065 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -22,6 +22,9 @@ static DEFINE_IDA(vd_index_ida);
struct workqueue_struct *virtblk_wq;
+static unsigned int indirect_thresh;
+module_param(indirect_thresh, uint, S_IRUGO);
+
struct virtio_blk
{
struct virtio_device *vdev;
@@ -735,6 +738,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
INIT_WORK(&vblk->config_work, virtblk_config_changed_work);
v...
2014 Jun 23
0
[PATCH v1 2/2] block: virtio-blk: support multi virt queues per virtio-blk device
On Sun, Jun 22, 2014 at 01:24:48PM +0300, Michael S. Tsirkin wrote:
> On Fri, Jun 20, 2014 at 11:29:40PM +0800, Ming Lei wrote:
> > @@ -24,8 +26,8 @@ static struct workqueue_struct *virtblk_wq;
> > struct virtio_blk
> > {
> > struct virtio_device *vdev;
> > - struct virtqueue *vq;
> > - spinlock_t vq_lock;
> > + struct virtqueue *vq[MAX_NUM_VQ];
> > + spinlock_t vq_lock[MAX_NUM_VQ];
>
> array of struct {
> *vq;
> spinlock...
2014 Oct 24
0
[PATCH] virtio_blk: fix race at module removal
...@@ -883,8 +883,8 @@ out_destroy_workqueue:
>
> static void __exit fini(void)
> {
> - unregister_blkdev(major, "virtblk");
> unregister_virtio_driver(&virtio_blk);
> + unregister_blkdev(major, "virtblk");
> destroy_workqueue(virtblk_wq);
> }
> module_init(init);
Thanks,
--
Ming Lei
2014 Nov 24
0
[PATCH v3 18/41] virtio_blk: fix race at module removal
...ivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -884,8 +884,8 @@ out_destroy_workqueue:
static void __exit fini(void)
{
- unregister_blkdev(major, "virtblk");
unregister_virtio_driver(&virtio_blk);
+ unregister_blkdev(major, "virtblk");
destroy_workqueue(virtblk_wq);
}
module_init(init);
--
MST
2014 Nov 25
1
[PATCH v4 19/42] virtio_blk: fix race at module removal
...ivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -884,8 +884,8 @@ out_destroy_workqueue:
static void __exit fini(void)
{
- unregister_blkdev(major, "virtblk");
unregister_virtio_driver(&virtio_blk);
+ unregister_blkdev(major, "virtblk");
destroy_workqueue(virtblk_wq);
}
module_init(init);
--
MST