All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergei Shtepa <sergei.shtepa@veeam.com>
To: Hillf Danton <hdanton@sina.com>
Cc: "axboe@kernel.dk" <axboe@kernel.dk>,
	"corbet@lwn.net" <corbet@lwn.net>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 17/21] block, blksnap: snapshot image block device
Date: Mon, 2 Jan 2023 10:44:06 +0100	[thread overview]
Message-ID: <b2ec41dd-3346-c2db-d59c-9050f8ad1053@veeam.com> (raw)
In-Reply-To: <20230101071813.3329-1-hdanton@sina.com>



On 1/1/23 08:18, Hillf Danton wrote:
> Subject:
> Re: [PATCH v2 17/21] block, blksnap: snapshot image block device
> From:
> Hillf Danton <hdanton@sina.com>
> Date:
> 1/1/23, 08:18
> 
> To:
> Sergei Shtepa <sergei.shtepa@veeam.com>
> CC:
> "axboe@kernel.dk" <axboe@kernel.dk>, "corbet@lwn.net" <corbet@lwn.net>, "linux-mm@kvack.org" <linux-mm@kvack.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
> 
> 
> This is the first time you've received an email from this sender 
> hdanton@sina.com, please exercise caution when clicking on links or opening 
> attachments.
> 
> 
> On 9 Dec 2022 15:23:27 +0100 Sergei Shtepa
>  > Provides the operation of block devices of snapshot images. Read and
>  > write operations are redirected to the regions of difference blocks for
>  > block device (struct diff_area).
>  >
>  > Signed-off-by: Sergei Shtepa
>  > ---
> 
> Thanks for your patchset.

Thanks for the review.

> 
>  > +static int snapimage_kthread_worker_fn(void *param)
>  > +{
>  > + struct snapimage *snapimage = param;
>  > + struct bio *bio;
>  > + int ret = 0;
>  > +
>  > + while (!kthread_should_stop()) {
>  > + bio = get_bio_from_queue(snapimage);
>  > + if (!bio) {
>  > + schedule_timeout_interruptible(HZ / 100);
>  > + continue;
>  > + }
> 
> Given the wake_up_process() below, s$HZ / 100$HZ * 1000$ to avoid
> unnecessary wakeups [1].
> 
> And because of no signal handling added, use schedule_timeout_idle() instead.

Yes, this function will be rewritten to eliminate unnecessary wake-ups.
The code that Christoph proposed in the letter at Dec 15 should work well.

> 
> [1] 
> https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Flkml%2F20210419085027.761150-2-elver%40google.com%2F&data=05%7C01%7Csergei.shtepa%40veeam.com%7C765d591d47ad4d93857208daebc92508%7Cba07baab431b49edadd7cbc3542f5140%7C1%7C1%7C638081546440884849%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=rbINOq7m31DFhjHLnQKFHQuoWB64ZhmnWbAVLuNwv7w%3D&reserved=0
> 
>  > +
>  > + snapimage_process_bio(snapimage, bio);
>  > + }
>  > +
>  > + while ((bio = get_bio_from_queue(snapimage)))
>  > + snapimage_process_bio(snapimage, bio);
>  > +
>  > + return ret;
>  > +}
>  > +
>  > +static void snapimage_submit_bio(struct bio *bio)
>  > +{
>  > + struct snapimage *snapimage = bio->bi_bdev->bd_disk->private_data;
>  > + gfp_t gfp = GFP_NOIO;
>  > +
>  > + if (bio->bi_opf & REQ_NOWAIT)
>  > + gfp |= GFP_NOWAIT;
>  > + if (snapimage->is_ready) {
>  > + spin_lock(&snapimage->queue_lock);
>  > + bio_list_add(&snapimage->queue, bio);
>  > + spin_unlock(&snapimage->queue_lock);
>  > +
>  > + wake_up_process(snapimage->worker);
>  > + } else
>  > + bio_io_error(bio);
>  > +}
> 

  reply	other threads:[~2023-01-02  9:45 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-09 14:23 [PATCH v2 00/21] blksnap - block devices snapshots module Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 01/21] documentation, blkfilter: Block Device Filtering Mechanism Sergei Shtepa
