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 BEA61C352A1 for ; Tue, 6 Dec 2022 16:08:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 62B8F8E0005; Tue, 6 Dec 2022 11:08:18 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5DB908E0001; Tue, 6 Dec 2022 11:08:18 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4CAE98E0005; Tue, 6 Dec 2022 11:08:18 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3E3178E0001 for ; Tue, 6 Dec 2022 11:08:18 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1993AC0790 for ; Tue, 6 Dec 2022 16:08:18 +0000 (UTC) X-FDA: 80212363476.20.79B29D2 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf23.hostedemail.com (Postfix) with ESMTP id 835EF140018 for ; Tue, 6 Dec 2022 16:08:17 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=CMBgEFYO; spf=none (imf23.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670342897; 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=3QwSqDt++m9/zROdaadAwgLq1cg/29F6bPU0ttuj7tI=; b=f9SeXLMmQsN88Co9jK1sguo36oWoYrao10RU8cophuLrNKSlEVj2oXMAym+Im0OnJ5avig CDYIdxOSAjcLakwZtA1CB3bqqlzb2BvVBmz2XBR9AmZedvDQlY6f4fbYGxTOTPwa+cjm1i E0sGWMGEekumGvJbdSd+5E0L4Z6KyOc= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=CMBgEFYO; spf=none (imf23.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670342897; a=rsa-sha256; cv=none; b=XlOPHisc11Ikwbcw5MbrY/4IfeuQGeFjl0yNuTOiloswBLkAUHuWvp0eBvVrHpFHWCoY7z alYzDl9VsZTcpN5u932XOZJ76bicgmU4Dw/iZLmi27zyx1IuaGSLPRcWYP4h55u9GexolG vaiPpkrln+Y7MPZ0KD8w0f3cj3GO8MY= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=3QwSqDt++m9/zROdaadAwgLq1cg/29F6bPU0ttuj7tI=; b=CMBgEFYOyS3y4QN9/81ROmNl5o 15hL2UwsY9qP7a96tTeXPTM6DkywPCxjImVWpqZBs/61aHFK17OaD0miE9xujioc7krVBHUAnroIU L/YeYuLxiKGAIMbnf3KIolkRAz+WDyrv9vPhekiCpOQM8wFXlZMxpTgYVDmPQlzrqhPpJsJo1iDlS 3W01kyob5g+akPa/S4vm/jkt9GeknBrWUZjlhvDZRUuLmXJiaPvC2sS3qre8stYU4b+F/piy50E8N BHdkGfnWfnMT7IPanqJHbtRKGnD5xgWujIk4PEwByinBqIv1tz+CxKXMVj2ZB1icINSg6yc+m4IaH rOhudT7Q==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1p2aUT-004aIf-Og; Tue, 06 Dec 2022 16:08:17 +0000 Date: Tue, 6 Dec 2022 16:08:17 +0000 From: Matthew Wilcox To: Jesper Dangaard Brouer Cc: brouer@redhat.com, Jesper Dangaard Brouer , Ilias Apalodimas , netdev@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 00/24] Split page pools from struct page Message-ID: References: <20221130220803.3657490-1-willy@infradead.org> <7cfbcde0-9d17-0a89-49ae-942a80c63feb@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <7cfbcde0-9d17-0a89-49ae-942a80c63feb@redhat.com> X-Stat-Signature: 7k6fgyt1ei9n9nno7ensdgibgi6gopr3 X-Rspam-User: X-Spamd-Result: default: False [-1.79 / 9.00]; BAYES_HAM(-1.59)[84.71%]; R_DKIM_ALLOW(-0.20)[infradead.org:s=casper.20170209]; RCVD_NO_TLS_LAST(0.10)[]; MIME_GOOD(-0.10)[text/plain]; DKIM_TRACE(0.00)[infradead.org:+]; FROM_EQ_ENVFROM(0.00)[]; R_SPF_NA(0.00)[no SPF record]; MIME_TRACE(0.00)[0:+]; MID_RHS_MATCH_FROMTLD(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCPT_COUNT_FIVE(0.00)[6]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_DN_SOME(0.00)[]; ARC_SIGNED(0.00)[hostedemail.com:s=arc-20220608:i=1]; DMARC_NA(0.00)[infradead.org]; ARC_NA(0.00)[] X-Rspamd-Queue-Id: 835EF140018 X-Rspamd-Server: rspam06 X-HE-Tag: 1670342897-921160 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, Dec 06, 2022 at 10:43:05AM +0100, Jesper Dangaard Brouer wrote: > > > On 05/12/2022 17.31, Matthew Wilcox wrote: > > On Mon, Dec 05, 2022 at 04:34:10PM +0100, Jesper Dangaard Brouer wrote: > > > I have a micro-benchmark [1][2], that I want to run on this patchset. > > > Reducing the asm code 'text' size is less likely to improve a > > > microbenchmark. The 100Gbit mlx5 driver uses page_pool, so perhaps I can > > > run a packet benchmark that can show the (expected) performance improvement. > > > > > > [1] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/lib/bench_page_pool_simple.c > > > [2] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/lib/bench_page_pool_cross_cpu.c > > > > Appreciate it! I'm not expecting any performance change outside noise, > > but things do surprise me. I'd appreciate it if you'd test with a > > "distro" config, ie enabling CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP so > > we show the most expensive case. > > > > I have CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y BUT it isn't default > runtime enabled. That's fine. I think the vast majority of machines won't actually have it enabled. It's mostly useful for hosting setups where allocating 1GB pages for VMs is common. The mlx5 driver was straightforward, but showed some gaps in the API. You'd already got the majority of the wins by using page_ref_inc() instead of get_page(), but I did find one put_page() ;-)