From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by mail09.linbit.com (LINBIT Mail Daemon) with ESMTP id 23D321011BFF for ; Mon, 24 Jun 2019 17:49:49 +0200 (CEST) Received: by mail-wr1-f46.google.com with SMTP id x4so14449317wrt.6 for ; Mon, 24 Jun 2019 08:49:49 -0700 (PDT) Received: from soda.linbit (212-186-191-219.static.upcbusiness.at. [212.186.191.219]) by smtp.gmail.com with ESMTPSA id l8sm25567770wrg.40.2019.06.24.08.49.48 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 24 Jun 2019 08:49:48 -0700 (PDT) Date: Mon, 24 Jun 2019 17:49:46 +0200 From: Lars Ellenberg To: drbd-dev@lists.linbit.com Message-ID: <20190624154946.GU30528@soda.linbit> References: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Subject: Re: [Drbd-dev] Checksum based resync block size List-Id: "*Coordination* of development, patches, contributions -- *Questions* \(even to developers\) go to drbd-user, please." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Sat, Jun 22, 2019 at 12:03:55AM +0000, Eric Wheeler wrote: > Hello all, > > Can someone help explain how checksum-based sync and verify are > implemented in the sender and receive side? It looks like the hashes are > per-sector (looking at read_for_csum?) and I am interested in making the > csum chunk size configurable, or at least hack in some test code to see if > it would provide a performance benefit to csum multiple sectors. > > I'm also trying to understand what iterates over the lldev and understand > where the csum takes place foreach chunk of data. > > Any direction would be helpful. Thank you. As our in-sync/out-of-sync bitmap tracks 4k blocks, we want to compare 4k checkesums. Yes, that generates "a lot" of requests, and if these are not merged by some IO scheduler on the lower layers, that may seriously suck. make_ov_request() is what generates the online-verify requests. What we potentially could do is issue the requests in larger chunks, like (1 MiB) to the backends, then calculate and communicate the checksum per each 4k, as well as the result. -- : Lars Ellenberg : LINBIT | Keeping the Digital World Running : DRBD -- Heartbeat -- Corosync -- Pacemaker : R&D, Integration, Ops, Consulting, Support DRBD® and LINBIT® are registered trademarks of LINBIT