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 B4167C369D5 for ; Mon, 28 Apr 2025 17:22:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3F8876B0032; Mon, 28 Apr 2025 13:22:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3A6FD6B0083; Mon, 28 Apr 2025 13:22:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 247576B009A; Mon, 28 Apr 2025 13:22:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 040856B0032 for ; Mon, 28 Apr 2025 13:22:31 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 6CDE5BA8D4 for ; Mon, 28 Apr 2025 17:22:32 +0000 (UTC) X-FDA: 83384121744.24.257E4F0 Received: from nyc.source.kernel.org (nyc.source.kernel.org [147.75.193.91]) by imf20.hostedemail.com (Postfix) with ESMTP id B47401C0009 for ; Mon, 28 Apr 2025 17:22:30 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=dCCvX7rC; spf=pass (imf20.hostedemail.com: domain of leon@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=leon@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745860950; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5GZBa/47FHII5r3Bd/vKP2S9Pm6ZZUX7GYk9R5ZvQu0=; b=xpOk/diH4PKFgt2LzxA2WBc1BGXiT3fYPJclEUXweJr3rzbY4dj3kTCrQiVb1tYZgWbF4Q 7mqTdqJ0mJ+IxYf0JJSrJkHbHn8nGqUmw7H55pgGmOFFyqtJil8ZoWj4qZHHS39j2N/Ts1 dd021bKzo6AMaxyNOvSt535mF+fy/28= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=dCCvX7rC; spf=pass (imf20.hostedemail.com: domain of leon@kernel.org designates 147.75.193.91 as permitted sender) smtp.mailfrom=leon@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745860950; a=rsa-sha256; cv=none; b=Xwiq2AoM14VtNmvpdQrPtN4AYQ8zQXqJMv/xgtcZIFFTnkYUiv+h4dkjrS8dY0cKhEA0Q2 E0Wy4prl13LpTKOsUQxto5CG0lTSVVCNRfwLzHcUPkXb/02NMxC4n9OIcunfh6xec31B+b MHd+KrUxg4szrIvTjp/6aUGsv0ON7Q0= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id 36268A4B537; Mon, 28 Apr 2025 17:17:02 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0C8E4C4CEE4; Mon, 28 Apr 2025 17:22:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1745860949; bh=gYg74JiB5JakFxosXZhQLQiNqGZNU3mPT/z4lhxtdMs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=dCCvX7rC72JWr7s0YvTI7g9kE+dAdbJ9qPCeyBTmld4lQ3lxym1bm5n7CK23ZbPA3 4ZspxkotQfcA+i0UwXLwN+ARCHDhSheR12H/DrKO3QMjiR9Ix5T+qkG3Wq7c95k8Tz ocl6oT61kcsd5Tad4FjMD4Pn4uru4Gg4+Eu1WtxWXOO184jGJ4GXBgm5SoZb6Op0pi QZXhP9YFwutRlAOVwL49o6dg7f+L4Eee5j6ByGmpfbcxHXRKiLSTIAztxNr7Di0lAf zRT0ZI+MoU0PfyQuo6YBGUoloJs2gfsBYCL/17f3Mc9Ve1W2QoJQtDaZJQRRe0I+AR DNToLbBLnWQGA== Date: Mon, 28 Apr 2025 20:22:25 +0300 From: Leon Romanovsky To: Keith Busch Cc: Marek Szyprowski , Jens Axboe , Christoph Hellwig , Jake Edge , Jonathan Corbet , Jason Gunthorpe , Zhu Yanjun , Robin Murphy , Joerg Roedel , Will Deacon , Sagi Grimberg , Bjorn Helgaas , Logan Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian , Alex Williamson , =?iso-8859-1?B?Suly9G1l?= Glisse , Andrew Morton , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, linux-rdma@vger.kernel.org, iommu@lists.linux.dev, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org, linux-mm@kvack.org, Niklas Schnelle , Chuck Lever , Luis Chamberlain , Matthew Wilcox , Dan Williams , Kanchan Joshi , Chaitanya Kulkarni , Nitesh Shetty Subject: Re: [PATCH v10 23/24] nvme-pci: convert to blk_rq_dma_map Message-ID: <20250428172225.GG5848@unreal> References: <007e00134d49160d5edab94a72c35b7b91429b09.1745831017.git.leon@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: B47401C0009 X-Stat-Signature: 9f7xjdxrjxndanq3ubqjpd5oqnahaxtn X-HE-Tag: 1745860950-848420 X-HE-Meta: U2FsdGVkX19ej5QsNjDWcY1jpg5y1i0qwzfANOt2qGAt3SQe9tF2EX989Tn1Pt4T5BJRy7s0CB4D5TO16fPZnzPrr9HFN5mx3+YOCXdwKD6qtPvZ9jjdtGL3ltaPINnsBkViUJLYlVUAMc9QorTFV9JO0dBDfwhx0VvjpFyuqtUxzUqfYuofnJCeVYxwsCMXNfxe6/gIXXKvsp7NO0mCcf6Fs0Zn1la9OGWoY+MxaC215iy8Wz2jgiBTNwbwZb450HERtDzOt4oUiH0BRR7SZ9n+JcCjnaJKn2rNrPS7D5Xv1bRWM/xAp1rp/2CHxRmWuVZVgbJ+d3Y/J56P5EncjV0xi3LykT26HWa9gJnlxmvvEQ705aaUJwEtxShyCNMUeiYJsjdXTV4WFAywhc95Z0EwwBatuJgT91QmsaYL/dFu7Gpi4rDv7L8rpX3SKMv+c8RBnnPB/of6tGAngOW6SjaDGvnQ1vWGA0kAP3eta+0D1mBc0RLtJsksmiH2e9VHEcRqi2mYu0Jd79vUQZu5gig+rsPjhCNvfIAqtHlTm8b2qPSHuNjcAJtEHxANEA1lZyGbC5WRZ+ILQL15OK/jjBbfkuazfbP7wzdGR4BDn9zHNivMxyX27Hi4shkP2fkQLHjvUbYSGHj9J64jm835t6jn0qkQFoYz4qeuZq+Nr6VOx/qjLeEnRZi3k1ZNxT727mqJJZds0n9CZGzggs7ynU0PmbHWOrJMyt+LB9+GbKgZG8YeK1vcU6HSZt0Wf4kdLwTqMY8dom3lxSUmMmobxDbUiAV1eYsKco55VjIEi29NGWXMxZ9fdklCzDIaCx4WmiIK2G4nokbXoToFz7GaW3t+meOeVXcecwZ+LZOdKaS3ob4to49832Z37IMBvZMLNbLa+kiaKTq2MUjXs47ZdSgCRidYCGedk1rcaztaWc9JOUnzTNGaQQW32CEFSh0fGEMHM4iJl07TeOu8GlY 3XLWf2Np KHlWEkjalEE5GEKjF4xhdWrzvFbw0LQ4T4q6RAYA6XDaEFdugqA7Rzwn/dchvEhpA15DRcn+FyAmXEorobCzULLgRt/JVmEkUDPdGEJ6b2ZtflOSmk+V4k/PXDO/e9X9X13ltOgnXy78fBtZYKRUsgRUPX4BwVhncArLb78kp5DjyYA0lP+0ivdiX1wezoXigNEQee8RySFofGMEs43/qeTpTmzgCDHo6VCjuZQFSd2NNph2qYwhOyU2ulARmNRBwCIwN8QzMyr1Y71jHRFdsnY4/ZTsJkzJVVeuOf67RJJz52do= 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: List-Subscribe: List-Unsubscribe: On Mon, Apr 28, 2025 at 10:46:19AM -0600, Keith Busch wrote: > On Mon, Apr 28, 2025 at 12:22:29PM +0300, Leon Romanovsky wrote: > > + do { > > + if (WARN_ON_ONCE(mapped == entries)) { > > + iter.status = BLK_STS_IOERR; > > + break; > > + } > > + nvme_pci_sgl_set_data(&sg_list[mapped++], &iter); > > I think this should say "++mapped" so that the data blocks start at > index 1 (continued below...) > > > + iod->total_len += iter.len; > > + } while (blk_rq_dma_map_iter_next(req, dev->dev, &iod->dma_meta_state, > > + &iter)); > > > > -out_unmap_sg: > > - dma_unmap_sgtable(dev->dev, &iod->meta_sgt, rq_dma_dir(req), 0); > > -out_free_sg: > > - mempool_free(iod->meta_sgt.sgl, dev->iod_meta_mempool); > > - return BLK_STS_RESOURCE; > > + nvme_pci_sgl_set_seg(sg_list, sgl_dma, mapped); > > because this here is setting sg_list index 0 to be the segment > descriptor. > > And you also need to increment sgl_dma to point to the element after > sg_list, otherwise it's pointing right back to itself, creating a looped > list. Thanks for pointing to the difference between data_map and metadata_map, I see it now: sgl_dma += sizeof(*sg_list); nvme_pci_sgl_set_seg(sg_list, sgl_dma, entries); for_each_sg(sgl, sg, entries, i) nvme_pci_sgl_set_data(&sg_list[i + 1], sg); Thanks > > > + if (unlikely(iter.status)) > > + nvme_unmap_metadata(dev, req); > > + return iter.status; > > }