2022-12-10  4:15   ` Bagas Sanjaya
2022-12-09 14:23 ` [PATCH v2 02/21] block, " Sergei Shtepa
2022-12-15  9:26   ` Christoph Hellwig
2022-12-15 10:46     ` Sergei Shtepa
2022-12-16  7:04       ` Christoph Hellwig
2023-01-31 23:58   ` Mike Snitzer
2023-01-31 23:58     ` [dm-devel] " Mike Snitzer
2023-02-01 11:09     ` Fabio Fantoni
2023-02-01 11:09       ` [dm-devel] " Fabio Fantoni
2023-02-01 13:16     ` Sergei Shtepa
2023-02-01 13:16       ` [dm-devel] " Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 03/21] documentation, capability: fix Generic Block Device Capability Sergei Shtepa
2022-12-13 12:13   ` Fabio Fantoni
2022-12-30 15:35     ` Fabio Fantoni
2022-12-09 14:23 ` [PATCH v2 04/21] documentation, blksnap: Block Devices Snapshots Module Sergei Shtepa
2022-12-10  3:50   ` Bagas Sanjaya
2022-12-09 14:23 ` [PATCH v2 05/21] block, blksnap: header file of the module interface Sergei Shtepa
2022-12-09 22:13   ` kernel test robot
2022-12-09 23:14   ` kernel test robot
2022-12-09 14:23 ` [PATCH v2 06/21] block, blksnap: module management interface functions Sergei Shtepa
2022-12-15  9:28   ` Christoph Hellwig
     [not found]   ` <CGME20230103153406eucas1p205c48bd767e6a86f6f1121db7eb5fc19@eucas1p2.samsung.com>
2023-01-03 15:26     ` Pankaj Raghav
2022-12-09 14:23 ` [PATCH v2 07/21] block, blksnap: init() and exit() functions Sergei Shtepa
2022-12-15  9:30   ` Christoph Hellwig
2022-12-09 14:23 ` [PATCH v2 08/21] block, blksnap: interaction with sysfs Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 09/21] block, blksnap: attaching and detaching the filter and handling I/O units Sergei Shtepa
2022-12-15 10:01   ` Christoph Hellwig
2022-12-09 14:23 ` [PATCH v2 10/21] block, blksnap: map of change block tracking Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 11/21] block, blksnap: minimum data storage unit of the original block device Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 12/21] block, blksnap: buffer in memory for the minimum data storage unit Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 13/21] block, blksnap: functions and structures for performing block I/O operations Sergei Shtepa
2022-12-15 10:06   ` Christoph Hellwig
2022-12-09 14:23 ` [PATCH v2 14/21] block, blksnap: storage for storing difference blocks Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 15/21] block, blksnap: event queue from the difference storage Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 16/21] block, blksnap: owner of information about overwritten blocks of the original block device Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 17/21] block, blksnap: snapshot image " Sergei Shtepa
2022-12-15  9:45   ` Christoph Hellwig
2023-01-01  7:18   ` Hillf Danton
2023-01-02  9:44     ` Sergei Shtepa [this message]
2022-12-09 14:23 ` [PATCH v2 18/21] block, blksnap: snapshot Sergei Shtepa
2023-01-01 11:05   ` Hillf Danton
2023-01-02  9:58     ` Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 19/21] block, blksnap: Kconfig and Makefile Sergei Shtepa
2022-12-09 14:23 ` [PATCH v2 20/21] block, blksnap: adds a blksnap to the kernel tree Sergei Shtepa
2022-12-09 21:53   ` kernel test robot
2022-12-09 14:23 ` [PATCH v2 21/21] block, blksnap: adds a maintainer for new files Sergei Shtepa
2022-12-10  3:23 ` [PATCH v2 00/21] blksnap - block devices snapshots module Bagas Sanjaya
2022-12-10 22:57   ` Sergei Shtepa
2023-01-17 21:04 ` Mike Snitzer
2023-01-18 10:51   ` Hannes Reinecke
2023-01-24 11:34   ` Sergei Shtepa
2023-01-31 20:47     ` [dm-devel] " Mike Snitzer
2023-01-31 20:47       ` Mike Snitzer
2023-02-01  2:32       ` Mason Giles
2023-02-01  2:32         ` [dm-devel] " Mason Giles

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=b2ec41dd-3346-c2db-d59c-9050f8ad1053@veeam.com \
    --to=sergei.shtepa@veeam.com \
    --cc=axboe@kernel.dk \
    --cc=corbet@lwn.net \
    --cc=hdanton@sina.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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.