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 56BA1CE8D61 for ; Thu, 19 Sep 2024 09:42:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 802716B0085; Thu, 19 Sep 2024 05:42:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7B2E26B0088; Thu, 19 Sep 2024 05:42:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 679F96B0089; Thu, 19 Sep 2024 05:42:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 4B26E6B0085 for ; Thu, 19 Sep 2024 05:42:54 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 9F7FC1C54BE for ; Thu, 19 Sep 2024 09:42:53 +0000 (UTC) X-FDA: 82580998626.06.1347952 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf07.hostedemail.com (Postfix) with ESMTP id CF00740019 for ; Thu, 19 Sep 2024 09:42:51 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WNvFUZlI; spf=pass (imf07.hostedemail.com: domain of hawk@kernel.org designates 139.178.84.217 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=1726738821; 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=Eg0aw/JsSDa801QveFhK5iGJwVmtnC/bbMMJdc1DKK4=; b=4Ja45YKcyt+JoIT95oHxJML3S7vLyQBYXEuNfF017F61OADnkmg+R3iVuGUdYABPmuuKcO nJYbG7hpsxUg5OFkScRxeQNtXb4TAw81JGeFYFtaRu3yDURfq7nvE9+MrccSraSUdwerup rXb3SrkxNLAuimgG6SJ/cGIR3vAIIJU= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=WNvFUZlI; spf=pass (imf07.hostedemail.com: domain of hawk@kernel.org designates 139.178.84.217 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=1726738821; a=rsa-sha256; cv=none; b=O7zc/F4uKAA9EoFcLYXwWjltDBnpWdSSA2auvloPph+KS+my5+wvn3kxhy1zGqXg2qnq1i MCVbtPQHjehN8lbk/iwrxAFf4EFkcWTQZ7oDfI6Iux2qYwT+MTJc5YyViH4jFDDQ/nYPb2 fOrPQtT/FoQva9tZzFYgH5dYVuAz1jI= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id BDBC35C57F2; Thu, 19 Sep 2024 09:42:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DBC7FC4CEC4; Thu, 19 Sep 2024 09:42:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1726738970; bh=4mBPJ1/8ZHYMdSjeFFRdSDpez+20eaW5Qpk0ZxpyplE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=WNvFUZlIeZCdtFKQ6JJfXg22qRTupBYLgnu8Znpgj7u9GzB9cb+oCuqkGaUUFXqZg u3FLl6T6Dc6z14wmNEhM9sxXlKK/hnTLT7l41VAHBzniRkxJuoPGhWwQEozIgpKcqn e0kS1YGW5Ob7pUpRgtI7MbGmwk2xVRYMaz+rj6ubfII71lcBL9BipnzLBPVQDxC0s+ 6tii01Hw8+gMcMOU9sr4JhVfid9pQ8djWVDTMMnYh2tWVR7phPjsbZwqdPYB+N9hdB cnocJ45KkOqJzUN/IKhO7vvYPYCr6HhVzm91jSPJ6/m++FZ0VQT1lV4F/UgLqGCLlU /zO3c8TS5wTbA== Message-ID: <894a3c2c-22f9-45b9-a82b-de7320066b42@kernel.org> Date: Thu, 19 Sep 2024 11:42:40 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net 2/2] page_pool: fix IOMMU crash when driver has already unbound To: Ilias Apalodimas , Yunsheng Lin Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com, liuyonglong@huawei.com, fanghaiqing@huawei.com, zhangkun09@huawei.com, Robin Murphy , Alexander Duyck , IOMMU , Wei Fang , Shenwei Wang , Clark Wang , Eric Dumazet , Tony Nguyen , Przemek Kitszel , Alexander Lobakin , Alexei Starovoitov , Daniel Borkmann , John Fastabend , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Felix Fietkau , Lorenzo Bianconi , Ryder Lee , Shayne Chen , Sean Wang , Kalle Valo , Matthias Brugger , AngeloGioacchino Del Regno , Andrew Morton , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, bpf@vger.kernel.org, linux-rdma@vger.kernel.org, linux-wireless@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-mm@kvack.org References: <20240918111826.863596-1-linyunsheng@huawei.com> <20240918111826.863596-3-linyunsheng@huawei.com> Content-Language: en-US From: Jesper Dangaard Brouer In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: CF00740019 X-Stat-Signature: ipy6parrejnhq6xf38zq9cfcethfkymt X-Rspam-User: X-HE-Tag: 1726738971-985675 X-HE-Meta: U2FsdGVkX19DkCgXvesQf2SthjPi5++tflyI1DNU3IlCMebSFyYSTb+yww2rSf5j/Lol0f89UMliVp63ECShRlq56NSjVJ9ZhELUMmPI/DI6Mxqtb3Uii61lxJoyWRYJcenMVZ27+oTFUrZmgWv1NFkXnDOEfbgA3brOZVVKOXuZknqxCA4gBujXimDDh0GNQYvVdCa442rRFq8LbcsJMfpymL7FcBY4/yQSui3ZU1fzOr5fAv0IFkqq0zNqugUHxCi1U5TMvk0AU2n+jR1KSdDJGk9Xm57tkmDy29EEX4T4oKC3G90YC/gA+aRmxZWtZOT+FiwCs6HSaplrcmaJcZdGEH2DfOEYPOnXyoujXcioNL6eFHuCnJfOYEt2/54txchtJcuBuRbfHg9GwqiR3NG7273oh5M+eRYk5B1Wwd2kCLLt2m9WVZit+dUvOrpa2AU3vT0hae1HTHYbqJWN1tXEHlEz4tc2gtDj++GdjRpCG2RSWAXby4ozTtRU0Pwdje/KnWPX+yYQEAF94t+ec8tdxQAymKazaWgChfnckRwevS3PJn7MiwlrAp0h7bFj+XUkAoJQVCpu9zuB/LfH6ELKU1AobHA12vkZP0maiczy3uWLelOrj2q1Krm4TsMKpcuf0jb6WF6F3W28fGVk3xs+S3GNDNaTW6jSQvA+E19L1XRFQg8D+YunA7jSqgzq/Z5VIH7Eb8R/GBtS66AxSoiviKsh8vrKbvoZ2nnvt9pUTA55BRlDfUYToQkMSXVBla0liNLYHluemNy0xofZg4GAe3Cu7y9l64io3rlWCYPAb5yOJq/z40rqUS//hrwySxtfuLovViiSsefuKa/vPwaEdq5k3aQWsRv3cIUdEwVnJ5aBlOPJPglP6/ivl3wVOzIu9SMPH4hcD2L658un1cze3tBVRvxzhi/CJod5tq5c3m7FHIZAPa2aP9+7ESOkyWY1O/QZ9zpN6fB/bLE rVLuGo4P XyCDZ9P7PVHCl3tHiWf2atuZhDKwxTQgEb0mRj3CaetkQmq5je8/5yGfBi+jfskIGaRMUzgjZS/rXnuj+hopp4b3nWS0FNzOJ+qGHNO5oQgOjBo8PlBlozlkF0/hzrsNX5uzCbrS1qgDtJ0cniCq6E+tAzClYt0cfuegqFw86ZMgdcq2+PC/aUXhCTiAvVm/R/FdbM0oH9amPCPSan7BYZyB0H0P6OxGP4p34TDQj0VsLygH07HjCeVvogl1iEF6Q346uGOtcvGTtIQb/fYapfzIahivh2VYyCB4WHxHnkWuThjoWOjjrwmbNuc1Efich0MkLikbOYK5l+Mc2THB6SYRdOdlPk1uCCjG07RbBKHDZtWgfl34ymT1q1tb4mZB6e4Om 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 18/09/2024 19.06, Ilias Apalodimas wrote: >> In order not to do the dma unmmapping after driver has already >> unbound and stall the unloading of the networking driver, add >> the pool->items array to record all the pages including the ones >> which are handed over to network stack, so the page_pool can >> do the dma unmmapping for those pages when page_pool_destroy() >> is called. > > So, I was thinking of a very similar idea. But what do you mean by > "all"? The pages that are still in caches (slow or fast) of the pool > will be unmapped during page_pool_destroy(). I really dislike this idea of having to keep track of all outstanding pages. I liked Jakub's idea of keeping the netdev around for longer. This is all related to destroying the struct device that have points to the DMA engine, right? Why don't we add an API that allow netdev to "give" struct device to page_pool. And then the page_poll will take over when we can safely free the stuct device? --Jesper