mbox series

[v2,0/5] fuse: Interrupt-related optimizations and improvements

Message ID 154166765576.10655.15178401490817622677.stgit@localhost.localdomain (mailing list archive)
Headers show
Series fuse: Interrupt-related optimizations and improvements | expand

Message

Kirill Tkhai Nov. 8, 2018, 9:05 a.m. UTC
v2: Changes in [1-2,5] patches. The biggest change is in [5],
    where repeater FR_INTERRUPTED assignment is removed.

This patchset consists of several parts. Patches [1-2] optimize
likely case of request_end(), and make this function to take
fiq->waitq.lock only, when it is really needed. This improves
performance of this function completes.

Patch 3 makes request_end() to call wake_up() only for not
background requests (background requests never wait answer),
and this optimizes this function a bit more

Patches [4-5] makes code to check userspace requests correct
interrupt id to requeue (whether we've sent this interrupt).

---

Kirill Tkhai (5):
      fuse: Kill fasync only if interrupt is queued in queue_interrupt()
      fuse: Optimize request_end() by not taking fiq->waitq.lock
      fuse: Wake up req->waitq of only not background requests in request_end()
      fuse: Do some refactoring in fuse_dev_do_write()
      fuse: Verify userspace asks to requeue interrupt that we really sent


 fs/fuse/dev.c |   57 ++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 38 insertions(+), 19 deletions(-)

--
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>

Comments

Kirill Tkhai Dec. 26, 2018, 1:25 p.m. UTC | #1
ping

On 08.11.2018 12:05, Kirill Tkhai wrote:
> v2: Changes in [1-2,5] patches. The biggest change is in [5],
>     where repeater FR_INTERRUPTED assignment is removed.
> 
> This patchset consists of several parts. Patches [1-2] optimize
> likely case of request_end(), and make this function to take
> fiq->waitq.lock only, when it is really needed. This improves
> performance of this function completes.
> 
> Patch 3 makes request_end() to call wake_up() only for not
> background requests (background requests never wait answer),
> and this optimizes this function a bit more
> 
> Patches [4-5] makes code to check userspace requests correct
> interrupt id to requeue (whether we've sent this interrupt).
> 
> ---
> 
> Kirill Tkhai (5):
>       fuse: Kill fasync only if interrupt is queued in queue_interrupt()
>       fuse: Optimize request_end() by not taking fiq->waitq.lock
>       fuse: Wake up req->waitq of only not background requests in request_end()
>       fuse: Do some refactoring in fuse_dev_do_write()
>       fuse: Verify userspace asks to requeue interrupt that we really sent
> 
> 
>  fs/fuse/dev.c |   57 ++++++++++++++++++++++++++++++++++++++-------------------
>  1 file changed, 38 insertions(+), 19 deletions(-)
> 
> --
> Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
>
Miklos Szeredi Jan. 10, 2019, 8:37 a.m. UTC | #2
On Wed, Dec 26, 2018 at 2:25 PM Kirill Tkhai <ktkhai@virtuozzo.com> wrote:
>
> ping
>
> On 08.11.2018 12:05, Kirill Tkhai wrote:
> > v2: Changes in [1-2,5] patches. The biggest change is in [5],
> >     where repeater FR_INTERRUPTED assignment is removed.
> >
> > This patchset consists of several parts. Patches [1-2] optimize
> > likely case of request_end(), and make this function to take
> > fiq->waitq.lock only, when it is really needed. This improves
> > performance of this function completes.
> >
> > Patch 3 makes request_end() to call wake_up() only for not
> > background requests (background requests never wait answer),
> > and this optimizes this function a bit more
> >
> > Patches [4-5] makes code to check userspace requests correct
> > interrupt id to requeue (whether we've sent this interrupt).

Pushed to fuse.git#for-next.

Thanks,
Miklos