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 AD449C48260 for ; Thu, 8 Feb 2024 21:58:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 433FA6B0082; Thu, 8 Feb 2024 16:58:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BD086B0087; Thu, 8 Feb 2024 16:58:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 236166B0089; Thu, 8 Feb 2024 16:58:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 0FF326B0082 for ; Thu, 8 Feb 2024 16:58:46 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id B95F8A02D2 for ; Thu, 8 Feb 2024 21:58:45 +0000 (UTC) X-FDA: 81770001810.21.DE8DBBD Received: from mail-ua1-f45.google.com (mail-ua1-f45.google.com [209.85.222.45]) by imf17.hostedemail.com (Postfix) with ESMTP id CCB6240021 for ; Thu, 8 Feb 2024 21:58:43 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="N/uacrn0"; spf=pass (imf17.hostedemail.com: domain of brho@google.com designates 209.85.222.45 as permitted sender) smtp.mailfrom=brho@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707429523; 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=cixsOcAx/ctssVWC8Kd4Sx3gRvo1fWw8sVXsGnCk7gI=; b=4q2UsLR0p24XbXo27FUUnwoEKyTsue9UqT0x8AObmKroLStTh1xPtM6oStrT3L9vphsCZ7 BH6zAc0n/HhHlYm0CBYZwlpRx1GK4BrafSaFivwE9AR+2sJUSAFLjus59Ni/6Qqk5iRZDW bwF3ZQaU9KlyY8rq8lhV+VjkcFVcTnA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707429523; a=rsa-sha256; cv=none; b=rMDi+aEZaBINJYkCxTzIpff+RuG34al3aAocAxnCnzT3sdTCWP/hGdQeB/ArYvALMearRF wRxig2PdCXgaHo4JFzQQ78DpOywjhRMm3xyBYay+5si9LXOByGhwIhdBl3EyCm2pZVwS7y CSp8h84P0HZ58Ys4wkdu4OZ3ydxw7Ic= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="N/uacrn0"; spf=pass (imf17.hostedemail.com: domain of brho@google.com designates 209.85.222.45 as permitted sender) smtp.mailfrom=brho@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-ua1-f45.google.com with SMTP id a1e0cc1a2514c-7d5c890c67fso139119241.0 for ; Thu, 08 Feb 2024 13:58:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1707429523; x=1708034323; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=cixsOcAx/ctssVWC8Kd4Sx3gRvo1fWw8sVXsGnCk7gI=; b=N/uacrn0CKvK2JlnQnrH5BIJ+wjrnh43dGMtQlRzrdzz0nZHV7g9zBgIZW8RoQ0aUm m3GwXqCjCZHBvTfD7RHd0uc+Dlaj9ZQFW4KM1nFaIXXVqVuZwj1Z6sFK+1dszCV/QYOH +i9H05l2ZSX4YgV8/p/w6a2mM/+Or3+JqsrwplTScQ/+D1khHX0nFHA/oHTnIWS3GWrr NCB04SIU20y3j7exgnJljLfdJQ4+iN9AicQt0zdYkJBhuKfRY9AjqnJrU1kZ1rti7XCZ nKCQfeJIwFHSKhQqgEfgG8AveBjgWjuuq3t7j2CrhP1GXRDKa2Cmceky8KupjxEYrb0D BZdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707429523; x=1708034323; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cixsOcAx/ctssVWC8Kd4Sx3gRvo1fWw8sVXsGnCk7gI=; b=nTxsKySoDYo2dl6oDynH9cq/q/VrKsCW+eifnNt+bWlKZks9YUvnwgmIHSiOjOiEW2 bQ9GF1+h7XC0RIcAtnFssILXftH1bNXqecCwpyXb7OKOMdW/ejC2Xr6sMJ1DAE0p++Iq SBc8ZsmFLUGZjEbPoPNKm1NCpq1+Ai+HqZ4rFXv8lTW3sHqEXSZ5AYHWafn+VLiFzGd1 Bkha62BdnXdFOx9gOZRF+s26NIx+KJjyySyKgQxL7kSX5H00CRrFdNbAGgW6uuwgkt+2 FGSjofPEfMvHYxm7z6hI7ObAqHUqHdD77bO//5zG6g5RPEJ4qpGV/aWdFi1/Md2zYUJ6 yvSA== X-Gm-Message-State: AOJu0YzBL2vN77P1ILOJYS1CexpDmkJK+Dh08x8o/WHy44Ci7ZTlzsce 0COWz0OnVErzFPAhScN9UAlCwpYDgk78WXDtBzvDpRaux9kR6MH2AgkJqxqUow== X-Google-Smtp-Source: AGHT+IFEvx3NbmR/Gbgn7OyPl8YjOnacu1Kbantm+gRpdcdXClbwF5hNI4PwJ4MWEKmCCa/iUeAKwg== X-Received: by 2002:a67:ebd2:0:b0:46d:1ff1:950e with SMTP id y18-20020a67ebd2000000b0046d1ff1950emr681619vso.3.1707429522686; Thu, 08 Feb 2024 13:58:42 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCUG0UCIud/JVTuJHiD5rEOaz5DOrnkDNona5dc1V+do0F4uTycm+wE6MYEPkIvh5Si4AXpDwh3LOjtYhMY8tjXEApOjr7b2xRkElLV1qAKry9SvIl7OATkSmJdDomnjoJQDHCj9NvR/UNJae1537HykjDqr1jgViWKO2A5hNWPzlS9sDxtlWp+IcFU3+smiEjuKOdLxzY9F05rohUSO1DM9aQXBL7KstcIk78/HYJwrb7dU6Tsj5+UmawxVhIfL0TgDFlyX9yvd1veasy8g6aeWdQiAikxm/KfwdCaUCV4= Received: from [192.168.1.31] (d-24-233-113-151.nh.cpe.atlanticbb.net. [24.233.113.151]) by smtp.gmail.com with ESMTPSA id hx6-20020a67e786000000b0046d4b868ce0sm49028vsb.34.2024.02.08.13.58.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Feb 2024 13:58:41 -0800 (PST) Message-ID: Date: Thu, 8 Feb 2024 16:58:37 -0500 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH bpf-next 04/16] bpf: Introduce bpf_arena. Content-Language: en-US To: Alexei Starovoitov Cc: bpf , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Eddy Z , Tejun Heo , Johannes Weiner , linux-mm , Kernel Team References: <20240206220441.38311-1-alexei.starovoitov@gmail.com> <20240206220441.38311-5-alexei.starovoitov@gmail.com> From: Barret Rhoden In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: mwddbmrr3ysy41jfcwpeahg9ph7iysc6 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: CCB6240021 X-Rspam-User: X-HE-Tag: 1707429523-649668 X-HE-Meta: U2FsdGVkX195G/0zbtpFwuUO3F6rpk2WAmC13AWBOEZy3FGUNGqg5UGfgf8hOOtegJmCHZHidFDp0AFN+6eW3ljcvaCfCRMPeRTNqlu/N7kRxf9pRxLx31cwy/rp6i44GH+HGH+YWuBNDXbdvIMZOcaYnC09UGYTmdnUoYyND5/THHk/pR9OZFuZKtQL9SNMs3wB837D43R74shw+2grSOj1ZiODn7+dbW8ompyXt/W78xH76vwj8qwKQOO/7j+jrxKILn/ZgYKXlnV4lk0d0OuBqZ+6b+uSEoh6L8UidQHhX0t/Fl3zgZALF2oVR/uELFGqavxnapWnecXhMvmKfRkpAWy1239frJljbn9/2Eot/+luKa+cd+DJt07JXduf0DcDNFISMIHg73PDbuut2yrJddf24ZE1t8y8i1rvgKWVmIVjqZm4ggW1bAtFcNYjLOF2Blm1Pm+sNI3l8dnItt/LfmYzzvLKBEp7JYlhne5yIf57IWuTb8+jyc5Szj67BeeWdNEFc05b3EHvzfHm/CaELxZMb0YWBHXKN07fLIqk9YkuAfiDjf+Ec9quMyO8i3ZYAk32JEkdMRQZtDWUvR4edIajAwrJF5ZFKA0t6CcURkVqJcgtm2yN37T8QoE9g8YLsUAIAHNWZ+SPjR8bn5bORD5GoXvgJeckv1/amFRhvoOls3WI3cyKWOuY9tILPG4oaekFmkHFn30EYC/ai4m+ZWsY8QwKOtk1Ldq9TAhEX7trruZzwEuPXPL2AUDKb/buDYQPwCgvgXGiLD9Q8trqsAxHnpDanPwd3EkwjF6FrtI+aGIS1qB05mGgAs5Tg1YnDU2XCcoXhP5CLlGBw5X6wUVxaCoPSiKWP9T6sauqmJgmOVVG8K1TvBCNWnqZCK8uvEX6fFuSxTQPalGcTlxeXR7XDZCCHUvH1Q/MUtisasbht6n3yXis14HKhE0h+Xf11kNKsesa6jMhn7B qhsIoRx6 /F+pNoXUlKhyl0HQ5yPfJ7HXPZvxHDIFCS2TbcSCWdyCuAAom3FQn+baPJjS7qKiKi6oDRLApISE2YcK4W57mwvJwuBUCTHffeyCsbczNxe4HrxYA/kc6QIGdXYf4CsbKKlF+7vEv7jfcAl9UpG694nYTwJCK6BVzGfs0mgw8yULyrBxarD0AP35ImvMeEZx81YdiwdjeuMIIWnWfqkNMoMDS6HNklDLQv4aSgbpz7qqCRKlc2lKS/YxeFpc4XTZwTaHhoqlNrhY478q5MnyhWm05heBxY5RZpUiAY5AHN9LTYicUTRAImR94hMuJb+CEtzJD4XTnbtZPHFCKZxxp7nYGAILTN3cleU1yMr/CjbI7c3uCkXtJ9mBf0xCAypE0etagEEb/1ASWGrqNZ7eW5s14Lisqc8xcjvMrd8vStWBV18LAHhBtHxRZPZaqTo2cur7shW3PRnVp4a+F0t8qClYYvqSsYkjNXzfEasURwnaWEYCTjY6e+QDIWtsslquPNTMZMHptmYRLuhilUV0tIZbbyGZDzg94hlQDN5J5ulMDhdYEraWYz49/og== 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 2/8/24 01:26, Alexei Starovoitov wrote: > Also I believe I addressed all issues with missing mutex and wrap around, > and pushed to: > https://git.kernel.org/pub/scm/linux/kernel/git/ast/bpf.git/commit/?h=arena&id=e1cb522fee661e7346e8be567eade9cf607eaf11 > Please take a look. LGTM, thanks. minor things: > +static void arena_vm_close(struct vm_area_struct *vma) > +{ > + struct vma_list *vml; > + > + vml = vma->vm_private_data; > + list_del(&vml->head); > + vma->vm_private_data = NULL; > + kfree(vml); > +} i think this also needs protected by the arena mutex. otherwise two VMAs that close at the same time can corrupt the arena vma_list. or a VMA that closes while you're zapping. remember_vma() already has the mutex held, since it's called from mmap. > +static long arena_alloc_pages(struct bpf_arena *arena, long uaddr, long page_cnt, int node_id) > +{ > + long page_cnt_max = (arena->user_vm_end - arena->user_vm_start) >> PAGE_SHIFT; this function and arena_free_pages() are both using user_vm_start/end before grabbing the mutex. so need to grab the mutex very early. alternatively, you could make it so that the user must set the user_vm_start via map_extra, so you don't have to worry about these changing after the arena is created. thanks, barret