search for: destroy_workqueu

Displaying 20 results from an estimated 261 matches for "destroy_workqueu".

Did you mean: destroy_workqueue
2024 Feb 22
1
[PATCH] drm/nouveau: use dedicated wq for fence uevents work
...q; + goto fail_fence_wq; ret = nouveau_cli_init(drm, "DRM", &drm->client); if (ret) @@ -670,7 +676,9 @@ nouveau_drm_device_init(struct drm_device *dev) nouveau_cli_fini(&drm->client); fail_master: nouveau_cli_fini(&drm->master); -fail_wq: +fail_fence_wq: + destroy_workqueue(drm->fence_wq); +fail_sched_wq: destroy_workqueue(drm->sched_wq); fail_alloc: nvif_parent_dtor(&drm->parent); @@ -725,6 +733,7 @@ nouveau_drm_device_fini(struct drm_device *dev) nouveau_cli_fini(&drm->client); nouveau_cli_fini(&drm->master); + destroy_workqueu...
2024 Feb 23
1
[PATCH] drm/nouveau: use dedicated wq for fence uevents work
...t; if (ret) > > @@ -670,7 +676,9 @@ nouveau_drm_device_init(struct drm_device *dev) > > nouveau_cli_fini(&drm->client); > > fail_master: > > nouveau_cli_fini(&drm->master); > > -fail_wq: > > +fail_fence_wq: > > + destroy_workqueue(drm->fence_wq); > > +fail_sched_wq: > > destroy_workqueue(drm->sched_wq); > > fail_alloc: > > nvif_parent_dtor(&drm->parent); > > @@ -725,6 +733,7 @@ nouveau_drm_device_fini(struct drm_device *dev) > > > > nouveau_cli_...
2023 Mar 28
0
[PATCH v4 05/11] vduse: Support set_vq_affinity callback
...queue("vduse-irq-bound", WQ_HIGHPRI, 0); > + if (!vduse_irq_bound_wq) > + goto err_bound_wq; > > ret = vduse_domain_init(); > if (ret) > @@ -1877,6 +1921,8 @@ static int vduse_init(void) > err_mgmtdev: > vduse_domain_exit(); > err_domain: > + destroy_workqueue(vduse_irq_bound_wq); > +err_bound_wq: > destroy_workqueue(vduse_irq_wq); > err_wq: > cdev_del(&vduse_cdev); > @@ -1896,6 +1942,7 @@ static void vduse_exit(void) > { > vduse_mgmtdev_exit(); > vduse_domain_exit(); > + destroy_workqueue(vduse_irq_bound_w...
2014 Nov 20
4
[PATCH v3] virtio_balloon: Convert "vballoon" kthread into a workqueue
...ushing it won't help because it can requeue itself, right? There's cancel_work_sync() to stop the self-requeueing ones. > From that POV a dedicated WQ kept it simple. A dedicated wq doesn't do anything for that. You can't shut down a workqueue with a pending work item on it. destroy_workqueue() will try to drain the target wq, warn if it doesn't finish in certain number of iterations and just keep trying indefinitely. Thanks. -- tejun
2014 Nov 20
4
[PATCH v3] virtio_balloon: Convert "vballoon" kthread into a workqueue
...ushing it won't help because it can requeue itself, right? There's cancel_work_sync() to stop the self-requeueing ones. > From that POV a dedicated WQ kept it simple. A dedicated wq doesn't do anything for that. You can't shut down a workqueue with a pending work item on it. destroy_workqueue() will try to drain the target wq, warn if it doesn't finish in certain number of iterations and just keep trying indefinitely. Thanks. -- tejun
2019 Feb 01
3
[PATCH v3 0/2] vsock/virtio: fix issues on device hot-unplug
These patches try to handle the hot-unplug of vsock virtio transport device in a proper way. Maybe move the vsock_core_init()/vsock_core_exit() functions in the module_init and module_exit of vsock_virtio_transport module can't be the best way, but the architecture of vsock_core forces us to this approach for now. The vsock_core proto_ops expect a valid pointer to the transport device, so we
2019 Feb 01
3
[PATCH v3 0/2] vsock/virtio: fix issues on device hot-unplug
These patches try to handle the hot-unplug of vsock virtio transport device in a proper way. Maybe move the vsock_core_init()/vsock_core_exit() functions in the module_init and module_exit of vsock_virtio_transport module can't be the best way, but the architecture of vsock_core forces us to this approach for now. The vsock_core proto_ops expect a valid pointer to the transport device, so we
2014 Oct 23
2
[PATCH] virtio_blk: fix race at module removal
...t;mst at redhat.com> --- drivers/block/virtio_blk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 56aadbc..adfba9f 100644 --- a/drivers/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 Nov 20
2
[PATCH v3] virtio_balloon: Convert "vballoon" kthread into a workqueue
...39;s going on. External (non-self) queueings of course should be stopped in other ways. > > > From that POV a dedicated WQ kept it simple. > > > > A dedicated wq doesn't do anything for that. You can't shut down a > > workqueue with a pending work item on it. destroy_workqueue() will > > try to drain the target wq, warn if it doesn't finish in certain > > number of iterations and just keep trying indefinitely. > > > > Thanks. > > Right, so eventually we'll stop requeueuing and it will succeed? Yeah, sure, it's a silly reason...
2014 Oct 23
2
[PATCH] virtio_blk: fix race at module removal
...t;mst at redhat.com> --- drivers/block/virtio_blk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c index 56aadbc..adfba9f 100644 --- a/drivers/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 Nov 20
2
[PATCH v3] virtio_balloon: Convert "vballoon" kthread into a workqueue
...39;s going on. External (non-self) queueings of course should be stopped in other ways. > > > From that POV a dedicated WQ kept it simple. > > > > A dedicated wq doesn't do anything for that. You can't shut down a > > workqueue with a pending work item on it. destroy_workqueue() will > > try to drain the target wq, warn if it doesn't finish in certain > > number of iterations and just keep trying indefinitely. > > > > Thanks. > > Right, so eventually we'll stop requeueuing and it will succeed? Yeah, sure, it's a silly reason...
2018 Feb 01
0
[PATCH v25 0/2] Virtio-balloon: support free page reporting
...callabck, which stops the reporting. > - virtio-balloon: > - use enum instead of define for VIRTIO_BALLOON_VQ_INFLATE etc. > - avoid __virtio_clear_bit when bailing out; > - a new method to avoid reporting the some cmd id to host twice > - destroy_workqueue can cancel free page work when the feature is > negotiated; > - fail probe when the free page vq size is less than 2. > v23->v24: > - change feature name VIRTIO_BALLOON_F_FREE_PAGE_VQ to > VIRTIO_BALLOON_F_FREE_PAGE_HINT > - kick when vq->num...
2019 May 23
0
[PATCH 4.9 07/53] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); }
2019 May 23
0
[PATCH 4.14 09/77] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); }
2019 May 23
0
[PATCH 4.19 014/114] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); }
2019 May 23
0
[PATCH 5.0 014/139] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); }
2019 May 23
0
[PATCH 5.1 019/122] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); }
2019 May 01
3
[PATCH] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); } -- 2.21.0.593.g511ec345e18-goog
2019 May 01
3
[PATCH] vsock/virtio: Initialize core virtio vsock before registering the driver
...goto out_wq; - ret = vsock_core_init(&virtio_transport.transport); + ret = register_virtio_driver(&virtio_vsock_driver); if (ret) - goto out_vdr; + goto out_vci; return 0; -out_vdr: - unregister_virtio_driver(&virtio_vsock_driver); +out_vci: + vsock_core_exit(); out_wq: destroy_workqueue(virtio_vsock_workqueue); return ret; - } static void __exit virtio_vsock_exit(void) { - vsock_core_exit(); unregister_virtio_driver(&virtio_vsock_driver); + vsock_core_exit(); destroy_workqueue(virtio_vsock_workqueue); } -- 2.21.0.593.g511ec345e18-goog
2011 Jan 27
1
[PATCH] virtio_blk: allow re-reading config space at runtime
..._misc", 0, 0); > + if (!virtblk_wq) > + return -ENOMEM; > + > major = register_blkdev(0, "virtblk"); > - if (major < 0) > - return major; > - return register_virtio_driver(&virtio_blk); > + if (major < 0) { > + error = major; > + goto out_destroy_workqueue; > + } > + > + error = register_virtio_driver(&virtio_blk); > + if (error) > + goto out_unregister_blkdev; > + return 0; > + > +out_unregister_blkdev: > + unregister_blkdev(major, "virtblk"); > +out_destroy_workqueue: > + destroy_workqueue(virtblk_wq...