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 49B27C36013 for ; Fri, 28 Mar 2025 14:18:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4271280002; Fri, 28 Mar 2025 10:18:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DF1E2280001; Fri, 28 Mar 2025 10:18:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C92F9280002; Fri, 28 Mar 2025 10:18:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id AB355280001 for ; Fri, 28 Mar 2025 10:18:46 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 07808A7CAA for ; Fri, 28 Mar 2025 14:18:47 +0000 (UTC) X-FDA: 83271165894.04.F535922 Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by imf16.hostedemail.com (Postfix) with ESMTP id 4C88E180008 for ; Fri, 28 Mar 2025 14:18:44 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=LzJ9hYAu; spf=pass (imf16.hostedemail.com: domain of m.szyprowski@samsung.com designates 210.118.77.11 as permitted sender) smtp.mailfrom=m.szyprowski@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743171524; 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=lO48Yx1dRxN6L1ypDuwiGhfZgN4Rzqi6MuK49Ng7t8Q=; b=wnaX7Zrkg8NfHurReK9NkClkE/KWdJSCF5saZjFnL7TNW+N12JiCSlXnh757OEreV3gtFv ek2xrAHl1qMoQ0i2dqsbvxd20XcvcD0gtjaVRDR9zhHer7riQoTZW0SWhrb8IP9dxJZ24b edD1lS9oivGk6lRkuJnxPYwREf0tnrU= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=samsung.com header.s=mail20170921 header.b=LzJ9hYAu; spf=pass (imf16.hostedemail.com: domain of m.szyprowski@samsung.com designates 210.118.77.11 as permitted sender) smtp.mailfrom=m.szyprowski@samsung.com; dmarc=pass (policy=none) header.from=samsung.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743171524; a=rsa-sha256; cv=none; b=rrpPaLMjVqmABjmkDnalF18jSiS9vtYtcC4hLFpr3QuGDrwhzo96YYo6VxL3vP/lF2s3PQ 2olatkLfGvRsGivFoUF0zYuv1+uxBf933bKuE4Tfkzg08UB0F8SO1qSbWFtONet03NVktA 9W+hN23CgfWetkgx3EzyF+XIHj8hjig= Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20250328141842euoutp0156e1a0ddee34514a30c9b6faa2f3d860~w-UOCzU852877728777euoutp01i for ; Fri, 28 Mar 2025 14:18:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20250328141842euoutp0156e1a0ddee34514a30c9b6faa2f3d860~w-UOCzU852877728777euoutp01i DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1743171522; bh=lO48Yx1dRxN6L1ypDuwiGhfZgN4Rzqi6MuK49Ng7t8Q=; h=Date:Subject:To:Cc:From:In-Reply-To:References:From; b=LzJ9hYAuVORDdpPDNoaAsSxqQPvxAGN70JzbeWTmHFXBBQgApzHABzlGOwL7v/NTq Bt8Py3MY06YHzpCwrOOD4l40Zl0MQ/FF8ERl5yImACnQCUZssD16PAHT56NCF007wz 90uDi0LLMtuZPUD23/QJMqJdaUkIsTHwBiJmT6tk= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20250328141841eucas1p1619292970847f923dcfe86bb5c47ab46~w-UNvtGSP2939129391eucas1p1d; Fri, 28 Mar 2025 14:18:41 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id C6.C6.20821.1CFA6E76; Fri, 28 Mar 2025 14:18:41 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20250328141841eucas1p246ea46aed1be0fbf2d32f4681bff0ebf~w-UNT_XZY0412104121eucas1p2i; Fri, 28 Mar 2025 14:18:41 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20250328141841eusmtrp2242bde5cbf852d9b3900ec6a0b0bf6da~w-UNS7Wbt0154501545eusmtrp2_; Fri, 28 Mar 2025 14:18:41 +0000 (GMT) X-AuditID: cbfec7f2-b11c470000005155-8c-67e6afc17b98 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id A7.C7.19920.1CFA6E76; Fri, 28 Mar 2025 14:18:41 +0000 (GMT) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20250328141839eusmtip22afc9ba3e6f88769393f971c378bbae1~w-ULzCb-Z1176711767eusmtip2M; Fri, 28 Mar 2025 14:18:39 +0000 (GMT) Message-ID: Date: Fri, 28 Mar 2025 15:18:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v7 00/17] Provide a new two step DMA mapping API To: Jason Gunthorpe Cc: Leon Romanovsky , Robin Murphy , Christoph Hellwig , Jens Axboe , Joerg Roedel , Will Deacon , Sagi Grimberg , Keith Busch , Bjorn Helgaas , Logan Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian , Alex Williamson , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , Andrew Morton , Jonathan Corbet , 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, Randy Dunlap Content-Language: en-US From: Marek Szyprowski In-Reply-To: <20250322004130.GS126678@ziepe.ca> Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Se0xTVxzuaW/vvTS2uxYmR6cjqWEPl7Uj2eMsoLJA3DViHHu4jOhYM+8K 4aUtdUyTiQRhFiYVZYUWC4yCCAQEZlGUjVZmyxigAzbpamFZqQg0rMg2pWaM9uLGf9/5Hr/v /E4OyRNfwjeQqZnZjDJTni7BBZj5xsOhFy2tHsVLDyakqLK1GUd/LRXjqOlOCY5MeSnI3VMI 0IWm77locQGhinI7QAbdFBedNFwkUKn1Z4DqvJcIVFl2CJ1drOOhbscLqKbAhKHhrkocuZqX +KiqfpJAA0YbjjzWLzFkOrGMvE4dhix/uPmoZWYOQ52jeXyU73wF1ZcJYjfSbouRSzcbmwHt GfUAurpdTQ+52jA6v9fLpzsattC11+5x6eEBNd3eeBKn2+dLCdpe7sfoDtMxeqqjAtBXx3Jx uvbUGf5bYUmCmANMeuphRinb9pEgxVVTzz9oF+cUjw2BXFAl0oAQElIvQ1/hKE8DBKSYagDw xm0bPyCIqQUA68oBK9wHUOe/Ax4nbk3cwljTeQAnF5JZkw9AX4WTCAhCahtsah4KTsKoSDhd 6uCx/FrYV+EOhp+kIuC4ozzoD6XiYY/5dNATRkngt12nicBQHmUmoH7Kxw0IPCocOtxVQYxT UVDj1eABHELJoLHfxWc9EbDTWxncB1LdAjhWNsJnrx0PB4w/rKwQCqdt3xAs3giXrgSGBgKF AFb7x1cOWgBz7zpWEtHQObi4XEcuVzwPW7tkLP0GvPnnb0SAhpQI3vauZS8hgqVmHY+lhfCL AjHrfgbqbS3/1Vpu/sTTAol+1bvoV62pX7WO/v/eaoA1gnBGrcpQMKqoTOZTqUqeoVJnKqQf Z2W0g+Wf3f+Pbf4yODftk1oBlwRWAEmeJEy4fsStEAsPyD87wiizkpXqdEZlBU+RmCRc+PV3 JxRiSiHPZtIY5iCjfKxyyZANudwd+2y1u+b6x/UciSlyZnechJIl1vSqZt3xYW+WvL6Gsz02 YSH577vX7Rfn9xr2J3I+3AOjYyzJO1skv86F9l0w+jBfQbT/uPZHTsMnxLqxWUPao63D+4jo Pp9j73ZTI6mNsHlEZnlqvPq+9omchznvlnNadr+2xmI/luY8/JyhbZ1+fCDhF//+9WrzB73Z 5DWdKi7JOfn5SIzrq9B3PC5r0YBXTt/Lcm4KGQlXOaHm2d8TwvqV08pXW+OSrh6dLYrdLNqE Py051/P+2WzDoevwvYnJK/NHyrr37Kiwt5XUDmYZNw++/WDnrqPFx21bTxX10ImyzsjzUzmX DdKZR/lTeRJMlSKP2sJTquT/AioQlFtIBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrJKsWRmVeSWpSXmKPExsVy+t/xe7oH1z9LN5hxkc9izvo1bBbf/vew Way+289msaQpw+LJgXZGi5WrjzJZ/PpiYTFzxglGi9nTXzBZdM7ewG4x6dA1Roulb7eyW8yZ Wmgx5ddSZou9t7QtFrYtYbG4vGsOm8W9Nf9ZLeYve8pucXbecTaLZ4d6WSyWtAJZb+9MZ7E4 +OEJq8W61+9ZLLZfbWK1aLljarFsKpeDjMeTg/OYPNbMW8Po8ezqM0aPBZtKPc7f28ji0XLk LavH5hVaHov3vGTyuHy21GPTqk42j02fJrF7nJjxm8Vj85J6jxebZzJ67L7ZwOaxuG8ya4BI lJ5NUX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpOZllqkb5dgl7GvYXL WAtOCFX03DzP2MA4n6+LkZNDQsBE4uKDiyxdjFwcQgJLGSVamtqZIBIyEienNbBC2MISf651 sUEUvWeUOHNsGSNIglfATmL1mvNgRSwCqhKvJt1ihogLSpyc+YQFxBYVkJe4f2sGO4gtLOAi cWDbRLAaEQEliX27JrKDDGUW2MEucXHXcSaIDc+ZJf52HwLrYBYQl7j1ZD7YSWwChhJdb0HO 4OTgFNCXmHf6HitEjZlE19YuRghbXmL72znMExiFZiE5ZBaSUbOQtMxC0rKAkWUVo0hqaXFu em6xoV5xYm5xaV66XnJ+7iZGYJraduzn5h2M81591DvEyMTBeIhRgoNZSYRX8sqTdCHelMTK qtSi/Pii0pzU4kOMpsDQmMgsJZqcD0yUeSXxhmYGpoYmZpYGppZmxkrivG6Xz6cJCaQnlqRm p6YWpBbB9DFxcEo1MFldaJWPjrp8esKyTQs39a9UPna0699GGZvqxVrZ/Os/tK/rO79/ab2J le6Uzt+/AhhsVefceLSfwc2YK/L/qhsbJhX5r/apvuecIXGXNVfrpphdj+vqWS9UbEVy4h+d 3tdz9A5zYfifi62yU6vfK7judn5w0HxL9cmj999GxvsVFSzI1Y3945SdYOV8c+HLvHPfmoML ub/+mO0treTxo55p5XXxsB2/whqjhP+eLsgL2tcUedx3oU79lK4bbzka1PjS7TU9NfVnBPuY TZ4n86Bp4enTZSr/Zq7ScXQ4yWjM6u63uHD9G/HCo4t4nQ7yRjFMZ4yT26/+vLKep6HxZe73 Nk0v3w9bvGdOc/mrpcRSnJFoqMVcVJwIAGW+P3ncAwAA X-CMS-MailID: 20250328141841eucas1p246ea46aed1be0fbf2d32f4681bff0ebf X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20250228195423eucas1p221736d964e9aeb1b055d3ee93a4d2648 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20250228195423eucas1p221736d964e9aeb1b055d3ee93a4d2648 References: <20250220124827.GR53094@unreal> <1166a5f5-23cc-4cce-ba40-5e10ad2606de@arm.com> <20250312193249.GI1322339@unreal> <20250319175840.GG10600@ziepe.ca> <1034b694-2b25-4649-a004-19e601061b90@samsung.com> <20250322004130.GS126678@ziepe.ca> X-Rspamd-Queue-Id: 4C88E180008 X-Stat-Signature: 4f8a45wnsq7z93rgfq85n4fh7cqe7mp5 X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1743171524-55457 X-HE-Meta: U2FsdGVkX1+ibRyUEHt8W/ZHeQYhDhdnqFgGzF4XOJNMDnVZfs9HYUAlJS88/TZEMRDvyjqAozeEh8V/N3Hj4WBHaD7aqBxNU+XqAyBJkHxePxnojz+Joccpp00+DL3AJO4snl+UgrvSQ+PsPu4kigHsUOkyyCBiphOd0pvQ7f2HUQi6Hyf9d5AYwj8nsht7vS5zhV0R9s45VuzNvU9ePHCNgEaAtqGbDgFm2U8wpVuvYfYcV2uHX39ZCfAGyKef+GDCztp/t0olnXwm0YxZzHxuOdgjZc65mTsVgZhOd2haEF4AQIF0mz2q/F8M/sjSjWBgdRyLiSV/zffX3r2APP60l5/pwZj9r2IMGyXXgr4YtTJg4FdRjL797H5ZWc4NuiUheteQOWA+7rsCXysXHMxbOzm8+z1C1h3nBiVJPOcmmImG7W7qs+YJdb6dCBqUkK+Wl/0DWcWGIv/NHZ0j3HOn8u136tA0EDnJG3pOHfBTa8YlnqyGS2Kk1XKw6ogex+BxQbnfif2BFEU1jNVHUtYwCHagpXqgyern+3EHIX1U1cUJs77CoTGFxO/d+2e7atQu/HNIf52sazyqB/q+Dk9pbbJ2ZmcKpxZ9BRGLInLOvZFYQHHrqkvvQL2RznW5Ro2v/0YAdoBFwN3ufra4jFQzfOYbgJJ2SMrzlOrTi33wr8dlzx45IXetGkvjzsEeB4ejrN6kLseaQh2csDQzD6Bb4j68CNUgoC/k7d12MIbkTVoWPE+YiVv95MSP6zX+/8dw7qJBW3PXXTOWdjtz69mGeZAdl/GI6ZVjxgDd/n3MMvU+wrrpnDNMZP7L7RqvB58guSCwsZAerMRVhGshR1qLZXc41WXQoVbv0Zj+koMMLMrupcHLjCDeSjmrrMwbh0CMC0TJ1yw6U444Zmm6io7P06PxCd3/Ghx90glrXPQJabTlkXpRuRv23vMhFeOoo5U9IOZvIQlUUjjEXDY dIb2UCL4 +FXrV1fg2Tgr8XpYj+8Xs6Gfhcvf/aXkWOdJdxLNs67EmUnGFmQt5SBltCxBRalgZDlb6HuObNJB0756e1eqKPtAycqUfdHddm1y7d4qN/RthbL1JEGEoMvvyrBrx+tbWyLXV 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 22.03.2025 01:41, Jason Gunthorpe wrote: > On Fri, Mar 21, 2025 at 12:52:30AM +0100, Marek Szyprowski wrote: >>> Christoph's vision was to make a performance DMA API path that could >>> be used to implement any scatterlist-like data structure very >>> efficiently without having to teach the DMA API about all sorts of >>> scatterlist-like things. >> Thanks for explaining one more motivation behind this patchset! > Sure, no problem. > > To close the loop on the bigger picture here.. > > When you put the parts together: > > 1) dma_map_sg is the only API that is both performant and fully > functional > > 2) scatterlist is a horrible leaky design and badly misued all over > the place. When Logan added SG_DMA_BUS_ADDRESS it became quite > clear that any significant changes to scatterlist are infeasible, > or at least we'd break a huge number of untestable legacy drivers > in the process. > > 3) We really want to do full featured performance DMA *without* a > struct page. This requires changing scatterlist, inventing a new > scatterlist v2 and DMA map for it, or this idea here of a flexible > lower level DMA API entry point. > > Matthew has been talking about struct-pageless for a long time now > from the block/mm direction using folio & memdesc and this is > meeting his work from the other end of the stack by starting to > build a way to do DMA on future struct pageless things. This is > going to be huge multi-year project but small parts like this need > to be solved and agreed to make progress. Again, thanks for another summary! > 4) In the immediate moment we still have problems in VFIO, RDMA, and > DRM managing P2P transfers because dma_map_resource/page() don't > properly work, and we don't have struct pages to use > dma_map_sg(). Hacks around the DMA API have been in the kernel for > a long time now, we want to see a properly architected solution. What kind of a fix is needed to dma_map_resource()/dma_unmap_resource() API to make it usable with P2P DMA? It looks that this API is closest to the mentioned dma_map_phys() and has little clients, so potentially changing the function signature should be quite easy. Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland