From patchwork Fri May 22 15:38:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Reinecke X-Patchwork-Id: 11565869 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 157F913B1 for ; Fri, 22 May 2020 15:39:59 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C6F0520823 for ; Fri, 22 May 2020 15:39:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="PwrCFvcf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C6F0520823 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dm-devel-bounces@redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1590161997; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=nMHNpNBvFAUqsavB4wxS7aiOIFs1Pm9p51osjtcHLJI=; b=PwrCFvcfgxQNRo228sandSkuqHMmnsB4WjxUEQ/PEDvM761zsdPaiqO2ZeqNJaYZxVaMHH LWVB5xo2eWYBctfVuspyxwokEvxYXoEBiOG6Dt3GrOKmgN9e42B4bVXuNQXK1iw3N97Mor f21OJcuAJJUJLvYP1nrLtdFG5cLWk9I= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-332-uPpObKiTNTyS8IYekX9f0w-1; Fri, 22 May 2020 11:39:53 -0400 X-MC-Unique: uPpObKiTNTyS8IYekX9f0w-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4AD201052519; Fri, 22 May 2020 15:39:40 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 32C009CB9; Fri, 22 May 2020 15:39:40 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 09FF21809543; Fri, 22 May 2020 15:39:40 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 04MFdJfm012638 for ; Fri, 22 May 2020 11:39:19 -0400 Received: by smtp.corp.redhat.com (Postfix) id 185102029F61; Fri, 22 May 2020 15:39:19 +0000 (UTC) Delivered-To: dm-devel@redhat.com Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 127532014DFA for ; Fri, 22 May 2020 15:39:15 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 330FD804026 for ; Fri, 22 May 2020 15:39:15 +0000 (UTC) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-505-gAkxIBY9P_ayqz_87-ADqQ-1; Fri, 22 May 2020 11:39:11 -0400 X-MC-Unique: gAkxIBY9P_ayqz_87-ADqQ-1 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 74C4DB20D; Fri, 22 May 2020 15:39:12 +0000 (UTC) From: Hannes Reinecke To: Damien LeMoal Date: Fri, 22 May 2020 17:38:49 +0200 Message-Id: <20200522153901.133375-1-hare@suse.de> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: dm-devel@redhat.com Cc: dm-devel@redhat.com, Mike Snitzer Subject: [dm-devel] [PATCH RFC 00/12] dm-zoned: multi-device support X-BeenThere: dm-devel@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: device-mapper development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Hi all, on the risk of boring you to death, here's yet another RFC to update dm-zoned. As it has seen only light testing and has some areas which need to be improved I'd consider it RFC material. I'm just putting it out now to get some feedback and get it ready for the next merge window. So, this patchset: - Converts the zone array to using xarray for better scalability - Separate out shared structures into per-device structure - Lift the restriction of 2 devices to handle an arbitrary number of drives. With this patchset I'm seeing a performance increase for writes from an average of 150MB/s (with 2 drives) to 200MB/s (with 3 drives). Hannes Reinecke (12): dm-zoned: add debugging message for reading superblocks dm-zoned: convert to xarray dm-zoned: use on-stack superblock for tertiary devices dm-zoned: secondary superblock must reside on the same devices than primary superblock dm-zoned: add device pointer to struct dm_zone dm-zoned: add metadata pointer to struct dmz_dev dm-zoned: add a 'reserved' zone flag dm-zoned: move random and sequential zones into struct dmz_dev dm-zoned: improve logging messages for reclaim dm-zoned: support arbitrary number of devices dm-zoned: round-robin load balancer for reclaiming zones dm-zoned: per-device reclaim drivers/md/dm-zoned-metadata.c | 430 ++++++++++++++++++++++++----------------- drivers/md/dm-zoned-reclaim.c | 85 ++++---- drivers/md/dm-zoned-target.c | 172 ++++++++++------- drivers/md/dm-zoned.h | 70 ++++--- 4 files changed, 454 insertions(+), 303 deletions(-)