All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Nathan Huckleberry <nhuck@google.com>
Cc: linux-kernel@vger.kernel.org, dm-devel@redhat.com,
	Alasdair Kergon <agk@redhat.com>,
	Mike Snitzer <snitzer@kernel.org>,
	Eric Biggers <ebiggers@kernel.org>,
	Sami Tolvanen <samitolvanen@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Subject: Re: [PATCH 0/3] dm-verity: optionally use tasklets in dm-verity
Date: Fri, 22 Jul 2022 09:41:07 -0700	[thread overview]
Message-ID: <YtrTI/CJMoLihA/1@infradead.org> (raw)
In-Reply-To: <20220722093823.4158756-1-nhuck@google.com>

We've been tying to kill off task lets for about 15 years.  I don't
think adding new users will make you a whole lot of friends..

On Fri, Jul 22, 2022 at 09:38:20AM +0000, Nathan Huckleberry wrote:
> Using tasklets for disk verification can reduce IO latency.  When there are
> accelerated hash instructions it is often better to compute the hash immediately
> using a tasklet rather than deferring verification to a work-queue.  This
> reduces time spent waiting to schedule work-queue jobs, but requires spending
> slightly more time in interrupt context.
> 
> A tasklet can only be used for verification if all the required hashes are
> already in the dm-bufio cache.  If verification cannot be done in a tasklet, we
> fallback the existing work-queue implementation.
> 
> To allow tasklets to query the dm-bufio cache, the dm-bufio code must not sleep.
> This patchset adds a flag to dm-bufio that disallows sleeping.
> 
> The following shows a speed comparison of random reads on a dm-verity device.
> The dm-verity device uses a 1G ramdisk for data and a 1G ramdisk for hashes.
> One test was run using tasklets and one test was run using the existing
> work-queue solution.  Both tests were run when the dm-bufio cache was hot.  The
> tasklet implementation performs significantly better since there is no time
> waiting for work-queue jobs to be scheduled.
> 
> # /data/fio /data/tasklet.fio | grep READ
>    READ: bw=181MiB/s (190MB/s), 181MiB/s-181MiB/s (190MB/s-190MB/s), io=512MiB
>    (537MB), run=2827-2827msec
> # /data/fio /data/workqueue.fio | grep READ
>    READ: bw=23.6MiB/s (24.8MB/s), 23.6MiB/s-23.6MiB/s (24.8MB/s-24.8MB/s),
>    io=512MiB (537MB), run=21688-21688msec
> 
> Nathan Huckleberry (3):
>   dm-bufio: Add flags for dm_bufio_client_create
>   dm-bufio: Add DM_BUFIO_GET_CANT_SLEEP
>   dm-verity: Add try_verify_in_tasklet
> 
>  drivers/md/dm-bufio.c                         | 29 +++++--
>  drivers/md/dm-ebs-target.c                    |  3 +-
>  drivers/md/dm-integrity.c                     |  2 +-
>  drivers/md/dm-snap-persistent.c               |  2 +-
>  drivers/md/dm-verity-fec.c                    |  4 +-
>  drivers/md/dm-verity-target.c                 | 87 ++++++++++++++++---
>  drivers/md/dm-verity.h                        |  5 ++
>  drivers/md/persistent-data/dm-block-manager.c |  3 +-
>  include/linux/dm-bufio.h                      |  8 +-
>  9 files changed, 119 insertions(+), 24 deletions(-)
> 
> -- 
> 2.37.1.359.gd136c6c3e2-goog
> 
---end quoted text---

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@infradead.org>
To: Nathan Huckleberry <nhuck@google.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
	Mike Snitzer <snitzer@kernel.org>,
	linux-kernel@vger.kernel.org, Eric Biggers <ebiggers@kernel.org>,
	dm-devel@redhat.com, Sami Tolvanen <samitolvanen@google.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Alasdair Kergon <agk@redhat.com>
Subject: Re: [dm-devel] [PATCH 0/3] dm-verity: optionally use tasklets in dm-verity
Date: Fri, 22 Jul 2022 09:41:07 -0700	[thread overview]
Message-ID: <YtrTI/CJMoLihA/1@infradead.org> (raw)
In-Reply-To: <20220722093823.4158756-1-nhuck@google.com>

We've been tying to kill off task lets for about 15 years.  I don't
think adding new users will make you a whole lot of friends..

