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 7EF4DD2A529 for ; Wed, 16 Oct 2024 15:44:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 13AB26B007B; Wed, 16 Oct 2024 11:44:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0EB496B0082; Wed, 16 Oct 2024 11:44:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF4F96B0099; Wed, 16 Oct 2024 11:44:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D298E6B007B for ; Wed, 16 Oct 2024 11:44:33 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EA3CC80610 for ; Wed, 16 Oct 2024 15:44:24 +0000 (UTC) X-FDA: 82679887080.17.9EE95B5 Received: from mail-qt1-f180.google.com (mail-qt1-f180.google.com [209.85.160.180]) by imf08.hostedemail.com (Postfix) with ESMTP id 8692E160014 for ; Wed, 16 Oct 2024 15:44:25 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=WNabhRGy; dmarc=none; spf=pass (imf08.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.160.180 as permitted sender) smtp.mailfrom=jgg@ziepe.ca ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729093438; a=rsa-sha256; cv=none; b=0bvaqffFeNICqgvcM+tTckgYiuBHXM9NTY/3yAmOeWzRF79I/DZr3peIyS82/IJWHn8bKI nq4QBnUh0ASz8MPoZzgOoA89ezeSQ1BPDlq92+Bz2Hp02sBTpsD/zW0JMjz6+QDF2qEMp0 o6MODvLkucP1tWffi1rYV8RAgfkwRDw= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=WNabhRGy; dmarc=none; spf=pass (imf08.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.160.180 as permitted sender) smtp.mailfrom=jgg@ziepe.ca ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729093438; 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=WQGH0HVIW9SU96PYTPyuC1ydSkg4GgQM+hqbTFWgoGo=; b=z7U4VZ/KzQy7sYU4QNB+uA3jYirjMsqsdDK4ZRq1gAIRuQ9NwX4eXF3DMw1yBSE2yzoQXA pe5Pd0emO17f6DW1ATArDbufSM7xrBrV1UMAW7R3TQgOtTo0Xs96h2KdR/M7OB7FX1sh1s wFz5aVmwGtFTFDuXcz3VgJ92c2X69yk= Received: by mail-qt1-f180.google.com with SMTP id d75a77b69052e-4605674e9cdso43743031cf.2 for ; Wed, 16 Oct 2024 08:44:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1729093470; x=1729698270; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=WQGH0HVIW9SU96PYTPyuC1ydSkg4GgQM+hqbTFWgoGo=; b=WNabhRGymm+1IsFhjYET0o1mm7J1rSShAJFN1EqY8ShI0NurpnOGUib559BpydMA1z fDx6gG88zCwWTzn3oiemt8w+73IHDjzjcnfK1BwYSt9dfxaHQsmPCw7Mq/QfRF4NEYxU 31YqhcQTXnFyIAvoZj0tggr4/MNg3kZlTeYzFvohQ4IsBFSxQgdNBmGx4fP2FgoZGOpx ItDjnwjcDCQGxlrfnOtLufj1Ksnvov4eP5PKvIauG6P0UyLh7hs8jEZKc5/jmq8EZZ7y 3ZSHG0ExqIH6NHsMGWi0UF4yKQOpEL8I/jqkaCLeyCTFua3GNpni9Yvpp0F+wzBNv2fk GWVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1729093470; x=1729698270; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=WQGH0HVIW9SU96PYTPyuC1ydSkg4GgQM+hqbTFWgoGo=; b=krjyPliUZZAMoyXXD7hMDKiK47mbrUgT5kp+2k7biuFWpiSaIFF6eTUIfQz5DHaK8w QdV/Q7bflfveNfSds2kko1pU9/dK/28QZ41taxuber7yiNowaw1x3MOFR9C1F4re4GNA vBx8uRsuRHepkRGoA4Oby7gNSioTwbVG1sSXmTYXNTnCFtmyh1VHImIMxn1ZOwUpPSDz PYFrxE2RpRm37I4XUra1THtol6W7JPfFl/PeiFv1Fr0tE9U5L7X9fEjL37/B6N79jcOi fgXdN8+g8XHT/GUWcPds6Ib55zNLtrxSWL/H5kJ9u+2ApHTTllDaJijGDwWtoteP+1ia KZlg== X-Forwarded-Encrypted: i=1; AJvYcCW5oEOFBGxBxbSnZBorr+nKxePAwAz6//mGl+2w3RfgaaI7hlhcoMc/spTdBo74De3dB9tCYD7HZw==@kvack.org X-Gm-Message-State: AOJu0YySb5VIvsG3QHzT+gz3PDaBV4Zrr+GQj6aFEnOwIzNkDJk4abuC U32vnVnaPuqsyIGDuGz0PW0kIIoUg3+QxhO+iA8BsV6OvgyUH9yskZ5wFrWecws= X-Google-Smtp-Source: AGHT+IHphNZzLqFYrOFx7/ySDq7sBcTOs9Dks5qU/HFioLD65ljv8EK1dQjanMksDh9hLfIE6iUrIw== X-Received: by 2002:a05:622a:2608:b0:458:4bc9:e949 with SMTP id d75a77b69052e-46058424bc2mr231836401cf.22.1729093470391; Wed, 16 Oct 2024 08:44:30 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-68-128-5.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.68.128.5]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-4607b0a6760sm18990161cf.6.2024.10.16.08.44.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Oct 2024 08:44:29 -0700 (PDT) Received: from jgg by wakko with local (Exim 4.95) (envelope-from ) id 1t16CK-000COv-F5; Wed, 16 Oct 2024 12:44:28 -0300 Date: Wed, 16 Oct 2024 12:44:28 -0300 From: Jason Gunthorpe To: Christoph Hellwig Cc: Yonatan Maman , nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, linux-mm@kvack.org, herbst@redhat.com, lyude@redhat.com, dakr@redhat.com, airlied@gmail.com, simona@ffwll.ch, leon@kernel.org, jglisse@redhat.com, akpm@linux-foundation.org, dri-devel@lists.freedesktop.org, apopple@nvidia.com, bskeggs@nvidia.com, Gal Shalom Subject: Re: [PATCH v1 1/4] mm/hmm: HMM API for P2P DMA to device zone pages Message-ID: <20241016154428.GD4020792@ziepe.ca> References: <20241015152348.3055360-1-ymaman@nvidia.com> <20241015152348.3055360-2-ymaman@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: 4phsa84a5u3ziwffa6zsp3j3de3zudks X-Rspamd-Queue-Id: 8692E160014 X-Rspamd-Server: rspam02 X-HE-Tag: 1729093465-100146 X-HE-Meta: U2FsdGVkX18l+qB8DpAkA9iKY7tyZGmtek+xV6X3nyDJgMgvB3q8OMz2d5qatI59FeeVW3jwB89+pTVqA4YfibS/g7qEql14idpnW/ze7xhV3DcgiP8DSJY0DjCmy2HJy7Ae65rHrTQACMgPYChab2VKxgw+6EaNpYLj/9QHnK1cs+CG9bNbFia6nGUtUf3q62q0s9cpe6CC7Ym9oBslwBW2YGKR8BhLHRayQzUw4V/6J1ZFgOiMS4W962jnLFUpMA3prNwWA7Ll3P5Wc5vdHoT7ccVY/FpO0BdodXKKBbf7/bXXaKCzRutUROsSrjb0LqiEXDO2TcLfhkRJT3ClerYkd3ceGCGeB3JnVTVpRIVYvsAkAO8XOgz2mxHV0XLG6cVIxDUYDDikiJ312aTqd5n86w/SDRq6vee2IKm1K45cRMgHF7nhTT6/Ds/u0X7B+K5x48O3rFIwCJe95DO4AvtL1pRumNzB7PWricuyPYPCc7ymx5+De+w3jAOVDDCgVlYrJKnTHUBXfkv+z/TJUjEMQtI6u9jS3t1osLYTwQV6bEVydXy++vK/JYD4J6dqqUlXDDvlPODAYxpVcfn6Mxoz0KpLntJYcPClglXxwZR+h71l5gaSin3VTFVGeaeOhDM7c3MzQoShxC1VfGX6S8WtOFHGaVVm1q7ap6JBh4LlIvHyRx9EWFzN2Soaf2MhEh5cNEOWmnvYaIFgpeSUCxCeyY9UvMcO0+oUr+UBVq5vzihkMmlou9j9kpXRbpTutngfLrOgpXVx66LwrkpegPAgboLb3/9dP07JEOuu4Ho2Un59fscg1PrmBAN1Gl7wPaZ/tD238QRl/3d4DdVqyyJ+z5RtZtMpEvw4v38mvEe5IYxSMZV2MvKwlKROcc6uM1aYHebKoWgoX3WtzAxLsuGmN3s6OjjgQ6Gb4AzylJWuKxNozffYe5QJ3s7791465qR05KeQX9EyeLEZGjx P3HalGsu eVx67FTjVkwWnaYy4UbjQ8DTkfRqROKgpErgeRBb3IEWbALlLC4ACpyhYVl1eZKbXGnMI1A1M696U3U01EiE65CHndXDnaudPw5heonGOJQBzvlARWMO+Mef3jlz7pyT3v6pskU1kj8xvJsCjOI9pHziqV5R87MzKzV4hkhnnYYwcle/M9lHf32fe4VgJkzL2IV/Vd6y9g4XkeKO7XISjz6hp38IJiC9DmgZNpNpny+phAMP8xGQrXFED1xAb1HqHp9cBvautvSdKcdxWDYcoMQ0YskNG6gTBkjdC 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 Tue, Oct 15, 2024 at 09:49:30PM -0700, Christoph Hellwig wrote: > > + /* > > + * Used for private (un-addressable) device memory only. Return a > > + * corresponding struct page, that can be mapped to device > > + * (e.g using dma_map_page) > > + */ > > + struct page *(*get_dma_page_for_device)(struct page *private_page); > > We are talking about P2P memory here. How do you manage to get a page > that dma_map_page can be used on? All P2P memory needs to use the P2P > aware dma_map_sg as the pages for P2P memory are just fake zone device > pages. FWIW, I've been expecting this series to be rebased on top of Leon's new DMA API series so it doesn't have this issue.. I think this series is at RFC quality, but shows more of the next steps. I'm guessing they got their testing done so far on a system without an iommu translation? > which also makes it clear that returning a page from the method is > not that great, a PFN might work a lot better, e.g. > > unsigned long (*device_private_dma_pfn)(struct page *page); Ideally I think we should not have the struct page * at all through these APIs if we can avoid it.. Jason