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 17AD3C36008 for ; Wed, 26 Mar 2025 20:03:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8C7062800A9; Wed, 26 Mar 2025 16:03:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 875102800A5; Wed, 26 Mar 2025 16:03:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 715A42800A9; Wed, 26 Mar 2025 16:03:04 -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 539302800A5 for ; Wed, 26 Mar 2025 16:03:04 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E2FDCC1204 for ; Wed, 26 Mar 2025 20:03:04 +0000 (UTC) X-FDA: 83264775888.12.7455CC0 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) by imf24.hostedemail.com (Postfix) with ESMTP id 0867218000F for ; Wed, 26 Mar 2025 20:03:02 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=qHBTSMi2; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743019383; a=rsa-sha256; cv=none; b=8gHNuT2rwfj7x7q9YIOpDdJH3sH1DDH3cUbumtXFz2O58gW4PP8lXP/2NGKYkOLVvqeSa+ rRVUo/URV6Yr3kbNaX71I11Rj1ddY0HR6Yqx3w45dIs+ktNDHbQKPWV6TItPH/sqfU4/pb 7kCYHqeyqXhACSRCAB2SceVcwU0MKBY= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=qHBTSMi2; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf24.hostedemail.com: domain of almasrymina@google.com designates 209.85.214.181 as permitted sender) smtp.mailfrom=almasrymina@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743019383; 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=+Jn/IScUMjS4Ljw3DR8smqRGBCJ5wuOgYhY7MDcFlHM=; b=3NZd6A85NC8fPrYIBLqH+K2mz3+mC3QMXTMgBlmcGPjUO9xnpaX3TNsFko9P40gCqbAxom ceYWnjZbHs7+MtaAeifAHs4jrwqxW6dOHrjVoi3Q0OxaNOX7fj5kEANvQFUE4WRLxeNFYv yAy7hAeF07KoMypG+YZ18XIRiD0Nuh4= Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2263428c8baso10875ad.1 for ; Wed, 26 Mar 2025 13:03:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743019382; x=1743624182; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=+Jn/IScUMjS4Ljw3DR8smqRGBCJ5wuOgYhY7MDcFlHM=; b=qHBTSMi211P72jdifgh+FU9Lj7/wlTri1lJMnWCd/9kRg8BihBURj1LdlOZk24eQev vt5f0PzYwP/EuO1j9Nshyru3/QMv08qyFnGaF3iEKEvvvMLGy+zyFi+hdgCk8mIfTi4o a0f7fOH31UnXhL7eSZgvr67bXv+S+RK91LKd8HsOng1oFopQiE58rXuGzu2MISjoy1ff c6upNmaq93ElGlrVlAYnrQPlMUhwun+n7G9UhspD7VnyZioINtQ2VnJ1uQte2zDhEHDY qlMA5pAdYYkQrSFd6vjYgAzLsFjInQ2yfLozlGgWJDQIuIhla5eTztMpKC+3F/Lp5pIR XD2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743019382; x=1743624182; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+Jn/IScUMjS4Ljw3DR8smqRGBCJ5wuOgYhY7MDcFlHM=; b=jZIkmvQ+Bzl8PoyPZUkE7AjK6sUQ4S4/gi4a/rhpHACVoHAxN4nK/+XVQEh5PDkzwf s6sjXZhESjPAXsog+gMVt+VMySOPlWE8Q/N30ZuDpvXdwbfbwUSvKgGreCqFGGUZtHl7 LDHXnh4Asr5lWITQ/p8lsa9tOfq7z+/NXnzzxZ24pvq7qmLqmNUj7OKt6c3inJIPXH1a IY2BOmebIu1NvVv3NQOHnlmoayFeFnIY/k6fp8d460FxQZ1QflnSJsu/TRPzbVjHZb7J M04sW1mL6XLgCxHe82fZIMTzWUCCVVecoxVCk92jWw1mWs0XruDi45R0Vx9ptDePrubE Wxvg== X-Forwarded-Encrypted: i=1; AJvYcCW8MC8SzoYfKX7/C8NrDQMJ1D3RMNk11OdiGKnwzWYRYXXI3UxBA9UaIKWi3oeydXytSxbylaOaIA==@kvack.org X-Gm-Message-State: AOJu0YxiUb9WXVr/4mJ0xxl/3VOF8yFzb1LLROWXE4LW/DfaeFITCcmv HlhfM6++pjaORA31Oqf3muXIKDpCr7PIhPudbgNxAco4mTgVpp7KF03ep36v2i4F7b+COwkn7XK AOCJm2bc6vWMh9iIWcyhmGNSu8XHLGUW54Uzu X-Gm-Gg: ASbGncvjBlA/VeftmyuP0ub6sRZ0GdgYKWwBQC+GLRCYLPFKuZpQhtQR3QTMaZQFRDB lRlrBF7LQykWLDfQPEAGmc47vd9rmr5gnTI7+VuDr2c21QTPQTyztUg4owRhW1NG35qeSA32T3E Uw+qzJ77as1oTtFZS1Yf8LoqCcJBjiVF6EmvMQcPKtUgDK+YfMisDZiEKZ X-Google-Smtp-Source: AGHT+IHyPZSjmwsfq6GL9V2mdi4AJh86d77SZIS1dGb/WuVS1w50xrfuefF5cJ781EQYYgtygSKDYkcpT6oW3EQsMpk= X-Received: by 2002:a17:902:b20b:b0:223:5696:44f5 with SMTP id d9443c01a7336-22806bc2039mr138385ad.12.1743019381382; Wed, 26 Mar 2025 13:03:01 -0700 (PDT) MIME-Version: 1.0 References: <20250325-page-pool-track-dma-v2-0-113ebc1946f3@redhat.com> <20250325-page-pool-track-dma-v2-3-113ebc1946f3@redhat.com> In-Reply-To: From: Mina Almasry Date: Wed, 26 Mar 2025 13:02:48 -0700 X-Gm-Features: AQ5f1Jp4SZZ5mE4AjxOxiWClioRQd_IS8oLYCgWXk_1st2N-aMHQasCWsZn1xYo Message-ID: Subject: Re: [PATCH net-next v2 3/3] page_pool: Track DMA-mapped pages and unmap them when destroying the pool To: Saeed Mahameed Cc: =?UTF-8?B?VG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2Vu?= , "David S. Miller" , Jakub Kicinski , Jesper Dangaard Brouer , Leon Romanovsky , Tariq Toukan , Andrew Lunn , Eric Dumazet , Paolo Abeni , Ilias Apalodimas , Simon Horman , Andrew Morton , Yonglong Liu , Yunsheng Lin , Pavel Begunkov , Matthew Wilcox , netdev@vger.kernel.org, bpf@vger.kernel.org, linux-rdma@vger.kernel.org, linux-mm@kvack.org, Qiuling Ren , Yuying Ma Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 0867218000F X-Stat-Signature: 64ddni3s33rebac69x713cnfmxxytmmd X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1743019382-633501 X-HE-Meta: U2FsdGVkX19F4qJYeLbKh0J/zOS46CxhCKGA37ybXAXIddTdxeNmRe089Wy/RVxkPsjGFvExb1etZBo4MdrJE0MUewUhLbHt3w5m9ls5LvuALwVIUjMGh0i1Ype2WUh/4IIIxD+wggDdpvz9l/W3FkvSn14xRSeBmunyHAPta9h9300vuWY8Xo2tA3PSHu2fwqAz1e66yvHhYYI+0mERrUt3hYsoiLCHVVuy33ikQazncpniqs+5quewwUYVUWIPZfN9VxTEPFhkq0zki2EIAmUWLAGG++TsUiDsR7rDqpexuugwCb7LVInFfbdeepM1LQXsBGk3zVDnNUfPgvoxGg/CiQ110cNWIMepaLnh8I2Sr/XFLx4TJTxuz1HaP4UkoL6VFLYBaQ7OLdUI1vyiREJDkA05Z0s00u+YN0Vuf+o/lEKeIMLZIx2RRjmTG7wh97JG0AgzDECHTDtfbYmZHSn/QtXuMngzpxPXl0VJ6HvAK1Ni4NoUzHJiOvfbevPzSCviMmvx+tKp47paoW/ySiFv+A909LXwraN1fydnghIOqZz/zJgz/yK8BmOcXL6OkFviEw0qwCRK9U2W03N+PLnUxTC3QKbtda2nd1VdKXE+zGrpq5sl2ibETUBHioVchLXa6MHW0AlzfGCk9Z+hKfHxE9SBEnr+CM0dxFl4/78P+q2VuONmIzI4qbiZJzsfgsTg+9wRYG8J4eu3CuLi9B+aKWU2tZbgErfBa0z5DtWlULpU+1jlFk/X3wcr893YBp0vXrF9cjCrm4vlZCLFGLkkaqchC8AT+rM+45i+cl8aOfP8kY9V0i+HglaJpAPINi3esrLp+cC2oaymkxONihWmE/QcqLVqTAELliIhU2JIHo/EDAroCv65/63UoQ/xi5rm3ufHStP5D2vlvuaHV7EFQJ0zYVL0v3h7vsSxYfdOGycSEBIBJwVUrPEWyHDoHFE6/4EgrRcoEFBuIrv Vn14Nu0Q GWDGP9UW0p6XzWmy4UQ+lnvGJIG79vUfnYPkA2LRz2Jj7IrehtlguruMLpQy/EbzwiRbAatT+wmTH/nQpxZFg70RDeR53LTx3bXgjLccjkoSWkmIZ+JlBv3fE2eNro3gwRsuDHmdFeLvSofDjjNKYW1GwHFn/tLiTHxyX3hu3oREgFaSK2e4jqA0OlX9rl319nFgNmGTNYUUhf4ThktVfzqPhOAr222QJ26M/eRWHqN8rk3GcOzr6+LdDm6jsHKG9RsL7tnybFGAp5QLD90zvBfO4k8vVR9wj5JHXfMi3YERPrrJnJiafq2ZlL+dBUlOwLQbD7bDnX1ZQ89Qjdl5QmJ4iEmJdpCBW+jxt 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 Wed, Mar 26, 2025 at 11:22=E2=80=AFAM Saeed Mahameed = wrote: > > On 25 Mar 16:45, Toke H=C3=B8iland-J=C3=B8rgensen wrote: > >When enabling DMA mapping in page_pool, pages are kept DMA mapped until > >they are released from the pool, to avoid the overhead of re-mapping the > >pages every time they are used. This causes resource leaks and/or > >crashes when there are pages still outstanding while the device is torn > >down, because page_pool will attempt an unmap through a non-existent DMA > >device on the subsequent page return. > > > > Why dynamically track when it is guaranteed the page_pool consumer (drive= r) > will return all outstanding pages before disabling the DMA device. > When a page pool is destroyed by the driver, just mark it as "DMA-inactiv= e", > and on page_pool_return_page() if DMA-inactive don't recycle those pages > and immediately DMA unmap and release them. That doesn't work, AFAIU. DMA unmaping after page_pool_destroy has been called in what's causing the very bug this series is trying to fix. What happens is: 1. Driver calls page_pool_destroy, 2. Driver removes the net_device (and I guess the associated iommu structs go away with it). 3. Page-pool tries to unmap after page_pool_destroy is called, trying to fetch iommu resources that have been freed due to the netdevice gone away =3D bad stuff. (but maybe I misunderstood your suggestion) --=20 Thanks, Mina