search for: virtio_fs_drain_all_queues_lock

Displaying 7 results from an estimated 7 matches for "virtio_fs_drain_all_queues_lock".

2019 Oct 30
0
[PATCH 3/3] virtiofs: Use completions while waiting for queue to be drained
...+ } else { spin_unlock(&fsvq->lock); - /* TODO use completion instead of timeout */ - usleep_range(1000, 2000); } flush_work(&fsvq->done_work); flush_delayed_work(&fsvq->dispatch_work); } -static void virtio_fs_drain_all_queues(struct virtio_fs *fs) +static void virtio_fs_drain_all_queues_locked(struct virtio_fs *fs) { struct virtio_fs_vq *fsvq; int i; @@ -141,6 +145,19 @@ static void virtio_fs_drain_all_queues(struct virtio_fs *fs) } } +static void virtio_fs_drain_all_queues(struct virtio_fs *fs) +{ + /* Provides mutual exclusion between ->remove and ->kill_sb + * paths...
2019 Oct 30
6
[PATCH 0/3] virtiofs: Small Cleanups for 5.5
Hi Miklos, Here are few small cleanups for virtiofs for 5.5. I had received some comments from Michael Tsirkin on original virtiofs patches and these cleanups are result of these comments. Thanks Vivek Vivek Goyal (3): virtiofs: Use a common function to send forget virtiofs: Do not send forget request "struct list_head" element virtiofs: Use completions while waiting for queue
2023 Jun 01
2
[PATCH V2] virtio-fs: Improved request latencies when Virtio queue is full
...>> } > > >> > > >> flush_work(&fsvq->done_work); > > >> - flush_delayed_work(&fsvq->dispatch_work); > > >> + flush_work(&fsvq->dispatch_work); > > >> } > > >> > > >> static void virtio_fs_drain_all_queues_locked(struct virtio_fs *fs) > > >> @@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work) > > >> dec_in_flight_req(fsvq); > > >> } > > >> } while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_broken(vq)))...
2023 May 31
1
[PATCH V2] virtio-fs: Improved request latencies when Virtio queue is full
...eue(struct virtio_fs_vq *fsvq) > >> } > >> > >> flush_work(&fsvq->done_work); > >> - flush_delayed_work(&fsvq->dispatch_work); > >> + flush_work(&fsvq->dispatch_work); > >> } > >> > >> static void virtio_fs_drain_all_queues_locked(struct virtio_fs *fs) > >> @@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work) > >> dec_in_flight_req(fsvq); > >> } > >> } while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_broken(vq))); > >> + &g...
2023 May 31
1
[PATCH V2] virtio-fs: Improved request latencies when Virtio queue is full
...; struct fuse_dev *fud; bool connected; long in_flight; @@ -202,7 +202,7 @@ static void virtio_fs_drain_queue(struct virtio_fs_vq *fsvq) } flush_work(&fsvq->done_work); - flush_delayed_work(&fsvq->dispatch_work); + flush_work(&fsvq->dispatch_work); } static void virtio_fs_drain_all_queues_locked(struct virtio_fs *fs) @@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work) dec_in_flight_req(fsvq); } } while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_broken(vq))); + + if (!list_empty(&fsvq->queued_reqs)) + schedule_work(&fsvq...
2023 Jun 01
1
[PATCH V2] virtio-fs: Improved request latencies when Virtio queue is full
...>>>>> >>>>> flush_work(&fsvq->done_work); >>>>> - flush_delayed_work(&fsvq->dispatch_work); >>>>> + flush_work(&fsvq->dispatch_work); >>>>> } >>>>> >>>>> static void virtio_fs_drain_all_queues_locked(struct virtio_fs *fs) >>>>> @@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work) >>>>> dec_in_flight_req(fsvq); >>>>> } >>>>> } while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_brok...
2023 Jul 03
2
[PATCH V4] virtio-fs: Improved request latencies when Virtio queue is full
...; struct fuse_dev *fud; bool connected; long in_flight; @@ -202,7 +202,7 @@ static void virtio_fs_drain_queue(struct virtio_fs_vq *fsvq) } flush_work(&fsvq->done_work); - flush_delayed_work(&fsvq->dispatch_work); + flush_work(&fsvq->dispatch_work); } static void virtio_fs_drain_all_queues_locked(struct virtio_fs *fs) @@ -346,6 +346,9 @@ static void virtio_fs_hiprio_done_work(struct work_struct *work) dec_in_flight_req(fsvq); } } while (!virtqueue_enable_cb(vq) && likely(!virtqueue_is_broken(vq))); + + if (!list_empty(&fsvq->queued_reqs)) + schedule_work(&fsvq...