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 C35ADC36010 for ; Tue, 1 Apr 2025 12:06:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 759DA280002; Tue, 1 Apr 2025 08:06:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7093E280001; Tue, 1 Apr 2025 08:06:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AAD2280002; Tue, 1 Apr 2025 08:06:34 -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 398DB280001 for ; Tue, 1 Apr 2025 08:06:34 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 5B62A141758 for ; Tue, 1 Apr 2025 12:06:35 +0000 (UTC) X-FDA: 83285347950.16.EA74790 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf24.hostedemail.com (Postfix) with ESMTP id A38D8180003 for ; Tue, 1 Apr 2025 12:06:33 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Rvk6MeDm; spf=pass (imf24.hostedemail.com: domain of hawk@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=hawk@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=1743509193; 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=piJsUKBcAm3ceTDThxHRvOqHJlvf+gEopGJMy9H3OGI=; b=MhfcJIoTAQLMUlGYFFlCt/NgPMR5qoeUC3XRJk66a6oE6IjIJQzOAEMYsU1KE/KtxqNQaS UI+KC74uOjHhBK6DpUqThOZvwy6UPQmw81Xjp5j46cpIjzN+p97Abuxg7tHdlt2opE89et G9ilxkTDZ4O+mL2RCTjQSF5gSMCIbC4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Rvk6MeDm; spf=pass (imf24.hostedemail.com: domain of hawk@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=hawk@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743509193; a=rsa-sha256; cv=none; b=a6R5pyEl0u+6adDJyOFj4zFK+UrNhxCiGo+oBGaNrnlBd2op01eWujNzt5kxtsa6wYw0xa Orsz8xSb0iawZB2EXFzuJtOVMVl7D92s5ig3VHviZAGj+sAuxrxoUGjcLEaYW9MD/m5Xow 2p1ak3H3RbHtxnTFWQTklCJUngsIjhc= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id 55AD86115F; Tue, 1 Apr 2025 12:06:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 873B7C4CEE8; Tue, 1 Apr 2025 12:06:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1743509192; bh=CRnBBfKiBkAb3cUjNA/B/iRx981Mv9LKsxYmj/RNlLg=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=Rvk6MeDmK63GVH1XIKwWav2P0xogDfvBhfKwxzdVK6jV9c6lqX65/5gq4thADkGQQ Y5/1iOtGYYAKIUR2fPrWt8ROBvqIaCe3jParFA3J9dN+BHHUNxuYUdHm/nGss3Kuyb Trp6v852VqT+CHxtuD7Ft55WHV9zOex4j1gsLqkGLBQ2dEFUI0ezOe6v7vD0+5ORin ZZwUKAoYDDtmjeazbjJRchVKFzzCLHM8abTtPJ1H2Wdwu50YdkT0Z9Lq1uzblisMdi kwRxpRC/Bk9YTdUFM3y2vit21MPUCuUWwDxbNpVg+OVgGKjW2rSKJhJ+FRk42i5rZ4 3NJvnlwr84GAw== Message-ID: Date: Tue, 1 Apr 2025 14:06:24 +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: Pavel Begunkov , Paolo Abeni , Alexander Lobakin , =?UTF-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= Cc: "David S. Miller" , Jakub Kicinski , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Andrew Lunn , Eric Dumazet , Ilias Apalodimas , Simon Horman , Andrew Morton , Mina Almasry , Yonglong Liu , Yunsheng Lin , 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> <7488e6cf-e68b-4404-aaa9-f4892b2ff94b@redhat.com> <6d1e3c98-e28e-4d30-bff5-1dada745f722@gmail.com> Content-Language: en-US From: Jesper Dangaard Brouer In-Reply-To: <6d1e3c98-e28e-4d30-bff5-1dada745f722@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: A38D8180003 X-Stat-Signature: 141x7ohydsf655f6uxs84ip381tbwzwu X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1743509193-572163 X-HE-Meta: U2FsdGVkX18WbxkWpAGdWqr0DElUQ88vjyvIQlNFse9CbfKn1UKUNCF4nHGUEyXjpRvZDER6nvwm0TgseolGMrqPQMoMDFKmwm/tPZ280j1ZX7KWjKmE2Sl4onkHUz7xzayq4s0cuTbPo1oS/FFq1+mQPNFy3n+ZMrPJ0jiR5mS3xuxWSLBLlFu7E32u5jt9aDyiCy9UdbMoYBlW3VLU+ntTcEuL+MiZ9oJl9oopCEfkvWEhF4iRp4Wc4nNqACBRCHlehc/lHUVXx6+DmXuoWtiogtzmXZK9lJdudS/QBFGlFRFwYFu286gDSc4XzSg8iYMtJhBnocj+jGY/p5IHa2qht6nMJ2ydFlvpxJbqXyJchSbINyIGrdIX+cC8CKEj6x1qEsMPxe+tKG5VcuqNeTPw4N8YJPcnM+yi7A0cBEck2449gu9+1mVTlFuVl8+HJ+ZZr3KHyYJzAz84bSuHW4eAx9wYTOZ57Sj3bsW59xtb0XN3EMfg8w8SbJvVSw77b4b4xSPFrLncq50gBnvvYGE0pTWRnfRUDcPYrRSdnc9kciopYf2a/oDplntrZ+UlXZx2K1lNN7S3ZguF4tKl+mSS/Vpqn3t+0ryffjBSxpBDldFTv+95ZXqzeaDpcE+sFjWkaKPgzqoeyAyWBh7cMxMlzlLDGoC+DhGhtcOWyQvTNFyUdlKCRcBUXzztI2fUbTEbCr5+vzIF7N45QM8EtimBn6CYwYjDH5HeDYum7UKf+qIyw5w3+XTLRQR4Qi+gCBwM5LdTZd7vSaVjMtk+Yp67X70EVY5Ri/aKu7eRchIfqa4YV8+Hvzv5J740Ppz9gTfLYCKjqJxQ6v5/rR+XcZp777xiO+qZyC3jenuVAJUvz/7Bn0laL/mX9AyOUeGb5Hzky4BwApJUFKwzE7XuxZPRDQVBR20NbkpRq6zQNsrclFXqREUMs8TaDg86HmWekzDZvp9TN8CeqgFhLrr 3lLPNHGN kVHj6tUTONPUJezFwWbGX5QkblP1vvA6nDKO/Olt9zjd6mhofFJZ4QULHMATL/h8Rr03xb+FWWHCCykzZiXY8pm+TgVxBnZYM3uZzddFB/6fZr6OHpLuFCqgij9PuHf8wEqXV4Ajiv1ejyuaEERR6EyczFBCRSFR76VXFdxulqQ3dBFaFEMX+tYASQWQ8loC6SgRzRuhwabWQlrWsqKpK0Wm5w+kfjg91cqAZJPXKXbzl66FC21cMcZF3VCghDSebq8bdZojz3s3UeE3lZYNotgmnQLRKGmNlhMuSjG7ZYFgKYR3y8iz5QMy8p6iP5Q9C6S2QDS/Bhtp/3Yu7VB+HZ+wYOjPQhkM/s+rwAFz90TK9fS64qBW7qhDHGpqLDEZuS6ac8J9iUnifXhgoTEyWuqSju/+fgKyXya4U/wN5SgPpaWPtUmGMJcJv2A== 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 01/04/2025 11.51, Pavel Begunkov wrote: > On 4/1/25 09:56, Paolo Abeni wrote: >> 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. > > I agree, it's better not to overcomplicate a fix, and we can always > return to it later. I also agree. No need to do atomic bit operations. Let's not complicate the code because we can. I prefer keeping code readable. --Jesper