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 A3127E77188 for ; Thu, 19 Dec 2024 01:45:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F9A86B0085; Wed, 18 Dec 2024 20:45:36 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A9EF6B0088; Wed, 18 Dec 2024 20:45:36 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EB48D6B0089; Wed, 18 Dec 2024 20:45:35 -0500 (EST) 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 CAC816B0085 for ; Wed, 18 Dec 2024 20:45:35 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 62A391C812D for ; Thu, 19 Dec 2024 01:45:35 +0000 (UTC) X-FDA: 82910015664.24.551B899 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by imf19.hostedemail.com (Postfix) with ESMTP id 7A8C51A0015 for ; Thu, 19 Dec 2024 01:44:59 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=D4h16vC0; spf=pass (imf19.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=alexei.starovoitov@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=1734572711; 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=neUu+o39xO0vU1QbBIE7Qaur/BaN8OS6IKH0p8Q+L4Y=; b=tWlwC3Oj3rwWv2LBL1RVR+1Lp6F1BYknRr+rwsZwrb3mR8bJAS1jIhzNuADIalUUkTWmDK fL0yY7YBoGhYVjx0lbfpexim6qkb8INLN9QwHB93kknQNyB3mVF138hXH9m1YcZqRxQWMf soGyg9Mezlj00V5wjADu2Psu/zE5R7A= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=D4h16vC0; spf=pass (imf19.hostedemail.com: domain of alexei.starovoitov@gmail.com designates 209.85.221.48 as permitted sender) smtp.mailfrom=alexei.starovoitov@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734572711; a=rsa-sha256; cv=none; b=CE6VuKhUy4zMN5meC/GSEIWMOR3uM0hQzClHpPzImbtJY9/RwuM2kGuSe7pYnYYPQWjsM7 Amdq9r0ayw3iqIa/Sq702Zvj6dvSQdvX9tb39eUNJsIFTzKS+iOEdiSZVHvWSz8/lC5u2k fsjLfuV4M3N4C82/FmPehYQItT0kxMs= Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-385dece873cso119803f8f.0 for ; Wed, 18 Dec 2024 17:45:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734572732; x=1735177532; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=neUu+o39xO0vU1QbBIE7Qaur/BaN8OS6IKH0p8Q+L4Y=; b=D4h16vC0MXzgBajeC2pWwMPrf3qJodHEHbSwrc2g2jur3ZupOHX202KSlEc/L65K0/ JZ4s/sf0ukv6EJiDlyL6C6kDrtyl4VYYvurUYTVKs+PWze5W5hn7VJ1fvNvVIlUVUrkO AkxNqo2e8yzgsCSd4+Eoobyol5dwRgffnMCAuySVItX8vt6J7gVAvOmS0GK0oqUkgJUG 1LpVfQcT4zpOC0XEPX1K+Z2sPVvSfV/sIalEJqsNKzoMopytnpfDF6gTntWQCnRWEQpT DYo5cLFKZ3KY2WQOZV1N3MTrx31gnESH6x09fIcbQORhjmNIPJI7+zuUqkKtDcZAaKGn kZCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734572732; x=1735177532; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=neUu+o39xO0vU1QbBIE7Qaur/BaN8OS6IKH0p8Q+L4Y=; b=lNihvnATnYtHDI4zkbMvSol+ZlYrIShswdc7OU9UPEMV+S9v6xWZBMh9SyWKKtBhs3 pSZMNmqChNNLqFNl9yY5z2Fmy/0fl4c16VTIX8eGIIaOJ5PmSDLJjHhKn/ipLfsaxbK4 nNSGz4LBqCJgzeSBrDIMXVN6MPGClbpSXYHD0tv0MpnOdliYS7F8Fx5mksfGoybP88FI fVKPIAtG3uOm5yjAkiklJ5jTUeVGhoqJr6FvpLQIuOpdruchQ4c6Jc6sfu7nj9a8F/rE oB5bg1zHyTkohs9yziheXriZoqTZGqzbApJTdHc5DtCxBP/V+wzW2t/Io+en5rwrnsk1 mn7A== X-Forwarded-Encrypted: i=1; AJvYcCUsBhKAyR4xMRQ9fZzaM+rSORmHE8J6vmvQn3OkGoZtMdM+8ltIycc9o6kRRRwLRB8W2vLKZeN0dQ==@kvack.org X-Gm-Message-State: AOJu0Ywrye1HPDvySH8uXs2+MNqmCOv0RHMEWPemxPS00CA7jUmrjltm brhB8ScDHu5+USBrF8Ij+eOsfTtmYpp1Wm+pWntzWDS0voUgI+2woPg8YgP8sr6eY20D5L8Y773 APF+SnDVxcl4tGQPTOYUTO//x+zs= X-Gm-Gg: ASbGncvqjr8QO7fJXufuIyrqo3Etfe+XMHBwQDcK7TcipRtOFW9p3BPzrfVSVtmYt8C +DNbglnhpwmILwYynLhzRVspY5NcspNtnNZp/dA== X-Google-Smtp-Source: AGHT+IEzHGEofYwzF42LaIwbJw43xOdwwIgH9nRJaYYwx8ezbmz/4KjO5UnvIcH0jxjLC+GavCjTfRYALCipVGXKsGo= X-Received: by 2002:a5d:64e9:0:b0:385:e879:45cc with SMTP id ffacd0b85a97d-388e4d42ba8mr3785916f8f.19.1734572731610; Wed, 18 Dec 2024 17:45:31 -0800 (PST) MIME-Version: 1.0 References: <20241218030720.1602449-1-alexei.starovoitov@gmail.com> <20241218030720.1602449-3-alexei.starovoitov@gmail.com> In-Reply-To: From: Alexei Starovoitov Date: Wed, 18 Dec 2024 17:45:20 -0800 Message-ID: Subject: Re: [PATCH bpf-next v3 2/6] mm, bpf: Introduce free_pages_nolock() To: Michal Hocko Cc: bpf , Andrii Nakryiko , Kumar Kartikeya Dwivedi , Andrew Morton , Peter Zijlstra , Vlastimil Babka , Sebastian Sewior , Steven Rostedt , Hou Tao , Johannes Weiner , Shakeel Butt , Matthew Wilcox , Thomas Gleixner , Jann Horn , Tejun Heo , linux-mm , Kernel Team Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam05 X-Stat-Signature: f4fpsbsgq57hkmrtsohdcpmc9hyp7kbi X-Rspamd-Queue-Id: 7A8C51A0015 X-Rspam-User: X-HE-Tag: 1734572699-232887 X-HE-Meta: U2FsdGVkX18Cc/vUh7T8tOnwy9O43qqpkTu6zlUMt90c4zoaeEz1+0j49Kw/5csb58Dz81dXFKF6LJ69/eTDCjPwUspDeT1x6FaHKLrSPKrYNXXaWpu/EGQwIubvA8RpVWFolCtL0Cuym34wDX/3YJ9RyBK0LFIglsMYKbK7HarNgQP+8OrFvYA9Uu3o28EeZFr6pADZyodCmYmzrzjx0GJdDQ1QAnX+9OIItghUr323GsdgwTQO8RcWWM0T2wwZIruct6hvqQ2z39ihmudW83qR4EiCQUhD3l4UL0oAWTsafMkFNhTmsHxv7YuYbNYutEDJlqSARB8Gwc6NPt5Gnb1gG85BrQFl/qpdZuD2txXzmZxrftJ9pfn8Qprynj18PpS5S0xbJnG1ERKNDENlIIt0O7hpwIwzhYQVoQwOeueLBCqqVD5nikG4wrGPOXLU08ophG0OK9Yp6IAqNE1R6Dh7DQHTlrz/3CknmOrn8Q0SXD8yP3oz/o3Ujh87Rof2iaggiywP9lGakAdkddvf2uz4cd+aXv7Stuo1Qv/2EaY9fpzNcledgDQAe+LTeMa7q23N1g6+24zDFdtAVKOFlobpKk7MU/EC2Ctwx1XODvkVm+hHNa51BUDrD26Y6BlddPbsapjla9kPiHWS7Ep1ZDaHaphpqyALy5d2+gNaaX0pPsULTYq8hZJ/i6mt+ieFV552xoM7lHGweCl5HQaU+NuEFBB2XHNHKBmuyH09pftrMIca9R71b1sgGQ6K1w1/apyU/az8t96/3j/MHc43FWJaSeD2zZyCxGnnLAulZiNQ0ywVZ08gprZKPZkxZgcuQc7q+AgXa2Tije3MAOsIQjFdwXeq4N8jc4zS67jnRhZDGiLM8IJT5JiwAg82invlWLUsOMq6qgN+EKkZnf/kUkbiSnQ8APUsegVp7SsT6omTNyMWfMpN0HXaaZ69T1u/c67HYHEspGPtrVybfxz 7lfJ5se6 ZtB32emJO3j8DvGNw60kCl8FDl3VRuetkI6SZBQPl8/74x3EhaN3tClHyY5krysllZcdq8K8nD7t20OrTbXOqlm/qyRvEB5ifG0TqKVfKfakBpkHDAXBGmlu6WQYDupB47qDSYZmaGCiuwLFAErQkaEsMSamNKloGp1UoKVMIgtA8a/tm2WmSRURmoelBWz7DApRw6CnC8yRguzde1b0FeJT2GcxPt1kNW98MdjBD2FJ7g+CgZTgvBtTXjCaF0NGC3amDOgzxWV9OMiZDk2zUeO/yyp05qmwlzc036giNZl4iFBfrYuIv/M4gx5upbxRGY2ftTgwKBMjAsKMg1arOblMcwRD1qT9SKtOEe3OTougM3c/XHhEzFJZbewEQhrRLQ/adw9DHv2LVhZ7J4jPE9mxBezM6KwXDCNOAJ5ZjfxxJcO69RD4azGNXsukoW5ruL2o67+vqA/7BNwz54twpMd14ZuMm4+jHg0PHi+mNioJrRSxJfTaoobH7YQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000450, 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 Wed, Dec 18, 2024 at 3:32=E2=80=AFAM Michal Hocko wrot= e: > > On Tue 17-12-24 19:07:15, alexei.starovoitov@gmail.com wrote: > > From: Alexei Starovoitov > > > > Introduce free_pages_nolock() that can free pages without taking locks. > > It relies on trylock and can be called from any context. > > Since spin_trylock() cannot be used in RT from hard IRQ or NMI > > it uses lockless link list to stash the pages which will be freed > > by subsequent free_pages() from good context. > > Yes, this makes sense. Have you tried a simpler implementation that > would just queue on the lockless link list unconditionally? That would > certainly reduce the complexity. Essentially something similar that we > do in vfree_atomic (well, except the queue_work which is likely too > heavy for the usecase and potentialy not reentrant). We cannot use llist approach unconditionally. One of the ways bpf maps are used is non-stop alloc/free. We cannot delay the free part. When memory is free it's better to be available for kernel and bpf uses right away. llist is the last resort.