search for: vhost_worker_put

Displaying 4 results from an estimated 4 matches for "vhost_worker_put".

2023 Mar 28
1
[PATCH v6 11/11] vhost: allow userspace to create workers
...lock); - + xa_init_flags(&dev->worker_xa, XA_FLAGS_ALLOC); for (i = 0; i < dev->nvqs; ++i) { vq = dev->vqs[i]; @@ -562,32 +565,67 @@ static void vhost_detach_mm(struct vhost_dev *dev) dev->mm = NULL; } -static void vhost_worker_free(struct vhost_dev *dev) +static void vhost_worker_put(struct vhost_dev *dev, struct vhost_worker *worker) { - struct vhost_worker *worker = dev->worker; - if (!worker) return; - dev->worker = NULL; + if (!refcount_dec_and_test(&worker->refcount)) + return; + WARN_ON(!llist_empty(&worker->work_list)); vhost_task_stop(wo...
2023 Apr 10
1
[PATCH v6 11/11] vhost: allow userspace to create workers
On Wed, Apr 5, 2023 at 7:08?AM Mike Christie <michael.christie at oracle.com> wrote: > > On 4/4/23 3:00 AM, Jason Wang wrote: > >> > >> -static void vhost_worker_free(struct vhost_dev *dev) > >> +static void vhost_worker_put(struct vhost_dev *dev, struct vhost_worker *worker) > >> { > >> - struct vhost_worker *worker = dev->worker; > >> - > >> if (!worker) > >> return; > >> > >> - dev->worker = NULL; > >>...
2023 Apr 12
1
[PATCH v6 11/11] vhost: allow userspace to create workers
...e increase the refcount. > > When you do vhost_vq_detach_worker then it drops the refcount from the > attach. Then if you detached the worker from all the virtqueues you > still have the refcount=1 from the VHOST_NEW_WORKER call. > > The refcount decrement in VHOST_FREE_WORKER via vhost_worker_put would > be the final put. Note that if userspace just closes the dev without > doing a put, then we do the final puts for it. Right, I mis-read the code, you did /* * We can free the worker if it's not attached to any virtqueues. */ if (refcount_read(&a...
2023 Mar 28
12
[PATCH v6 00/11] vhost: multiple worker support
The following patches were built over linux-next which contains various vhost patches in mst's tree and the vhost_task patchset in Christian Brauner's tree: git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git kernel.user_worker branch: https://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux.git/log/?h=kernel.user_worker The latter patchset handles the review comment