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 498EBC4345F for ; Fri, 12 Apr 2024 18:23:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DAF8B6B009C; Fri, 12 Apr 2024 14:23:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D60096B009D; Fri, 12 Apr 2024 14:23:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C27F86B009E; Fri, 12 Apr 2024 14:23:55 -0400 (EDT) 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 A3A476B009C for ; Fri, 12 Apr 2024 14:23:55 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 3745A120F60 for ; Fri, 12 Apr 2024 18:23:55 +0000 (UTC) X-FDA: 82001703630.25.D8EDC1B Received: from gentwo.org (gentwo.org [62.72.0.81]) by imf12.hostedemail.com (Postfix) with ESMTP id 91D8A40002 for ; Fri, 12 Apr 2024 18:23:53 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=linux.com (policy=none); spf=softfail (imf12.hostedemail.com: 62.72.0.81 is neither permitted nor denied by domain of cl@linux.com) smtp.mailfrom=cl@linux.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712946233; 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; bh=TXudRz4hhYnCxOpofreETA4x+N18YNPDltFINFXPF5g=; b=nSfA7mkt6+Wkgg66XB2FRKQ7Edd/IfkbyA13xdOJr/FjgI92Vr3YGhbO+YFqKPAwZBvupW RYypQwuX/upfWF6Bda2lr5KU6UZIAP5LiyEaaWUyQ8z28segETf2dvMGjT59F8oSuon58r Y5KUfItupmejJ1qMuj/4zclYU/qLuRY= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=linux.com (policy=none); spf=softfail (imf12.hostedemail.com: 62.72.0.81 is neither permitted nor denied by domain of cl@linux.com) smtp.mailfrom=cl@linux.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712946233; a=rsa-sha256; cv=none; b=mgkNK5VimHnJcMTXGJ0wVBWeWlASdG+M5bIewPDXVUvcs12Saa5bWMS53jc2zufTRrWzW/ +2R3EhscVngOuPnvqJm5rt53aRftVJVo4RJaGY2ZEkvuzbjzah8MFtyopiU6NBLArjjjW5 qA7otMlTXepHSN59z7AdK7SdF7zX5TI= Received: by gentwo.org (Postfix, from userid 1003) id 7593640A96; Fri, 12 Apr 2024 11:16:10 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by gentwo.org (Postfix) with ESMTP id 72EDE40A8D; Fri, 12 Apr 2024 11:16:10 -0700 (PDT) Date: Fri, 12 Apr 2024 11:16:10 -0700 (PDT) From: "Christoph Lameter (Ampere)" To: Jianfeng Wang cc: Vlastimil Babka , linux-mm@kvack.org, linux-kernel@vger.kernel.org, penberg@kernel.org, rientjes@google.com, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, junxiao.bi@oracle.com Subject: Re: [PATCH] slub: limit number of slabs to scan in count_partial() In-Reply-To: Message-ID: References: <20240411164023.99368-1-jianfeng.w.wang@oracle.com> <38ef26aa-169b-48ad-81ad-8378e7a38f25@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Rspam-User: X-Stat-Signature: 4tr8wspg88wgc8gij3r5bhknd8y5cefy X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 91D8A40002 X-HE-Tag: 1712946233-415205 X-HE-Meta: U2FsdGVkX1+WcS/AOXgHKIeVJaU50lF+8EZ03C5i8zVJWqNLLJeD2rWTOWuzD2KNVr1Oi5Lb9xyBtmggB6OG5EY04TQtzDije0JPJytEg22wI17pN40oNr3A0sdkUnJ1mK1IjkyYlr0hfZ4xLaFWqg253SqYNemv/umO2CduSGlQrsf3dc+qPg78be6ZpCHLDhTdVtDEtEsmav+d0c+UsGIaOjXCZphWM/V781+BRGfAQrAgPOROg39gLYMsk0NWFcen/QcE37Jqgrw9AEfM29c0YSM//9dBzqJjlVmlqt6glRZxBS6ErnC8TLLmECvxPucFCPMEYNs4/gWMwM2twwm0ave3cJoTQ9WhfXRp38Vnja22fxwjGtWXCdm81H0phNee0ldzwBEFpAVhcYOsdRBHpZ8QnIRyVAFOt1ex/pILaxa6jqA20JaJbvcRGzNz/8xhZjMaPxa9WZjmRnJOxgn2sjDal07XneekMjfzfPZfT/YN4XUQqJm6BekWx7BYwT0bTXVeMhru3VdD4mv/+ImLwTBo7I+545ly7WwfDZ9aMl2YXjkhCVLq1Axq695Z7WZU6RukGtdgt8loWUaGj8MHQtxQ59ruilKql+YuTRcl/XFS5YhtStGZ/AIvmfbnDLUkNfhTqWbDfpIN6zhT3Ktuj/3MzbMGqlz0uVoHK6ih0uIibbS3xyPZXWIiZOoBGQDokitBFnME+ii/CihWQ4moXRP/o04nx8Gd6aaeAWXcIRcHuUGqoIsOGFJSX/6LMCBekl8lyCy8BQH7FRs9LSGUZokVS4LTzKa7qNhgPcfqepKsz0LW6UsXdsfWmEVBG3l6U9gkw0fVUXFXF/tJ4cgdQvhcE5bzGOVdz5x3e1v0XNsUD7Sr4N5q5TLsbE6pMPiU6IJGMxI+Faz6cZEdJP/npzJRwaduYkNHFj1VmrgV4V4qilNLf8DSirkeBz6xxhhUhap6lgnEAB20ZMr ZOHsgoyL esvo3TeIzNuaBDkhyl7wz0njJ2AfyDi+MIn406XvavwSmzq6BhXDqjuAVEnvMvZTdYz+yKhfP+S/VORgazd22lFQVWAlibYhRByrr+hzl/I7dMdGi9xbv6KevLA5/H9VDQB8IfE06m083A9p77/nIJZ2LldEVYQkGaYwytopFPaMNh/uzRTq/teCpfg== 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 Fri, 12 Apr 2024, Jianfeng Wang wrote: >>> Can you run some tests showing the difference between the estimation and >>> the real count? > > Yes. > On a server with one NUMA node, I create a case that uses many dentry objects. > For "dentry", the length of partial slabs is slightly above 250000. Then, I > compare my approach of scanning N slabs from the list's head v.s. the original > approach of scanning the full list. I do it by getting both results using > the new and the original count_partial() and printing them in /proc/slabinfo. > > N = 10000 > my_result = 4741651 > org_result = 4744966 > diff = (org_result - my_result) / org_result = 0.00069 = 0.069 % > > Increasing N further to 25000 will only slight improve the accuracy: > N = 15000 -> diff = 0.02 % > N = 20000 -> diff = 0.01 % > N = 25000 -> diff = -0.017 % > > Based on the measurement, I think the difference between the estimation and > the real count is very limited (i.e. less than 0.1% for N = 10000). The > benefit is significant: shorter execution time for get_slabinfo(); no more > soft lockups or crashes caused by count_partial(). Wow. That is good. Maybe decrease N to 1000 instead?