On Fri, Jul 22, 2022 at 09:38:20AM +0000, Nathan Huckleberry wrote:
> Using tasklets for disk verification can reduce IO latency.  When there are
> accelerated hash instructions it is often better to compute the hash immediately
> using a tasklet rather than deferring verification to a work-queue.  This
> reduces time spent waiting to schedule work-queue jobs, but requires spending
> slightly more time in interrupt context.
> 
> A tasklet can only be used for verification if all the required hashes are
> already in the dm-bufio cache.  If verification cannot be done in a tasklet, we
> fallback the existing work-queue implementation.
> 
> To allow tasklets to query the dm-bufio cache, the dm-bufio code must not sleep.
> This patchset adds a flag to dm-bufio that disallows sleeping.
> 
> The following shows a speed comparison of random reads on a dm-verity device.
> The dm-verity device uses a 1G ramdisk for data and a 1G ramdisk for hashes.
> One test was run using tasklets and one test was run using the existing
> work-queue solution.  Both tests were run when the dm-bufio cache was hot.  The
> tasklet implementation performs significantly better since there is no time
> waiting for work-queue jobs to be scheduled.
> 
> # /data/fio /data/tasklet.fio | grep READ
>    READ: bw=181MiB/s (190MB/s), 181MiB/s-181MiB/s (190MB/s-190MB/s), io=512MiB
>    (537MB), run=2827-2827msec
> # /data/fio /data/workqueue.fio | grep READ
>    READ: bw=23.6MiB/s (24.8MB/s), 23.6MiB/s-23.6MiB/s (24.8MB/s-24.8MB/s),
>    io=512MiB (537MB), run=21688-21688msec
> 
> Nathan Huckleberry (3):
>   dm-bufio: Add flags for dm_bufio_client_create
>   dm-bufio: Add DM_BUFIO_GET_CANT_SLEEP
>   dm-verity: Add try_verify_in_tasklet
> 
>  drivers/md/dm-bufio.c                         | 29 +++++--
>  drivers/md/dm-ebs-target.c                    |  3 +-
>  drivers/md/dm-integrity.c                     |  2 +-
>  drivers/md/dm-snap-persistent.c               |  2 +-
>  drivers/md/dm-verity-fec.c                    |  4 +-
>  drivers/md/dm-verity-target.c                 | 87 ++++++++++++++++---
>  drivers/md/dm-verity.h                        |  5 ++
>  drivers/md/persistent-data/dm-block-manager.c |  3 +-
>  include/linux/dm-bufio.h                      |  8 +-
>  9 files changed, 119 insertions(+), 24 deletions(-)
> 
> -- 
> 2.37.1.359.gd136c6c3e2-goog
> 
---end quoted text---

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel


  parent reply	other threads:[~2022-07-22 16:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-22  9:38 [PATCH 0/3] dm-verity: optionally use tasklets in dm-verity Nathan Huckleberry
2022-07-22  9:38 ` [dm-devel] " Nathan Huckleberry
2022-07-22  9:38 ` [PATCH 1/3] dm-bufio: Add flags for dm_bufio_client_create Nathan Huckleberry
2022-07-22  9:38   ` [dm-devel] " Nathan Huckleberry
2022-07-22  9:38 ` [PATCH 2/3] dm-bufio: Add DM_BUFIO_GET_CANT_SLEEP Nathan Huckleberry
2022-07-22  9:38   ` [dm-devel] " Nathan Huckleberry
2022-07-22  9:38 ` [PATCH 3/3] dm-verity: Add try_verify_in_tasklet Nathan Huckleberry
2022-07-22  9:38   ` [dm-devel] " Nathan Huckleberry
2022-07-26  1:58   ` Mike Snitzer
2022-07-26  1:58     ` [dm-devel] " Mike Snitzer
2022-07-26  3:06     ` Eric Biggers
2022-07-26  3:06       ` [dm-devel] " Eric Biggers
2022-07-26  4:13       ` Mike Snitzer
2022-07-26  4:13         ` [dm-devel] " Mike Snitzer
2022-07-22 16:41 ` Christoph Hellwig [this message]
2022-07-22 16:41   ` [dm-devel] [PATCH 0/3] dm-verity: optionally use tasklets in dm-verity Christoph Hellwig
2022-07-22 17:12   ` Mike Snitzer
2022-07-22 17:12     ` [dm-devel] " Mike Snitzer
2022-08-15 11:35     ` Sebastian Andrzej Siewior
2022-07-22 18:12   ` [dm-devel] " Bart Van Assche
2022-07-22 18:12     ` Bart Van Assche
2022-07-22 18:33     ` Mike Snitzer
2022-07-22 18:33       ` [dm-devel] " Mike Snitzer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YtrTI/CJMoLihA/1@infradead.org \
    --to=hch@infradead.org \
    --cc=agk@redhat.com \
    --cc=bigeasy@linutronix.de \
    --cc=dm-devel@redhat.com \
    --cc=ebiggers@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nhuck@google.com \
    --cc=samitolvanen@google.com \
    --cc=snitzer@kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.