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 DD98DC3DA4A for ; Mon, 19 Aug 2024 09:33:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 58E0E6B008A; Mon, 19 Aug 2024 05:33:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 53D816B008C; Mon, 19 Aug 2024 05:33:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4045F6B0092; Mon, 19 Aug 2024 05:33:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 21C816B008A for ; Mon, 19 Aug 2024 05:33:24 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5DE5D1210E6 for ; Mon, 19 Aug 2024 09:33:23 +0000 (UTC) X-FDA: 82468481886.27.982183B Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) by imf19.hostedemail.com (Postfix) with ESMTP id 841601A0007 for ; Mon, 19 Aug 2024 09:33:21 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iM7QBaCl; spf=pass (imf19.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.167.48 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724059986; 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=4J0qnFMOrentkiYGSo1a6B/wDJGaxKW/vSk+dkg0+20=; b=U8UsSdFMoTETGGxTavnKJbdOmHPHKnIKOGKLP2gP4JjeposeLLDuFfnP8L8YoUrs7vRvme pn2gTQuRhcBQXMUsrtlkMBHG0zWjsNuw2tzmWA1wu0L5y3SICVtlldIc4gn0L2g152a6b5 SJG/6aQgCRZc8ZnIZjOb7zjV0yorLYo= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=iM7QBaCl; spf=pass (imf19.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.167.48 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724059986; a=rsa-sha256; cv=none; b=vgs+wvKUK+qsfEYn+Z9yJq/PX8N65uLbEcrHmwE67CtG4qBBmu2xU3sU8tpEPxLntvEFxn U+lGNTBNTIRqQ3CQsLzWHTPueVOikn21gR4ta/5xa+/dFhK1eQh5kPLWVL+w1ba5tO3KCb JZrRxYCwY8k1uhENSV+t5VxL/yvedNk= Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-52f04150796so4866174e87.3 for ; Mon, 19 Aug 2024 02:33:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724060000; x=1724664800; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=4J0qnFMOrentkiYGSo1a6B/wDJGaxKW/vSk+dkg0+20=; b=iM7QBaClSO5MsucgMCBbNWIJQCHZOFpCqZpfSugnpFlFeZ5BAMLWC6BwZivZqsrNFg JpQh+DMWwvClxCplX1oQvuw+2BrAreN/Qyh9UhySMOFQ9+UJtCdWbEusx+yV1VwbPlw3 TrrZQzCfRrnTssdb4b2Jk4qB4NdeSHbelGelhCHmzbNuewQOk20TE5JTvlWn/6sx5sB/ odgQwZqkI26yjuVCFoT5kQOaUMgLF4wCOfqM80fl6J+cqQMxzicf2FSvAc+1dNIG+dpW Q8w7Ul5xFiei+2M18nxP4R8CNVB66ZZNB8dTmTg1DDYfkGtmMCdVZtvzCiw768nKoI26 UACg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724060000; x=1724664800; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4J0qnFMOrentkiYGSo1a6B/wDJGaxKW/vSk+dkg0+20=; b=dP7x9v87etBRREL1XCHZixYakrYwYlgF9f5JLJVLr+Cr1IwB7s1R3jxPjiXqiEbegR gKxnJR/QFw9RHXyBoO4HBnyJsjQi8MRM4/auBn6aH/cJidVVUyI16JajQWhWTMp08WUP cW4xr6TthoCCK73tzuPDA3/of3MaqEjcbQ1jhoJ4LE0dIyH3SlLR2Zfh96ge/z2t62Cd ulKBbsSux4oMc4BIRq4oOURvCbdo+qwc8rcFvsvtpDczic+ruF5ziIpykaX5N3iWNfkb 7pNewnIwnAhslClVICl5hC0Ffh/lp2Tpp3A0O6f+iP/BYO0wk+QAbgPRFP6X9FcckUSL AbUA== X-Gm-Message-State: AOJu0YwSb5IjeU7cwyDtXKzrtUZuJQh5/SUcqNj7DIPn4lxZa1nytueO tsQKiw2lCKJ1PndI6iAoEurESYn0ixHl/9RCBFnHYLnuSMxFoQUSEspt2keQOK+IO/zAV3T5SNp WdU84nMem5p/0YC8tmeoEzEGf3bo= X-Google-Smtp-Source: AGHT+IHx7dzPA4pAKBAD59yH9aV6fV05WUH44yrhFBeWZHGXcwnavSQUNf6F0zWGxzXNv1T4Ba0QyG+JyvsZC3YkObo= X-Received: by 2002:a05:6512:39d6:b0:533:c9d:a00e with SMTP id 2adb3069b0e04-5331c6ba097mr6053221e87.34.1724059999456; Mon, 19 Aug 2024 02:33:19 -0700 (PDT) MIME-Version: 1.0 References: <20240819070204.753179-1-liuyongqiang13@huawei.com> In-Reply-To: <20240819070204.753179-1-liuyongqiang13@huawei.com> From: Hyeonggon Yoo <42.hyeyoo@gmail.com> Date: Mon, 19 Aug 2024 18:33:06 +0900 Message-ID: Subject: Re: [PATCH] mm, slub: prefetch freelist in ___slab_alloc() To: Yongqiang Liu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, zhangxiaoxu5@huawei.com, cl@linux.com, wangkefeng.wang@huawei.com, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, vbabka@suse.cz, roman.gushchin@linux.dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: 3w9t768z1wxsxaqcyzgf93hh9yfgn64i X-Rspamd-Queue-Id: 841601A0007 X-Rspamd-Server: rspam11 X-HE-Tag: 1724060001-221139 X-HE-Meta: U2FsdGVkX18Pls3Uux1Ptm8lx6f82wGnqcLNcPwPR4GrSfDOkd3wNQGzJF/fKRZG3lqLbvSGZND1LgNGZyxHTGQxvVO9nh6Zfh6n5B0AY9ip9r6dFNiF9V8ZHIeGcjVIVN8NPAS31SnQ1G4pOi14qyaR87DijdVxdyFKk8/X3/Usr8Z7y4IyFGVv+1w05TAEmzDYg6XMjgl/H1+ttirCCbuyxrT6ChEvK6pGwZo2UGgnLJeHjxDRUvDlx0576QEH/TA45H2wE5WgZ+YYUmgBRIenF64Zo8eYtEOrudnsGILapef3za4ABMuOldqvIl0/mGDjQS/vwSgfR/cJjEBvgv86LcGIL+0x5+KBAPSg4RoQ/VCSN0hoHUJqDdGBb/zQqQa2ToPN99vWIYK+iQmJpdZBC6haTdqqgwgyeJV4DBUlUWVdh4KYkpGoKTb6BMA0OX/79BPb74oo0Y1OKIlFWBTshiLXweqWiqLKk8Jm3WORQJwnHBZ52o3N93dcbHYTkZ5+OxCgFZXdYwT0Esnc00upi0UrCBCvR8qDGd6NGMPDM4kTmzTwEsqLgKpiKh4dxzpykUYqqgideMG+4xyxeAyRKioHstzmHCYO4A7FVgTrG75vVOzQ8ZiFUsObr0fOk4Gct8cY8MVvmceSW0/W0WQLtTEn/7k+pPKnrHnX8W+PEMu+PVmg6a79xvSiVLkikA3T5XGLKH16xdaxjW+2/k1NT030xTCLC0j4ru7x7hegBo7xrmsOElCc2iY/OLZUfNE88HzD2z1vgnMqlCtzBBcBx6NOth59HkkKm4oaRe2rz5a3e28Tt+9UmKCojNeVg11ecP2qoF8+ryR8r7OPAgMF9l1NguRW/tHNLOWDYPOZLBZlTRXNw/PUOwNninOnlaDPuqVShyhxwA/GQ4yYTdfaxbutTLPCQ9hKLPMLsG4sKqhcZvwwHvOzhks1JbTvhEztamB6JDYpRlt1B4d bwhldWdN RAD0NUkFXlSh4QIw8+MuvfNvt8pHagJaKDMDuaX+/jGYK/vG6jvi84cyLXN5RYeWC+J76tCYXv1jRPXVqNCGnBnVsK3925K2udgy8c/HoL0YaSkJ3nD46hWSOMy+4V9tCXglZsMPwnDK+MyOn1F1fkIRzmhL8Fe7IeQC6RlLrSFZRjIzeao8QICcPgsslJCSr4UizTVOiIo7R1vQqrnPZ8S4SU59AXR+yvw/5GNfeuL5cu8Lw0U/M6O78d/IL+L0VWNShktGt+VgsW0xfNFQfI/c68MWS0H8cr271zfEhhpDQpOKiQOs1gZ/OxAHKKbhyrmIR85bEwqpavmWoDDopHlUrsdX+1d1Cku/SfXC7MgEP88a+2LJEQZsa/zBvbAp2PXsVeH46WHdfHCw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 Mon, Aug 19, 2024 at 4:02=E2=80=AFPM Yongqiang Liu wrote: > > commit 0ad9500e16fe ("slub: prefetch next freelist pointer in > slab_alloc()") introduced prefetch_freepointer() for fastpath > allocation. Use it at the freelist firt load could have a bit > improvement in some workloads. Here is hackbench results at > arm64 machine(about 3.8%): > > Before: > average time cost of 'hackbench -g 100 -l 1000': 17.068 > > Afther: > average time cost of 'hackbench -g 100 -l 1000': 16.416 > > There is also having about 5% improvement at x86_64 machine > for hackbench. I think adding more prefetch might not be a good idea unless we have more real-world data supporting it because prefetch might help when slab is frequently used, but it will end up unnecessarily using more cache lines when slab is not frequently used. Also I don't understand how adding prefetch in slowpath affects the perform= ance because most allocs/frees should be done in the fastpath. Could you please explain? > Signed-off-by: Yongqiang Liu > --- > mm/slub.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/slub.c b/mm/slub.c > index c9d8a2497fd6..f9daaff10c6a 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -3630,6 +3630,7 @@ static void *___slab_alloc(struct kmem_cache *s, gf= p_t gfpflags, int node, > VM_BUG_ON(!c->slab->frozen); > c->freelist =3D get_freepointer(s, freelist); > c->tid =3D next_tid(c->tid); > + prefetch_freepointer(s, c->freelist); > local_unlock_irqrestore(&s->cpu_slab->lock, flags); > return freelist; > > -- > 2.25.1 >