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 7C736C4828F for ; Thu, 8 Feb 2024 05:44:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BB7D76B0071; Thu, 8 Feb 2024 00:44:41 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B67D66B0074; Thu, 8 Feb 2024 00:44:41 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A2F046B0075; Thu, 8 Feb 2024 00:44:41 -0500 (EST) 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 947DF6B0071 for ; Thu, 8 Feb 2024 00:44:41 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3A785C0134 for ; Thu, 8 Feb 2024 05:44:41 +0000 (UTC) X-FDA: 81767547162.23.332E8A4 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) by imf08.hostedemail.com (Postfix) with ESMTP id 0F22616000D for ; Thu, 8 Feb 2024 05:44:38 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=EufdX9p1; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf08.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.167.53 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707371079; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4k5aIiBFyHrBPof33aIf/8qoqBN1gTRvAwPh7UCjnCg=; b=G5Ut+9UINxgr8ZC9qz4K5nSOf4zJfVKEddX0jhZrjEziu57i/F8vKmY64HPdsMsFLGDC1M 71VjiwHp5TzKP3hMlNdMP6h/6kQPzKvYwK6+DOEbCsDRYbXM2yAVv+OKGs4qlueOFdXM5E 93e3D1rv2AIGIhXxw+JHOqA1df+7FEU= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=EufdX9p1; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf08.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.167.53 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707371079; a=rsa-sha256; cv=none; b=GhWU6zZ2RHPMTkyFAmNS9EENaWrehhIsdP8Q4IyS5XptjM1b8h6Yh2pL1FpPp61vxxn4tU ZK1GqvsYYrfLXRasBO4ycJ8oKSpyFo9APx7hmMkn5bmfTd8j0yVjmFpBPQmUg59jAJesrQ aBlth/GO4UVaWBBUs8eaeTq1pV8gpgw= Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-5114cd44f6aso1977808e87.1 for ; Wed, 07 Feb 2024 21:44:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1707371077; x=1707975877; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=4k5aIiBFyHrBPof33aIf/8qoqBN1gTRvAwPh7UCjnCg=; b=EufdX9p1utF1CzdtRV3J/P5WRbGsnxJ4Gl6RM9b4Tcqbhw5zoEIWIhMe9wPWSQP0BK fa22vmkDl7z6Eu3ZAEht4TqBP5ItSycahbZ2qbCpJses6vYcD0+e+MQ+HSdtGTl3gt3g T8zoxMNSsYXcbvjIZ918KroNleiygXlC+Cy2Vv7cbOroW/h4BPtS1Spve28uXZ6pws7q 9I3PYfVuwX31q952WTATiZtRIt5qtSZwiKkkJEJnPrYS0t204almfCfRoP8MIK1xBimP n4orDdCSR6KCgc4hRRXqUfAsUCeMCtMCpfIJnopPCfEfgcunz7nt/drQyYjFwIH4M1VX zmVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707371077; x=1707975877; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4k5aIiBFyHrBPof33aIf/8qoqBN1gTRvAwPh7UCjnCg=; b=CGL1hn8Kuozz3bzCT0MUTzjT2Wimvcm3A/x0MvopA8oezsSb9SbFAIgJqhnXxxE0qW NSQ+Wvsnzl+eX9vCWLydtFUGSoCj0U7RFnnYlhxqFfZ3Qc8P81G9I6vr2Hc7bYdQ8A4O W5iaorfqBA7YQqzofwGA+ScMFNbtC7VlvW0ikP5yuYj0/8V47O6/3iPotKyZoczzkTIy m7U2ftujIjCNQDeHUBHL1e9StwH7sN98v7sAcBR32+uzR3O0Dog4YaHaHWz2Tg+pSoSA p+ZGOR1Mw4A1RUL1djjRRIGX4gRUtUKaOyWKAXXA1Kd9XgSZ/aSDsUerzEhlOECZ46yk nPhw== X-Forwarded-Encrypted: i=1; AJvYcCW41Z5GuEWiBIlrRgkakf3gVH0RXtiCOpuhX27XVIHOoTcZptd2tbw226SOLOYZhrCWOX2qHRvuZdhIMSUsDbEkrgM= X-Gm-Message-State: AOJu0Yzl9xphfpOwu80Z+tD+obxJdnw3AjWs6pjUii2341N8IRqcpT0Y afO90fgUvofBAoqZ3HRWV9BE1DDmG8AqEz46zHc//+txeFTBBPsYdk/yI/YC7FM= X-Google-Smtp-Source: AGHT+IFS2uj00zf2FxyqyPWXdruzVYLAIwL3C99onCgm9MTyehEEQY8iYHo3sbOtEtPVzM7SmEC18w== X-Received: by 2002:a05:6512:2152:b0:511:483b:91c6 with SMTP id s18-20020a056512215200b00511483b91c6mr4182647lfr.48.1707371076948; Wed, 07 Feb 2024 21:44:36 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVpO5yA8IC7DYUDkcvBtDTQugbGscQu7lWVQTd1d2qonozAMGxZcENduPCPp3TU1Cs259qOkgkK//EGXMc6mhif8V8xcto660JD2NCrqhLur96SLyLpFAkGHn5b7QcqrAe98VJ2UJk1twb6Q9f05YVoti76zQAmQhqsv8xHGGW4ptqYsQGJVb1ySVh36X8gc/rtaZ3b9FffUZFOFvi6fAZ86PC6kRvUUa0knJ1latZHW1S8PAuSBQX3c0h3Axk2+3wLP9znaIKaSGLdGx2lv368TbzzJ1iIBuO1SgY6rMOAqdZCjWZD3bzavi14YUwK9d5yfsWTpZ59tOfDFOeHII9jt2N9fdeKZakGy40vUPw06TkMg59uKbQ/tl5aWbntt28pKjYSeFtM3deIQ1ZcFNJU Received: from localhost ([2a02:8071:6401:180:f8f5:527f:9670:eba8]) by smtp.gmail.com with ESMTPSA id bf14-20020a170907098e00b00a382d8a32a0sm1548177ejc.18.2024.02.07.21.44.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Feb 2024 21:44:36 -0800 (PST) Date: Thu, 8 Feb 2024 06:44:35 +0100 From: Johannes Weiner To: Lorenzo Stoakes Cc: Alexei Starovoitov , bpf@vger.kernel.org, daniel@iogearbox.net, andrii@kernel.org, martin.lau@kernel.org, memxor@gmail.com, eddyz87@gmail.com, tj@kernel.org, brho@google.com, linux-mm@kvack.org, kernel-team@fb.com, Andrew Morton , Uladzislau Rezki , Christoph Hellwig Subject: Re: [PATCH bpf-next 03/16] mm: Expose vmap_pages_range() to the rest of the kernel. Message-ID: <20240208054435.GD185687@cmpxchg.org> References: <20240206220441.38311-1-alexei.starovoitov@gmail.com> <20240206220441.38311-4-alexei.starovoitov@gmail.com> <30a722f3-dbf5-4fa3-9079-6574aae4b81d@lucifer.local> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <30a722f3-dbf5-4fa3-9079-6574aae4b81d@lucifer.local> X-Rspamd-Queue-Id: 0F22616000D X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 838nb59cyfokwz8sccjgpcwu51w36u4a X-HE-Tag: 1707371078-466403 X-HE-Meta: U2FsdGVkX18R4NFm44kIHCsZJC61rwD8w+bh396qJ5wg6hm/SXdlu8pmb0YPXu6Cb1aRGQwKveCHA5i1Y820w5+ZPf74qHwRhRLmA4rlwXEHR2O0sP57lWU1gKfbbV434jmprk1XTiEGdDET0OQfL1xgHUtH1GuikjaF9+xEbwAQomA6WYFAxbp81aOM9G1S18Vw1MmCYXNc0Edajc0umXvNm4ra4ERXMdliTarw3GT4C6YV+D8d+OAfUkB1f1sEJq6DH5liqRTboXb0BqKGl6YcbLXsTEGqU0MjlQlNUF+bPrg0FEhbplUBT/2E5dG6Qdoxo1taQ4Dwg03a/aiwYd8XrhtZK8VYZNi17UhdPu3Njrgt7SDPluGue4NAwWfmwBY6Mh/rT5CHkSEh4f/QOr0/+nmUI4hW9OoQkHCp4Q+MaGSZ3uQU5v+kv3jgXFuSc/bl3WRdOS65UR+gLqxeJ1/N0w3kGJ0pApkUbAovS8adI4W/TomMHjMMmJOjYkW9ZD5gdNNZztb426Lvr72NMigHEXHv5OjlAvjXEY2UajNim10udqk90gcgO9WCGOpUdHQbBD5cy0cP3CYOg00nOUbC7ebjK6urF0cJ8z+gwjTSnAeR7QWRF8a5+uD6Srchu26KwiC4D8rrQ3BEj2zkFpst2g1eyZ38llxoLv6A3H7nZdIFNVabyT1g8SNLdsLowwfP4tTR6hkDL7VU53VytP+JHdKg6JtYulaww48eahoZSnwU7dYZZpja620rI0ovk0r/6yGiENT8tpqMgoiJXmMmzFMrkdo1tV+aiAtXJ+egLwFgjBRh0K20iMMgB3Yo/R96+N6lLkx2Cuvj7aXiXOU+nSzchjI/Vv2elyfwnCM9zV2XfPbaORRFk+Y6PE9gAA90rc7SIPBhiC/IhnTHxvqsop4edGNzlPWLqBrkVsRNwPNOmnQnn8rN+yqfyISU7o+6DAcMtE+Lgm/FBUp Xe+Jo4oO MYWK6O53bAe82RkalGjnEWtfFp6rqW4k13+Ctr2eegO3Vgh85S3w4tDtO+G68sEOfWkwqqboJ0ryZC/L/87TYnto48SEpgnHyJU4V1pHD+y1itni0OWRgYi9mIbKal53XRhla5w/I2pVN3fheN6CQix2l3hv70dnP+nEimAiztbvewBaRlrBiey3GBBIGANQdQNtELCqmvZT7OAO40jjT0eUkvD4FQ2zXLl1BbDmkNpgC59siCm7/M1Dfb/0GrFO6D9nSzpw4XkYY9NoOMiGDzlzViX8n1WvTEWoJDQ70fQEt9bG5wLqNF6q4YbutqyOeHxCpnLfOWtH4L9nqUwVHmNumLu4rr1Ew70FOW1OLf6j0yiuRZnrwD7nde5YzwqQecGOUu8vHdgGy4y3ayVRHG/oEV3hsf1k4UIcfYlwieTRuoJiFFwzlRfeM1R+La+A5anMWH9hVp8a8lzEtmzHHlshJUs1Q976UcuoG1tvXzqxxbDyRIDsCNWv79kXclAEVgLIrAj+a5dEqVDF297N5f40uq3hg8Q7MoEs9LsBHJA18FjCztoj8StPEUOWMwSf8ltTPy7oitXnlj4FFnnyYmW5TGJ7DzggckkB10O5xU2P7LBhx6XsFBzyt2UDux1nELHbs1GZUJtHo5hXiu6T3zUnDlq5RWKMKhGmTI10PCvVh5Ys= 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 Wed, Feb 07, 2024 at 09:07:51PM +0000, Lorenzo Stoakes wrote: > On Tue, Feb 06, 2024 at 02:04:28PM -0800, Alexei Starovoitov wrote: > > From: Alexei Starovoitov > > > > The next commit will introduce bpf_arena which is a sparsely populated shared > > memory region between bpf program and user space process. > > It will function similar to vmalloc()/vm_map_ram(): > > - get_vm_area() > > - alloc_pages() > > - vmap_pages_range() > > This tells me absolutely nothing about why it is justified to expose this > internal interface. You need to put more explanation here along the lines > of 'we had no other means of achieving what we needed from vmalloc because > X, Y, Z and are absolutely convinced it poses no risk of breaking anything'. How about this: --- BPF would like to use the vmap API to implement a lazily-populated memory space which can be shared by multiple userspace threads. The vmap API is generally public and has functions to request and release areas of kernel address space, as well as functions to map various types of backing memory into that space. For example, there is the public ioremap_page_range(), which is used to map device memory into addressable kernel space. The new BPF code needs the functionality of vmap_pages_range() in order to incrementally map privately managed arrays of pages into its vmap area. Indeed this function used to be public, but became private when usecases other than vmalloc happened to disappear. Make it public again for the new external user. --- > I mean I see a lot of checks in vmap() that aren't in vmap_pages_range() > for instance. We good to expose that, not only for you but for any other > core kernel users? Those are applicable only to the higher-level vmap/vmalloc usecases: controlling the implied call to get_vm_area; managing the area with vfree(). They're not relevant for mapping privately-managed pages into an existing vm area. It's the same pattern and layer of abstraction as ioremap_pages_range(), which doesn't have any of those checks either.