From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E4E1C433EF for ; Wed, 29 Jun 2022 16:06:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFA528E0011; Wed, 29 Jun 2022 12:06:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D82C98E0009; Wed, 29 Jun 2022 12:06:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C22A78E0011; Wed, 29 Jun 2022 12:06:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id AF77B8E0009 for ; Wed, 29 Jun 2022 12:06:08 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 9028180283 for ; Wed, 29 Jun 2022 16:06:08 +0000 (UTC) X-FDA: 79631750016.24.6C88ADD Received: from ale.deltatee.com (ale.deltatee.com [204.191.154.188]) by imf30.hostedemail.com (Postfix) with ESMTP id 7BB9280037 for ; Wed, 29 Jun 2022 16:06:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=deltatee.com; s=20200525; h=Subject:In-Reply-To:From:References:Cc:To: MIME-Version:Date:Message-ID:content-disposition; bh=7Il3Zmz7S/H0NpQetmZjc06R/zh7uKcDBAajLC9gk7k=; b=nQI+rf6typETAhwsXDC03rqH1s V164Y6PeH/wetb3LsK1Agsg11/TBxGJrqtz9PS3ZCkdd8xr4Tq3i6g50Fh8k7KpOVCJf71tRgxbIH njTbD+6wn0OaEcJplIK7kNG6yhTWpzvNbrG4L/3iG+OAOYrLdNmjf+5QpEyqcx7jaj/nE8Z8TguZc jVHgBb1v3Ga3S+jBuSfll3H9aSztuVx1Un8QlkO5yuAX5Saz9FlonIBzN4iJ0dd8BEbHTqvsVvRi1 T3g4LOg96bAhr2/nF2mMRWewmYCIhMV+dOlF5CozLQiN2Y1LRjq0qQmuCMGhP54hZ4GTTGSsVNp3Y Ww9rCnag==; Received: from s0106a84e3fe8c3f3.cg.shawcable.net ([24.64.144.200] helo=[192.168.0.10]) by ale.deltatee.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1o6aCX-002SQa-6C; Wed, 29 Jun 2022 10:06:02 -0600 Message-ID: <7da06e08-7dd1-f37c-4382-bc59a1b1e819@deltatee.com> Date: Wed, 29 Jun 2022 10:06:00 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Content-Language: en-CA To: Christoph Hellwig Cc: linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, Stephen Bates , Dan Williams , Jason Gunthorpe , =?UTF-8?Q?Christian_K=c3=b6nig?= , John Hubbard , Don Dutile , Matthew Wilcox , Daniel Vetter , Minturn Dave B , Jason Ekstrand , Dave Hansen , Xiong Jianxin , Bjorn Helgaas , Ira Weiny , Robin Murphy , Martin Oliveira , Chaitanya Kulkarni , Ralph Campbell References: <20220615161233.17527-1-logang@deltatee.com> <20220615161233.17527-17-logang@deltatee.com> <20220629064629.GC17576@lst.de> From: Logan Gunthorpe In-Reply-To: <20220629064629.GC17576@lst.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 24.64.144.200 X-SA-Exim-Rcpt-To: hch@lst.de, linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, linux-block@vger.kernel.org, linux-pci@vger.kernel.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org, sbates@raithlin.com, dan.j.williams@intel.com, jgg@ziepe.ca, christian.koenig@amd.com, jhubbard@nvidia.com, ddutile@redhat.com, willy@infradead.org, daniel.vetter@ffwll.ch, dave.b.minturn@intel.com, jason@jlekstrand.net, dave.hansen@linux.intel.com, jianxin.xiong@intel.com, helgaas@kernel.org, ira.weiny@intel.com, robin.murphy@arm.com, martin.oliveira@eideticom.com, ckulkarnilinux@gmail.com, rcampbell@nvidia.com X-SA-Exim-Mail-From: logang@deltatee.com Subject: Re: [PATCH v7 16/21] block: add check when merging zone device pages X-SA-Exim-Version: 4.2.1 (built Sat, 13 Feb 2021 17:57:42 +0000) X-SA-Exim-Scanned: Yes (on ale.deltatee.com) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1656518768; a=rsa-sha256; cv=none; b=CGHiJLpt5seZGar/MYq30nj7DZE9RP2KRxELSeYiYbThzjbCPOOBJRynDzU21DKDqclwc4 +Dbi+/6w8kfsL9CXNLNU8oSIEZwdnlZ1udx+5TKMHV438hQHNae/nEPrOq2INVJIPPiYqJ G0S8T6yZwJjJqofYkUcuZ/G/gPxRQcc= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=deltatee.com header.s=20200525 header.b=nQI+rf6t; dmarc=pass (policy=none) header.from=deltatee.com; spf=pass (imf30.hostedemail.com: domain of logang@deltatee.com designates 204.191.154.188 as permitted sender) smtp.mailfrom=logang@deltatee.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656518768; h=from:from: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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7Il3Zmz7S/H0NpQetmZjc06R/zh7uKcDBAajLC9gk7k=; b=o7Gs1OfCQTdLrY+9XnK8yAXIvEZ4vT5xDIWArJ2zsernRZvcek01otSmp841N+ZGL5W14S DvklO9sbWtiFx6XFS5Y0tbzX4uWkUy0et6wgHVlVbEtvKO+W2C+xf45xhZQFVYEAcpHGIU V8YB2rx+ntUxS8Oys8tqfrMBCKphk/8= X-Stat-Signature: bhtzrxfnowpfgw4auk6xzuaa3cwa7nor X-Rspam-User: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7BB9280037 Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=deltatee.com header.s=20200525 header.b=nQI+rf6t; dmarc=pass (policy=none) header.from=deltatee.com; spf=pass (imf30.hostedemail.com: domain of logang@deltatee.com designates 204.191.154.188 as permitted sender) smtp.mailfrom=logang@deltatee.com X-HE-Tag: 1656518767-117900 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 2022-06-29 00:46, Christoph Hellwig wrote: > On Wed, Jun 15, 2022 at 10:12:28AM -0600, Logan Gunthorpe wrote: >> Consecutive zone device pages should not be merged into the same sgl >> or bvec segment with other types of pages or if they belong to different >> pgmaps. Otherwise getting the pgmap of a given segment is not possible >> without scanning the entire segment. This helper returns true either if >> both pages are not zone device pages or both pages are zone device >> pages with the same pgmap. >> >> Add a helper to determine if zone device pages are mergeable and use >> this helper in page_is_mergeable(). > > Any reason not to simply set REQ_NOMERGE for these requests? We > can't merge for passthrough requests anyway, and genrally don't merge > for direct I/O either, so adding all this overhead seems a bit pointless. Hmm, I suppose we could also ensure that REQ_NOMERGE is set in a bio before setting FOLL_PCI_P2PDMA in bio_map_user_iov() and __bio_iov_iter_get_pages(). Assuming it's always set for any direct I/O. I'll look into it. Logan