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 B973BC3600B for ; Mon, 31 Mar 2025 17:27:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5A72E280002; Mon, 31 Mar 2025 13:27:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 57C33280001; Mon, 31 Mar 2025 13:27:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4917C280002; Mon, 31 Mar 2025 13:27:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 243ED280001 for ; Mon, 31 Mar 2025 13:27:49 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 71B16C1A24 for ; Mon, 31 Mar 2025 17:27:50 +0000 (UTC) X-FDA: 83282528700.22.3D6EBE9 Received: from out-172.mta1.migadu.com (out-172.mta1.migadu.com [95.215.58.172]) by imf25.hostedemail.com (Postfix) with ESMTP id 8FD0FA0008 for ; Mon, 31 Mar 2025 17:27:48 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=cKM3VAQR; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf25.hostedemail.com: domain of yanjun.zhu@linux.dev designates 95.215.58.172 as permitted sender) smtp.mailfrom=yanjun.zhu@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743442068; 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=kruHksm1UUrwgJcBmXQdaCtoFTJLiAQJ5TstMyZdLT4=; b=BQXUGQrk9OyG9W3zsfOTls2IJsKSV2jxG1EEQEekQ6yP1qC+KTvbi9fH7XYZnXKKD4BYJ2 f4Ddj9PjpR/BctxZ7/RnylKXjXd9K0MJzfO1lN2M4yOXPRhlc+YI5vGv/Cz2j4NxUtZBPc 7p5eRWgGLEmWtaiKkBoH88kBEyAgVIk= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=cKM3VAQR; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf25.hostedemail.com: domain of yanjun.zhu@linux.dev designates 95.215.58.172 as permitted sender) smtp.mailfrom=yanjun.zhu@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743442068; a=rsa-sha256; cv=none; b=F08E810xE+YvoTnx0ukfwXt5iDDrx+XxsPBG1kxCzWmHEiJ0R+yYAAVYt43TQ7NQsibaGq 0HBguYeGIjeDBOQ+eEn1/GqFZOLlsCo1VfJknEFfPoo/TZUmljYR5BbgUP4Flle90OxoA/ EOTNOukoantyY7eWLfbt31DbIaSOMR0= Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1743442066; 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=kruHksm1UUrwgJcBmXQdaCtoFTJLiAQJ5TstMyZdLT4=; b=cKM3VAQRMbRUBvKmepdeEBvKKrgCy/aUrmWomdFtLQYbrteR3LStobDIBjyp0Bf616W2DD GazjbLQ5wO4qzhk7O9yg33pE6Bdq1WL0P+96eB0TX6hi++7CMqbxBqSM9Lo1iSQOK6eLjz z4IcHW8TKxH7M/eu4P3RguPEEjaAA/g= Date: Mon, 31 Mar 2025 19:27:40 +0200 MIME-Version: 1.0 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 , Paolo Abeni , 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> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Zhu Yanjun In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam01 X-Stat-Signature: 3k35t4q3tff7zfektzc9cn4p4cfzwph9 X-Rspam-User: X-Rspamd-Queue-Id: 8FD0FA0008 X-HE-Tag: 1743442068-793685 X-HE-Meta: U2FsdGVkX1+T6KRiThEI0qccYvmjPcnZMWUXZWPiLQdR0uKUbuCOnF/eQlu0rpWCGac3KH88HgLhuBIFgqjV5eKIslSwZIf7oA554Rfn1e8Gvl7w63cpYOVjsiyVG45QNaHIrhRWjSVPG5TydhU4oPS784XtwKCTrwCvqjVmIwt0k6Cc1uFyhraCMSBu5ACGW9yasvPsP4RD9rD+i0xugzr9r+VH+Cdqo2JPzbLVif/qpszMW2vlctO3Qw5B9jRAsjvwvN8w8jYDysmbW/+9oxrnRiDbQf5Igu7mVw+WUdPMRhXZl8FeUCPia+Ko/L9aGSXwBGDmLiNfE9ADAmIbweH7aenvWY++hQfy9nttnIr2lD9sL1Y/3MnmrZ/t73MmdvFstmBqBK1RDKLPlSpEF0HRRTg4ikCbXoZiWnBs+Jz2mzlR5FZ20BajC23TyHgPQqNhN+sqWgnW3ZOI8RSIuGvZ+OCAXCPSL8cmTUb7kO+5J2dBHkq2KYU0tRggy83hE5tOv8SNjBTPBUUXLZWN58aQBQFJfVCnzzfDM5etiVrjSBGw4snntbdR3q+Z5tMng/9iKtuCLzOco9jd12kLGHRSYsoRymdFF2e5qAcqpFM7lEj6R3E6Biwqe7qCsu/dDxJmo8NlPv1CH+pXWjY6BSY7YanjSNNuMYBjF60Z2MW0qOClQJcHZ7j0AeotiuVYQKLauoCBGHvYZpzGvdhrpK1Z7FLR4XewUnswsL/5GtH1hRqynaXWtq3BHWmASzmXjCiiTWBJfkaYCX2NBAcIqW/0nM4FrvPRVq4bQmfTWw0rlUg+dTc5u72MSSvCtUSJ3dRmsm9ONS05mMeBU3ev1tRd8tW8C328djzxJp/Tlq9h9TXzFyqshBDupD5cgFbVYR2JhIhpsGKEKSPvIdRFX4rwXqfV+yU7gpB63qAZgx1pkSSkFDY1mpSXq+/KN8Ek7ZmQmYUAomqQlpFN3i3 D7Q8xO/N deppRjG064xG+T0a8Ypj2GQ5Lb6WEm+0G++bKEJehV0uIkWTZOCaKev0qJn1QHnnvfPkRa3XBCHzjtGQYZRdOeFagv7Cj+9xKKnfpHSo6TB5UrDkowZkY78Upe1QOAynJj+gAV56/q0KyKtgaRbo0TKjWce60bOFKLg2RnlbYPOwr5oNqw1q0FrlVIAU20M6LWinJJXhkWBsBHOjw+8mjVzcffdaARfK7S3n7RDRjUlpbQNwi1xxSvsk4YTF0RA6sHAq42U4pipzZ37JWibU2udj//1HgXWJwEysD10PjC4qXt2/j0Oqjjgyr2lSukOKAI/vTXxwmUbBMG3IPC0G6KUqFrJhSm+bALTfzzU/9cOSr1Ic= 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: 在 2025/3/31 18:35, Alexander Lobakin 写道: > 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? Perhaps test_bit series functions can test the bit atomically. Maybe there are more good options about this testing the bit atomically. But test_bit should implement the task that tests the bit atomically. Zhu Yanjun > >> bool dma_map:1; /* Perform DMA mapping */ >> - bool dma_sync:1; /* Perform DMA sync for device */ >> bool dma_sync_for_cpu:1; /* Perform DMA sync for cpu */ >> + bool has_init_callback:1; /* slow::init_callback is set */ > > Thanks, > Olek