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 3A4B8C00140 for ; Tue, 2 Aug 2022 13:31:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 904DE6B0071; Tue, 2 Aug 2022 09:31:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B47C6B0072; Tue, 2 Aug 2022 09:31:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 755BF8E0001; Tue, 2 Aug 2022 09:31:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 66F666B0071 for ; Tue, 2 Aug 2022 09:31:53 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 332F7ABB47 for ; Tue, 2 Aug 2022 13:31:53 +0000 (UTC) X-FDA: 79754740506.20.0220369 Received: from mail-vs1-f53.google.com (mail-vs1-f53.google.com [209.85.217.53]) by imf29.hostedemail.com (Postfix) with ESMTP id 629A41200F8 for ; Tue, 2 Aug 2022 13:31:52 +0000 (UTC) Received: by mail-vs1-f53.google.com with SMTP id b124so2832310vsc.9 for ; Tue, 02 Aug 2022 06:31:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc; bh=9gprTQRjUhTM4eoJepnmz+nTG4q6JfCebIgS1oAjgwU=; b=WsFSaQ0R9QxYxMnzDFZdkA8WUEjIn3E7audy21Bm54MVjFyX7JZtf1A8KcqUHCDt7U bZAn7toPyVdW5q/bKe7gYj0Dk8Bk2j6SUXKOOMaweItxHhoHgDqLQeAXSG4PsaU0+xcc 2TyH/ruXzF+N+565tAeMZgQC90MemwYTRhLPH668JKmzz9dhG8x/SB4iJXKyxrIlMuPw +PhzKUSNcva/u6IJoqAM+aFbYAgMJc7j57L82HH4F2F1bDpkLsAVxmOp6X3oAiAFZaov kR7sU4UfsQd8XLIVJ20bFYf6Fa3S5JGmxOxzRINBQHQylcSEYuL1RUG9ifRZj5R4FVno 2FJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc; bh=9gprTQRjUhTM4eoJepnmz+nTG4q6JfCebIgS1oAjgwU=; b=TAZYOuEsDrridBPbYpEwrHVRfl3ghMr8CfPOHde5vHxjlwJfFw8T3nLxzf1hvtqvSM Hdflmma9JiqqfHH2mRmvLpS4PLJ3AxXKo+MGzCcRmv2sso4Iw6wk5gFuh9b5D+4fzJVN W4e2bIcg2KZQEG0PbAijO/c/jpLNnMQTlHoy/XH3+tMz6F8DCO6thFtyxs3Dn1O/Hin1 AFjRgRrPHAOb7Gf22imD8fDoPrPcpWGPTzCzt6pMPfUms8rJVvn7Bz0B6+Hz0xI6kI4f iF/7Kq6giKE6Yn5H9BrYTAt/is6dUO4Lwuj4/9RxkBrGFZNvuO/e8vD5seViVQ6BLLTq ap4A== X-Gm-Message-State: AJIora/iNrm7D8c4/TXpjS73UQ7mgf0YnFYNweX8OTiqUoU1K32GkFIW mEu8rYF0rEAb8BXmqhLFrU4iiNgRNywli04PXHI= X-Google-Smtp-Source: AGRyM1sB28TCJySSRg2dx30CTcTN8Y8SobsgdYSPL86qGc/CsIF5/pgoTjeoYVakke50BccLXowOmL606283XKZsDEk= X-Received: by 2002:a05:6102:3ec1:b0:358:70a1:3c28 with SMTP id n1-20020a0561023ec100b0035870a13c28mr7380469vsv.11.1659447111600; Tue, 02 Aug 2022 06:31:51 -0700 (PDT) MIME-Version: 1.0 References: <20220729152316.58205-1-laoar.shao@gmail.com> <20220729152316.58205-11-laoar.shao@gmail.com> In-Reply-To: From: Yafang Shao Date: Tue, 2 Aug 2022 21:31:15 +0800 Message-ID: Subject: Re: [RFC PATCH bpf-next 10/15] bpf: Use bpf_map_pages_alloc in ringbuf To: Andrii Nakryiko Cc: Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin Lau , Song Liu , Yonghong Song , john fastabend , KP Singh , Stanislav Fomichev , Hao Luo , jolsa@kernel.org, Johannes Weiner , Michal Hocko , Roman Gushchin , Shakeel Butt , Muchun Song , Andrew Morton , netdev , bpf , Linux MM Content-Type: text/plain; charset="UTF-8" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1659447112; 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=9gprTQRjUhTM4eoJepnmz+nTG4q6JfCebIgS1oAjgwU=; b=PtnwO2wp5Rv9DZA9A+2e4tshTOdBM/JwMITg2vgGfQ/g/HSOjxND9ZFQhdM/2fCTvdLvpi 82mrl+6D+W0Rdwrp088wircO/v/HFknF9yv1ui4L1QwutqG1Sck7kzlgyaHmqlDufluwbs cUaIh1SV5eCCnQP1tRdxn3t4zrYYt30= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=WsFSaQ0R; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of laoar.shao@gmail.com designates 209.85.217.53 as permitted sender) smtp.mailfrom=laoar.shao@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1659447112; a=rsa-sha256; cv=none; b=Vr6m4GFFKkzape14Cgng+MBJOZWOJgQ7QmLoGmCWLA0i0a5FA0pDDyBUWNKQzAHvHJbsQ9 wCuwI9Q4tu/QiFj9hbbusfV/HYGyIwTIuLqUlOg3G08lRBbjlsG8oFsnzbbfA9JItuUz5M 7aKAzDwm3J5H+nPMrzxfLKo1KyGNZ1A= X-Rspamd-Server: rspam02 X-Rspam-User: Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=WsFSaQ0R; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of laoar.shao@gmail.com designates 209.85.217.53 as permitted sender) smtp.mailfrom=laoar.shao@gmail.com X-Stat-Signature: oa3uwpzrwiw7b697sqeweers7qmrwm3z X-Rspamd-Queue-Id: 629A41200F8 X-HE-Tag: 1659447112-962936 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: On Tue, Aug 2, 2022 at 7:17 AM Andrii Nakryiko wrote: > > On Fri, Jul 29, 2022 at 8:23 AM Yafang Shao wrote: > > > > Introduce new helper bpf_map_pages_alloc() for this memory allocation. > > > > Signed-off-by: Yafang Shao > > --- > > include/linux/bpf.h | 4 ++++ > > kernel/bpf/ringbuf.c | 27 +++++++++------------------ > > kernel/bpf/syscall.c | 41 +++++++++++++++++++++++++++++++++++++++++ > > 3 files changed, 54 insertions(+), 18 deletions(-) > > > > [...] > > > /* Each data page is mapped twice to allow "virtual" > > * continuous read of samples wrapping around the end of ring > > @@ -95,16 +95,10 @@ static struct bpf_ringbuf *bpf_ringbuf_area_alloc(struct bpf_map *map, > > if (!pages) > > return NULL; > > > > - for (i = 0; i < nr_pages; i++) { > > - page = alloc_pages_node(numa_node, flags, 0); > > - if (!page) { > > - nr_pages = i; > > - goto err_free_pages; > > - } > > - pages[i] = page; > > - if (i >= nr_meta_pages) > > - pages[nr_data_pages + i] = page; > > - } > > + ptr = bpf_map_pages_alloc(map, pages, nr_meta_pages, nr_data_pages, > > + numa_node, flags, 0); > > + if (!ptr) > > bpf_map_pages_alloc() has some weird and confusing interface. It fills > out pages (second argument) and also returns pages as void *. Why not > just return int error (0 or -ENOMEM)? You are discarding this ptr > anyways. > I will change it. > > But also thinking some more, bpf_map_pages_alloc() is very ringbuf > specific (which other map will have exactly the same meaning for > nr_meta_pages and nr_data_pages, where we also allocate 2 * > nr_data_pages, etc). > > I don't think it makes sense to expose it as a generic internal API. > Why not keep all that inside kernel/bpf/ringbuf.c instead? > Right, it is used in ringbuf.c only currently. I will keep it inside ringbuf.c. -- Regards Yafang