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 024EEC36014 for ; Tue, 1 Apr 2025 08:56:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BAD0C280004; Tue, 1 Apr 2025 04:56:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B5C15280003; Tue, 1 Apr 2025 04:56:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9FB97280004; Tue, 1 Apr 2025 04:56:07 -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 834DB280003 for ; Tue, 1 Apr 2025 04:56:07 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id CA2D5C2010 for ; Tue, 1 Apr 2025 08:56:07 +0000 (UTC) X-FDA: 83284867974.10.3F845A1 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf04.hostedemail.com (Postfix) with ESMTP id B28554000C for ; Tue, 1 Apr 2025 08:56:05 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Xa1b5g3B; spf=pass (imf04.hostedemail.com: domain of pabeni@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pabeni@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743497765; 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=/EOGpZgMMwI61gNswk7Hqy4zEoEqDiKfuBQe+kGOmzE=; b=CEwku5OHKxDE17SEHXTBmt8BsobBdkw22KKk2f4Ke8NG6Tda4APBRnPS0NEzR+DGLDivFA LZWg2qoZBYgSq2CSNb05DRwh1KxPbv+KHoFTm0xmyY7pNsSMpDCoFButwluK2RWcOnHzkN oQVn1Ho8dJzbFScrN2qjkHxCtUAypWs= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=Xa1b5g3B; spf=pass (imf04.hostedemail.com: domain of pabeni@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=pabeni@redhat.com; dmarc=pass (policy=quarantine) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743497765; a=rsa-sha256; cv=none; b=bjEMb64CTUFB7H/JEEAO6wt7LdG4dWHYSqKKnw+S5nfHmCluK6TzsAtPkDZj6UjQJDtF6F MDp6eXqFH2M+2gX5HGh43ziX5Zkx4Fw8k1f3Yvh+3igEpxyGvzGK3XMKe3HceUCKYv2BJQ uroa4DbYN6msvpWlvWfcLT3gAE2TAQs= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1743497765; h=from:from: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; bh=/EOGpZgMMwI61gNswk7Hqy4zEoEqDiKfuBQe+kGOmzE=; b=Xa1b5g3BriYlUA5VNSoObwldecuYJmbPxvW+fI6QgxRaN3T2RbHY22klk0qX064bGWF6Rn SEHx6iEeBhwbvu+24L36vR2OJ2Rz42he3E3LxY3Qyo1NtNZQoNYwUmEj5bBiUuyVQYVhOv WTn9YJCswgrpSms3VJ3wrX4PMLGvfbE= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-427-2VF1jsNhOgS4DGZy6WmplA-1; Tue, 01 Apr 2025 04:56:03 -0400 X-MC-Unique: 2VF1jsNhOgS4DGZy6WmplA-1 X-Mimecast-MFC-AGG-ID: 2VF1jsNhOgS4DGZy6WmplA_1743497763 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-3912b54611dso2830513f8f.1 for ; Tue, 01 Apr 2025 01:56:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743497762; x=1744102562; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/EOGpZgMMwI61gNswk7Hqy4zEoEqDiKfuBQe+kGOmzE=; b=LcolftJaagsMeb32vWQftOcTmCF749uA0YLomsDifXSo3zFObrW6fOCHoM7/aHop+O 1718aqavXJI57+uPouoa+JzG+/HRB+qi0oUf6Vx68ZD64Y29aR0/ACTvn5IehXsH4cTC wgNqWsyDfdFJRXigFvUkNur977jDBD6lw4Lrrvj8s6m+iDNg0vATSkkTqW1BsAh7TRYn qy5VR7757sI0LcrdxqTJ/s/qhXdBaxvChdhVCyRHEyzVi5ixInPTu6t6rqw+C89LKc0b sYTpZSybdRZUI8K04kg/uAvQlXZ7ioqRfNCoC8ku6+NMkX5JR1vuyoRBwBuwN0sLLrQZ IEsg== X-Forwarded-Encrypted: i=1; AJvYcCUSeIBD/Q2A3uTFwDW2SFFeyDEKkn4gYnBtev1UVdOQiqUXx31LEmLSp+p32ZglWgdLS0gY6kOcEg==@kvack.org X-Gm-Message-State: AOJu0YxfX2FpJmsKenUJc66Nhx0a5s2Lo8AMOp+xNWeo0YKH2dzyO+b+ llhUven6VpykYnN8oN4BOSIqILjMnAH+mPrhkcrodop9noFmvlF3vYk3UIQtqtWb5DjwEHi/1BQ Cmcz1TBwZVFINFfeF+xn1Sss2+YmEKjXmT7YfButPOifLeSAu X-Gm-Gg: ASbGncu7iYCwiixbLy9Yzqu56tS76MURyO83YcgDdBqPhvnavugeDDexvSzBXw6zNOL fCoRntSgXg7liHOI0Zly9ZM1GOFfTJVIXII3E0IS+e42fO1VEzuQ5RvPOFSLiwjovZVLxQloqcq V1qeCyEs/sRLxMdWkK8KXpKCl86gqEhbOqMklV0yYwT79pen+2+oNAO8SURw9XfXhKMQ+f3JKP7 siNoh5LmgGyhqR6dh5LruGMqkTEKEjhv6Pl8eXk9IEUFIBRE6ks9YU30JHZ5Dm2CAP9kwx4BXy2 csaPvE4OQXlzPxvD1zcdkheToOEZuQUpQ/STZ/Yh8Y4NWw== X-Received: by 2002:a05:6000:2913:b0:391:122c:8b2 with SMTP id ffacd0b85a97d-39c120e1566mr10357884f8f.31.1743497762638; Tue, 01 Apr 2025 01:56:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHPPFEHn5QvMX8T7Toc4UY1OJQWioAVuAJM2JZ1z1ZDDcbJGmm1kVkDwd+dzHOwCnzyaJepwA== X-Received: by 2002:a05:6000:2913:b0:391:122c:8b2 with SMTP id ffacd0b85a97d-39c120e1566mr10357860f8f.31.1743497762256; Tue, 01 Apr 2025 01:56:02 -0700 (PDT) Received: from [192.168.88.253] (146-241-68-231.dyn.eolo.it. [146.241.68.231]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-39c0b79e141sm13581555f8f.77.2025.04.01.01.56.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 01 Apr 2025 01:56:01 -0700 (PDT) Message-ID: <7488e6cf-e68b-4404-aaa9-f4892b2ff94b@redhat.com> Date: Tue, 1 Apr 2025 10:56:00 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v5 2/2] page_pool: Track DMA-mapped pages and unmap them when destroying the pool To: Alexander Lobakin , =?UTF-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Cc: "David S. Miller" , Jakub Kicinski , Jesper Dangaard Brouer , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Andrew Lunn , Eric Dumazet , Ilias Apalodimas , Simon Horman , Andrew Morton , Mina Almasry , 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 References: <20250328-page-pool-track-dma-v5-0-55002af683ad@redhat.com> <20250328-page-pool-track-dma-v5-2-55002af683ad@redhat.com> From: Paolo Abeni In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: OYfVgccuyjyXjQBF-NecxpntbASNfP9P7bGE_EFWCv4_1743497763 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B28554000C X-Rspamd-Server: rspam05 X-Rspam-User: X-Stat-Signature: 788fc76gauppaztq8a7amsjb8k7zay4q X-HE-Tag: 1743497765-696979 X-HE-Meta: U2FsdGVkX1+pdOnlZYjet7MM8Kg2MZySy18Z4u1aEA3bYc1HugR3a6lhOPSF8fUXDtE0hVa/XV7MwH0iWWWvczjTAIRFxdkMGwULSkO4naw+rDd+SsbrwRESi4rKnpUytBhP2a6F3lt2aosDLs2iMaglikVMMCoh53t2xy2eSxyKP2MXDzWXCUIkPXbfpTy9Os9DMpWxFk3fyn06nWBIHJXW2DelGjSvCqWohF96bRmX1kjE7WxNQYhQ8JiNonsHcO3Np9zu8l3lTkB+11+oukNzVelrJCCLgIrXIql8fOtlnl1/wjSzp1dRL7kQl3EFgFWeMA7CkybLUhp0kzvWjcn4uE4tRK0xuudJ155xaZKRdEvamci3+F1V3F6laxeItS3mvHcLPUkD1uSIcyO2kT7nykJUN1ZabbV6r77NmXrjBuleDph/QlBx57/FUEeQc/poJTC2P1SWJ9kH7VWTrr2HwMx0m8t2vV1GaJWDPsQXGwSz3jJQ/2JcXQfKT/SBIXV8PlMDnGACi4xQNqGKKd83VswpFtP7Je40xMSoQLl8lFQKh7xl6bFuGkouQ1Zl8C0oVfpR8SQ82nMcAmXn0ixc/0hogqR9h4q/0rQdO9HHEQ1PJwCbhb2/Zw97TJmaNv1o3nKKM312siJ7yG43rLOuMJvAzSxs5G+b4j3tH0pM0Uf4DAzQ5tMetUvrENfPwtRbx7z2O/c9FegwgcPyoPLYdfQziejm8RcW4BK02ruAriiLbv2xlQlXfEgZWcyuQyXQvHiQ4Z2bcxNW4JWgTilt9vX8Pd9ZO3wsdx7IXKkjuoD4VvgbPjU4uqRdZ4srqbs1V8hUSuR5ugm0hhm0/uUYPHPCIFxrhQH9B0ypZSW9BXlh3g9OPkkuu3+mfm+/TwOupNGr5W88ALRPlzNv/5YDcMxwsHuMBPyE4rzBhOnwLHz0svfxOgVveCgKeEicOf8p2k5FTdF5rTrlTtP fPJ44dXF G8sL8wAI8rET27Gujv67qGkfz00to6JOdiLv1xtli8vMRWbWIxR9m+7r+edq8frdzQygaRaSz+zmmqnKComRKX3HmXNDQwrl6NyuhmX44PzNyZjB3t60yBsFAdx/z+LVAYNQcVTuh2OwrhzeQl9N+1sftIhjRwP4k4DX1BdDrB7WzjIw= 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 3/31/25 6:35 PM, Alexander Lobakin wrote: > From: Toke Høiland-Jørgensen > Date: Fri, 28 Mar 2025 13:19:09 +0100 > >> 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. > > [...] > >> @@ -173,10 +212,10 @@ struct page_pool { >> int cpuid; >> u32 pages_state_hold_cnt; >> >> - bool has_init_callback:1; /* slow::init_callback is set */ >> + bool dma_sync; /* Perform DMA sync for device */ > > Have you seen my comment under v3 (sorry but I missed that there was v4 > already)? Can't we just test the bit atomically? My understanding is that to make such operation really atomic, we will need to access all the other bits within the same bitfield with atomic bit ops, leading to a significant code churn (and possibly some overhead). I think that using a full bool field is a better option. Thanks, Paolo