Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp1239653pxb; Fri, 21 Jan 2022 13:06:42 -0800 (PST) X-Google-Smtp-Source: ABdhPJzO4cuIh0WzGubG+Cv8j7oyFMXLRuqO/m9X+Nbvha4Rh2C+haqMK5QvEGZXRTmF6cRj/rqz X-Received: by 2002:a17:902:830c:b0:14a:dffe:d2f2 with SMTP id bd12-20020a170902830c00b0014adffed2f2mr5689552plb.24.1642799202474; Fri, 21 Jan 2022 13:06:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642799202; cv=none; d=google.com; s=arc-20160816; b=QhQo/DvGzmEjYgGvLM7IWVpzlI7ktp+Q7nv3E2et9nn3HjUmzRc0w8IcQLNZMRX4v7 0Emew6bDjRQG+jfH9PvAdWMuixQHk4DIt33F6/VEuo3Pa8tDtP9P1jEoKCNFslt6ouL3 7Kb6ZQn4Unw7e4kVYZy1YTgOh/xcsjI2nP4NwiPfrktOVFKnU3U3VxNqmv+JcHrARhD/ hWA8ZraAKpOqCY+4fwGXgSJTdtn6eBMXlP1GsRfui/ShNYDpk8+9I6OdykSJracAe7OK EY/olkfl869E0BWsaydXx4JpA+XEQAxH50vgSF0a/G+t31AODLliD+UzENnHG4sfkEE+ gG1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=pff7LtwS9rqu2dIvCcRFiA9nkzuhU2cBqVvleie1e1M=; b=KdDIk26bqIBe1oI09cLOONTQ27DAM/pqcVjc4Cpw3xXkixVvSxh8IGWoCH/UszSDKg OvCsZxp6wwqGxtnhQsTqQroFAbAEyF0LvZydNTyTv2/LkOA++ATGdHwLHO65uc0uaR5z WzqEjCQvR85bgAL2BvghBRPbnEeYfYLYlgi4zyvH2iuqRluUpKHr+JqLAD1zhGZLgkkR f4OYZhFAuVGkzhezIrPtJCPiz1Jb5R9x36YuHrxpAuDK6Lqfj+aMalfGhq47haqMSoc/ Yz6nbbaC7jD3zJ4Biv1DK3Lj3r8pX6EZF/GgRFWNRtUWECZd+Ql24c+p5djB3fssHELB 0Dow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="QMHsv/Wr"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p16si8543031plf.450.2022.01.21.13.06.30; Fri, 21 Jan 2022 13:06:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b="QMHsv/Wr"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1358548AbiATEug (ORCPT + 99 others); Wed, 19 Jan 2022 23:50:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358540AbiATEue (ORCPT ); Wed, 19 Jan 2022 23:50:34 -0500 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B6189C061574; Wed, 19 Jan 2022 20:50:34 -0800 (PST) Received: by mail-pl1-x62d.google.com with SMTP id u11so4177254plh.13; Wed, 19 Jan 2022 20:50:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=pff7LtwS9rqu2dIvCcRFiA9nkzuhU2cBqVvleie1e1M=; b=QMHsv/Wr99MvwQ03YELXn+d9tM3kW1XkHdw8ES+5IDc8OQ1nbdn+h4eCQdeo4kF4HO B8X46vtrNKdzqBdWypgukxw8aDS6isHNjVaecuhhJa6zsc/+3RyHmEaolGTcWOKPGLw8 QLF9PotFuSg/s3mD8L/Y9Jj7aSjKYvcMFf0XYhQJj9NnxEhthZyAiy/fTCLX94MhKkb6 uroCupQoKfwZdKtIr/SVWIjsD0k1twlHsz1jDHnQc5fXnN383Ks96hNS0J52j4boHVAS 8YedzB6T+6bWg5RlSZocLdSeeWJGpS+fifzLqVbBTyyj35ySuY0AP+vS4pnLwO2JEC8N dAAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=pff7LtwS9rqu2dIvCcRFiA9nkzuhU2cBqVvleie1e1M=; b=AGe3+OTiZi9FFelhNlmCdVrdTu1g/ZBRwEcCCLoBoznhN/ybkWBQrA6T1fNkf/ovdK K08MpAzhbQEOjRX9JX9EcYpnjZXI3Vt5EpK804+yMZ414E58m1JVOBn4ye7AKF/VtDBP NGoVd4ptqb75iK82M9dc6oYywwisRPLVdmn3C/rZzPuNcZtcoif4g/1GWVe+Ps5n4aRc DF9xuWhNLp6Mhi+Cby/ITjzmeVeE13iwPdZunhPoFqag5x0nzjCn8MyCudZvVA0YVXHf vX7a4NYduj8t6ao5tL9P+BroJi7/bmFXi6JTkYZDS+dE0fapspv6szQKMsWLilOjTwu0 9FgQ== X-Gm-Message-State: AOAM532WRCtTOkmIpAem6WBR90d2hzPDJI3YqgTljmZm/7wMdqQwjvcb u7A4WWBpreIAMlTJ9VXbEXUyMN7w5CBToMWoNig= X-Received: by 2002:a17:90b:3b4f:: with SMTP id ot15mr8731637pjb.138.1642654234229; Wed, 19 Jan 2022 20:50:34 -0800 (PST) MIME-Version: 1.0 References: <20220119230620.3137425-1-song@kernel.org> <20220119230620.3137425-7-song@kernel.org> <20220120041421.ngrxukhb4t6b7tlq@ast-mbp.dhcp.thefacebook.com> In-Reply-To: From: Alexei Starovoitov Date: Wed, 19 Jan 2022 20:50:23 -0800 Message-ID: Subject: Re: [PATCH v4 bpf-next 6/7] bpf: introduce bpf_prog_pack allocator To: Song Liu Cc: Song Liu , "bpf@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "ast@kernel.org" , "daniel@iogearbox.net" , "andrii@kernel.org" , Kernel Team , "peterz@infradead.org" , "x86@kernel.org" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 19, 2022 at 8:48 PM Song Liu wrote: > > > > > On Jan 19, 2022, at 8:14 PM, Alexei Starovoitov wrote: > > > > On Wed, Jan 19, 2022 at 03:06:19PM -0800, Song Liu wrote: > >> > >> +/* > >> + * BPF program pack allocator. > >> + * > >> + * Most BPF programs are pretty small. Allocating a hole page for each > >> + * program is sometime a waste. Many small bpf program also adds pressure > >> + * to instruction TLB. To solve this issue, we introduce a BPF program pack > >> + * allocator. The prog_pack allocator uses HPAGE_PMD_SIZE page (2MB on x86) > >> + * to host BPF programs. > >> + */ > >> +#define BPF_PROG_PACK_SIZE HPAGE_PMD_SIZE > >> +#define BPF_PROG_MAX_PACK_PROG_SIZE HPAGE_PMD_SIZE > > > > We have a synthetic test with 1M bpf instructions. How did it JIT? > > Are you saying we were lucky that every BPF insn was JITed to <2 bytes x86? > > Did I misread the 2MB limit? > > The logic is, if the program is bigger than 2MB, we fall back to use > module_alloc(). This limitation simplifies the bpf_prog_pack allocator. Ahh. Missed this part of the diff. Makes sense.