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 02EEBC28B2E for ; Sat, 8 Mar 2025 12:34:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A08096B0082; Sat, 8 Mar 2025 07:33:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9BA446B0083; Sat, 8 Mar 2025 07:33:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 859646B0085; Sat, 8 Mar 2025 07:33:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 695826B0082 for ; Sat, 8 Mar 2025 07:33:58 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id F381F1A192E for ; Sat, 8 Mar 2025 12:33:58 +0000 (UTC) X-FDA: 83198325756.23.1D81929 Received: from mail-pl1-f196.google.com (mail-pl1-f196.google.com [209.85.214.196]) by imf11.hostedemail.com (Postfix) with ESMTP id 0682140009 for ; Sat, 8 Mar 2025 12:33:56 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="l/E/063n"; spf=pass (imf11.hostedemail.com: domain of yunshenglin0825@gmail.com designates 209.85.214.196 as permitted sender) smtp.mailfrom=yunshenglin0825@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741437237; 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=xrHqPe4qI/nAbruW3F2vRPvWp4Qoww7mexetKwU+H74=; b=Pmj1a3ro+a2JyqRJwinMzXumknpCSVY4v++Jv9R4XeRceCtAKVwVGMg1Ya103sgCMlQ5Mj sSZ1Aq5bofht1yMCA138Rr3xgpgaGg6CFiwsSK13Skupcq0obxNkrG/cOAGOlTrHfm61b7 7ZRemcGejXNaXuUYStgKNwKhU4+jfo0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741437237; a=rsa-sha256; cv=none; b=uYY/hw9xCTdxLptx2f/ZxuvJRtOhTqUja/O/0r+6h1HqqtsVCevqiB5ase9VQxkLaCwEXg VZJRuxbr/uRUs1/I4gFC4pzJ5J40uYbCMuRQxf0rY2req/vX3vH4EpTmf3J9/uCq0uBTpm ISV/HZzeMCQ1boIrllPBOY+lwprAAsg= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="l/E/063n"; spf=pass (imf11.hostedemail.com: domain of yunshenglin0825@gmail.com designates 209.85.214.196 as permitted sender) smtp.mailfrom=yunshenglin0825@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-pl1-f196.google.com with SMTP id d9443c01a7336-22185cddbffso70967215ad.1 for ; Sat, 08 Mar 2025 04:33:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741437236; x=1742042036; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=xrHqPe4qI/nAbruW3F2vRPvWp4Qoww7mexetKwU+H74=; b=l/E/063nyhaw8gIBPA9P9JGtcruT6AYJa67/2kXGFOtaNSpY9StldZzOpoWvUp0w0w nHAHeWq6RbAEk6H/zqXoM95/DiC1E63B29QUmIW0qMPZM1FXO+Cx08aE/BNyhIuv7V1Z 2AYOCz72lwkG3lmacaXZKo49oA3D61iTHA9b09rfWkeEeQusYGHpFv/iZV00OK5vp4+L pDW9r4l9QcjYtZbc2CXEBZB0ku3ab338ahJ3uQ//AnRgAMX7ux0PILldfqofk0ujRrb5 bkSNiEHbYz+eOexGXeqzZMTfrs6FsUgqHcyYmBFc6JqdQ79XjACvmOGUkRxbp+wg00Y6 bQgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741437236; x=1742042036; 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=xrHqPe4qI/nAbruW3F2vRPvWp4Qoww7mexetKwU+H74=; b=O6FRDMp93wmJKJqKvVyDyJFhk5wFIIHBTXjC2k437wQgE6SZxCtVWyp28menBxQ02Q pYzKUbsSw4clrKxETmPv7MbnOamVC0qdC/CeWnPLVx6YZPwM31K57LB9FhEIeoqYkj6U JRs4ShR4zyoDPVBVlgKY2fsVOdAdPBJESSTkrlG/sv03SiBJXLOr7XDo816JlfogBa3z UO2yeFhmHEqz1Fe93QC4Qug3DmY2UFKC3H4DHI18Y1pipfaJ4gsPhL1vTpIbwzzXCS4L R+8ed9qayeEzD2RIEmLKQPzYoyblm3Zi/RqarCrjDGA/0J9Rdq8aDUvZgIZYsZk3VA8B Ke2A== X-Forwarded-Encrypted: i=1; AJvYcCVrrOq3lSxt03b9vt2dYmXD1drLsIjTCY5puOggctrpqMEIOtn7ZqJNVUqQ/3z96FsCXhf2vp+drQ==@kvack.org X-Gm-Message-State: AOJu0YzcjWPqpSJzSsIa67xd1NLZi0AEfwY65ShHwrxqcWBh59r4K790 6V0sWRRlM5W1SA193VS2TQob685SFQSi0x1GlYA9VIXUyCY6GG59 X-Gm-Gg: ASbGncsEX4lKifi3NqvdFOfG2C48AZ6+NRV96CA5+2ParCe3Vx7SkRjRVRVD574C77b NjcxcmcLVAJnqqjR+04sKwaGdyBs+nnI7smU+qvfKcW+dJFh5lc/rD2s8tIWy2wrdQqsB9bE3lA SV0cFeIO8QYcsVLRPAWIoH+FUT4g18IRsxEnleBftR/RiVC1Pgv/wW8Sot0mGBlHsIzTIbbI8sG TmzQ75fw4Va0OZ/KaU4wCU+nB00VIkaAMbhXB06VJ5TPU5uuKoMie7b2uBEi6Kvl7Losz+jo2M0 k7AqWyWK2r+8byjP3hcuZImffLpvPgU8BrvE6ffMv8kDlHieR2+PMA20vTjyvtgYO9a6DXLwnUs 6+vZgI+gKYSaT0NuxRgsQXP+u9SW6Q2Ro X-Google-Smtp-Source: AGHT+IEq4oVqwhl+HcBlEEt5O5mLwczA0MCHU/VL6TVKG4WcVGMzJn/E2qe19p7uaCmDiiGmZcFF6w== X-Received: by 2002:a05:6a00:816:b0:736:aea8:c9b7 with SMTP id d2e1a72fcca58-736bbf4af5dmr6123665b3a.2.1741437235636; Sat, 08 Mar 2025 04:33:55 -0800 (PST) Received: from ?IPV6:2409:8a55:301b:e120:9c19:1482:d401:437c? ([2409:8a55:301b:e120:9c19:1482:d401:437c]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73698450244sm4918282b3a.80.2025.03.08.04.33.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 08 Mar 2025 04:33:55 -0800 (PST) Message-ID: <40b33879-509a-4c4a-873b-b5d3573b6e14@gmail.com> Date: Sat, 8 Mar 2025 20:33:44 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH net-next v11 0/4] fix the DMA API misuse problem for page_pool To: =?UTF-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= , Yunsheng Lin , davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com Cc: zhangkun09@huawei.com, liuyonglong@huawei.com, fanghaiqing@huawei.com, Alexander Lobakin , Robin Murphy , Alexander Duyck , Andrew Morton , Gaurav Batra , Matthew Rosato , IOMMU , MM , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Matthias Brugger , AngeloGioacchino Del Regno , netdev@vger.kernel.org, intel-wired-lan@lists.osuosl.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Eric Dumazet References: <20250307092356.638242-1-linyunsheng@huawei.com> <87v7slvsed.fsf@toke.dk> Content-Language: en-US From: Yunsheng Lin In-Reply-To: <87v7slvsed.fsf@toke.dk> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: 0682140009 X-Stat-Signature: 6p8bfna5jqqjfbtmc5ujs4igrxax5sua X-Rspamd-Server: rspam10 X-HE-Tag: 1741437236-351133 X-HE-Meta: U2FsdGVkX1/OhOO4LDUrjNCkt6TCHNTAsUirTR0A2NRDnO+qiWbJzQIgsKIsKsB3rhv1JJOXjtS1qTFHDCoGBUofPliH4cmCX++W1yFt8wsHPlqL7HLYJwE2025+o2nH2PDMBtMmSe0A/FCIRsPvS/zwUD9ALI3R5E11s6VB4eBVodijKL2EECYIZq45JU5UIlyTKDLmGFRREnN79VC3HaVSdJtQ2wQ7uL/AdA2alt+wVM5y8ssDSbAZ9/dWyjYrYd92Rp+NO5ssgxbkwNmxUCYXr3mYLbAOAJfbTTdDeYvVF4aqxAC7Pt61zp73QzX6b1zyFYhFepUxA00xH7vAk+wM1xHqJLQ2uauOPMlCX2QS82gVNAb8TSiW9XZbaR3hrhKjLA3NE8JtriFK7pJlDajhMR6Ijx/ZcyLQYvOsWhuTGNdAH6bkXfRGkv+1Nm8BS0hh4A2sTDj1knBbnhhkHs1ZIRkYymPHkTeR6TrgWX6uLt10avgN9mr/QlZBw8op+Ah4fV3Zdu2sOF/CClc89gHMQLFQGS4zYLfrOmNic5p7BqJXHqD2FNK9WRY1optoKq3Vn6guJCrZvuWL1GaOa7hhR2kjrAUHpviksXYioQjsgjpoKMMtTYdTCyv9m77z3++aRG9EoHFa8OvA/zjPzcgZrR5feXPmTRazZPsug/TE14c9KBgMTWSrhW0ft0jLLHu53qCvPLVwRMozzqgyz8iuJTG2GR8gCG+oc8OB0CrovK2sp5UHH5MGuR5uAC+pKyFsOvqGNrxYjVydvSEz81vtS1kWe7X+Dr4q6JPLlMhHpPf6tp0oettHIjPfI8n334WMcooAqrmjZLykK2YZnj4ZrCdkDo39Uw4o8Vsqoz3OGEih7Zh5wrpQ9V3M6KIyaTWI/5uh3h36TPs8BkkBZbqKsLJbGMHJSm339Bps21ipRc1ACPS+lbL5YJmrqFlztehwfUNxchy8TIvcf6R 8kQJOSBL gYaPVTQpj9DPBEW/uX5gmxXbC5tNapUtuyhivVY13W+obn/5f59pnTjVlk+9Gw/JS/XWntBxxQ21y1bhPlB/tyrYfSAg4lOnT7G55DKluXrbWX+Rl6m/XEZG0YXC9AMbagJD4WvDGN9q7QmZRwPfnwKiYY9+V+dsJ8V/cS3QI7UACDsuarFsZ+lYKjUEEZ8I8uyKyYZdvMq6QxZAab5wFgfIKQJ7vWZ6PPb5JN3QkxN4Crh+2AV2vqFABpOcGMQWYQyUVYQ3+7xdxwSDOuj11oF35AWNlikMcNVTDYRoIdx3cSHhG9x3tMIJ2CSbb0uPjKs+9rPy2fyh4wSRQIMi5dOwxn/JPmCuqEXDFKcj0cSZIFoFFT4++vLxvmmeMM9RACiDube4//ELI6ieCuTHtVQAjLVNlKyAiJ0PWiY/lyCGnak2x5CDFxiqTRen2h1RavsX6F5mUjSSA/OeRXqMfRDtG/fT0i/qYPiAT8AnaajQ8vYPFBzH3Msb3olZlmk14P3K5zVc4sAF8uRWfe2vekFQyFeSuqgMnbYiDEvaN3u2q6pxCOSkeNUyD+jKe6BwMveFbUF0srMJpyybTA3hzAPk7RvdY1KdH0yT9Si7tk6AMYR1EBDp2tq8Q20oRe948sImTyAtYDCTPveBH89DdeHQNHL6O19kaqyhK 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/7/2025 10:15 PM, Toke Høiland-Jørgensen wrote: ... > > You are making this incredibly complicated. You've basically implemented > a whole new slab allocator for those page_pool_item objects, and you're > tracking every page handed out by the page pool instead of just the ones > that are DMA-mapped. None of this is needed. > > I took a stab at implementing the xarray-based tracking first suggested > by Mina[0]: I did discuss Mina' suggestion with Ilias below in case you didn't notice: https://lore.kernel.org/all/0ef315df-e8e9-41e8-9ba8-dcb69492c616@huawei.com/ Anyway, It is great that you take the effort to actually implement the idea to have some more concrete comparison here. > > https://git.kernel.org/toke/c/e87e0edf9520 > > And, well, it's 50 lines of extra code, none of which are in the fast > path. I wonder what is the overhead for the xarray idea regarding the time_bench_page_pool03_slow() testcase before we begin to discuss if xarray idea is indeed possible. > > Jesper has kindly helped with testing that it works for normal packet > processing, but I haven't yet verified that it resolves the original > crash. Will post the patch to the list once I have verified this (help > welcome!). RFC seems like a good way to show and discuss the basic idea. I only took a glance at git code above, it seems reusing the _pp_mapping_pad for pp_dma_index seems like a wrong direction as mentioned in discussion with Ilias above as the field might be used when a page is mmap'ed to user space, and reusing that field in 'struct page' seems to disable the tcp_zerocopy feature, see the below commit from Eric: https://github.com/torvalds/linux/commit/577e4432f3ac810049cb7e6b71f4d96ec7c6e894 Also, I am not sure if a page_pool owned page can be spliced into the fs subsystem yet, but if it does, I am not sure how is reusing the page->mapping possible if that page is called in __filemap_add_folio()? https://elixir.bootlin.com/linux/v6.14-rc5/source/mm/filemap.c#L882 > > -Toke > > [0] https://lore.kernel.org/all/CAHS8izPg7B5DwKfSuzz-iOop_YRbk3Sd6Y4rX7KBG9DcVJcyWg@mail.gmail.com/ > >