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 16C6CC4345F for ; Tue, 23 Apr 2024 11:22:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 693C66B00FC; Tue, 23 Apr 2024 07:22:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 61CE76B00FD; Tue, 23 Apr 2024 07:22:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4BD586B00FE; Tue, 23 Apr 2024 07:22:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 2C7556B00FC for ; Tue, 23 Apr 2024 07:22:52 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 99FA4A19C9 for ; Tue, 23 Apr 2024 11:22:51 +0000 (UTC) X-FDA: 82040559342.24.343A87E Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf11.hostedemail.com (Postfix) with ESMTP id 6A2EC40002 for ; Tue, 23 Apr 2024 11:22:49 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="CPxgdS8/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=lPnBLBIb; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="CPxgdS8/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=lPnBLBIb; spf=pass (imf11.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1713871369; 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=jCZlYXq1paNp3TYQHoyMwR+KhPeTr2SbZKL+a8ePBwA=; b=fjqCpEUieXO5QUIBl8B2in8Po1w8sJfgC+Q+D4qzszB4aCRBBDkql4hTTQ6JIBqRHepTUJ /MGxnL07Ph+86hvpKoLyriXBJod8GCblChAMOd1OZdALLQ/yDd2rqzZAYeeWkcU1qoaoWH PidHlEp8Rv40ZNxwkburlHmx4Rl5BeA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1713871369; a=rsa-sha256; cv=none; b=bG6EpcSPqhX3VQkd9Y6V+REgw5OTBO39L/+7XzH0/1+O5NXGWcQwxs6bZYrqlawDG/Uwyv Ptwt8n9Pa3Ts7GQDe7D0Ln383yRdN02HxX+fV1DgW8/2KR1/J3QVSZ2emt8CWlSu78KkBg c6Z4k0OyWa4HMsqqB0GsbQ2bmoDGdao= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="CPxgdS8/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=lPnBLBIb; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b="CPxgdS8/"; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=lPnBLBIb; spf=pass (imf11.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz; dmarc=none Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 736B537E4F; Tue, 23 Apr 2024 11:22:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1713871365; h=from:from:reply-to: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; bh=jCZlYXq1paNp3TYQHoyMwR+KhPeTr2SbZKL+a8ePBwA=; b=CPxgdS8/qQ2cSHrx5GCW8fC/DtQvKXIAc+ps9fjniLJqPYkNYuwKs1CLgiXqLLfljZE4ef SEqDfGZ5w1cvcDFgNaYUq6HG5kic6qaZjKykSmqt3qsIxPH0wdOB6b2DokOFptL0v7Ew3C Rk4qc2rdVtHtnU2GZpcMsICuUXlf3yM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1713871365; h=from:from:reply-to: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; bh=jCZlYXq1paNp3TYQHoyMwR+KhPeTr2SbZKL+a8ePBwA=; b=lPnBLBIbOmII//8U9DN7PDQfAh9476PfGNckUGEph4SUBKS9qf+L+oq75v3qiDgPqFrrC3 CGMu0xqJv8HCddDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1713871365; h=from:from:reply-to: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; bh=jCZlYXq1paNp3TYQHoyMwR+KhPeTr2SbZKL+a8ePBwA=; b=CPxgdS8/qQ2cSHrx5GCW8fC/DtQvKXIAc+ps9fjniLJqPYkNYuwKs1CLgiXqLLfljZE4ef SEqDfGZ5w1cvcDFgNaYUq6HG5kic6qaZjKykSmqt3qsIxPH0wdOB6b2DokOFptL0v7Ew3C Rk4qc2rdVtHtnU2GZpcMsICuUXlf3yM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1713871365; h=from:from:reply-to: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; bh=jCZlYXq1paNp3TYQHoyMwR+KhPeTr2SbZKL+a8ePBwA=; b=lPnBLBIbOmII//8U9DN7PDQfAh9476PfGNckUGEph4SUBKS9qf+L+oq75v3qiDgPqFrrC3 CGMu0xqJv8HCddDw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 558C913894; Tue, 23 Apr 2024 11:22:45 +0000 (UTC) Received: from dovecot-director2.suse.de ([10.150.64.162]) by imap1.dmz-prg2.suse.org with ESMTPSA id P+GnEwWaJ2bcPwAAD6G6ig (envelope-from ); Tue, 23 Apr 2024 11:22:45 +0000 Message-ID: <04d26096-4074-4bbd-aac2-85beeb5065dd@suse.cz> Date: Tue, 23 Apr 2024 13:22:57 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 0/2] slub: introduce count_partial_free_approx() To: Jianfeng Wang , linux-mm@kvack.org Cc: cl@linux.com, rientjes@google.com, akpm@linux-foundation.org References: <20240423045554.15045-1-jianfeng.w.wang@oracle.com> From: Vlastimil Babka Content-Language: en-US In-Reply-To: <20240423045554.15045-1-jianfeng.w.wang@oracle.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 6A2EC40002 X-Stat-Signature: 8ck97aapqg8niaqbwqyu9whxoj7t79b5 X-Rspam-User: X-HE-Tag: 1713871369-786438 X-HE-Meta: U2FsdGVkX1+UDxuqlqU2zsrUdBPN4fsHNvgTX5lJ6Pf2SxhQuIB3lZPIB5aBVbxfP97d8N/JeW7IPKT20xEZVE4rkel4OcrVEb+mBKWX4Us5Hm913Ie2FhZi5Fh83lWUMry3fEqzT/oQp0SeZWnWaLlKDCZjt3nZ1oVk5B7z3d8wETGWyozCy8e8h2enlra5U92pPyH6v72osoXFxfsASBgBZrGgdRcOU6DZ1fPGSwmWYJVeHDgdK/8CTFInfk0zYSRJ9bb3qDess225qwivUaUWtZW7D2z0gWnIkzYPOpmQXCv/SyjtP0z46B+4FhoBTWXXs0RGjeZ1oFM5pl9YBdFibyLJWrjNOmRaqSCF2jT+uTAh7yfPLKP6dv6to8yECjbm01jNJkfQkEktHbJsVTDlzF3dnIkYI4PDvhtqkFxtUzKJ8gLxtWOWsf+zmaczXQDtVodI1/m0Vm9jGW2Nn6Gf92xhva3StlndlN5TPLN2YKMqCZCerQ94H9ex8uC80stpaYIa7f2g0CwLNbnnyNCyofZpREqEaxsLBUB8dmgvMced4918/ijYMH14P9il4cT91kZtxCp5TvsBqBSVPeupHK15j2mmniIOvX8Gaq8CoYp3AvIl6Se6ZrJJWz+1WDDTPPU2vBhXWV2iMZIY6eOZx0gL7pUeVolE+ntYK75VMqGkXHCH3y843QdHngFTdN5xRoABmyCy5rbuxUchbiBTsjeay7GJJdNOz+3S3dTPxRT3paCDA+LcprgT+qj9lmFm4zBfsUOaJVJSk+xl1+6YIBINjUqkccbVGZ8BSgjPua6K6E/CTQyIAp0draiGjJaPRtXQnbo9XJXKGW5e75Rio0aPm7dBTDIgTva1wUDv/583CSvK5sw5Y7V/7QQdfNPBGYURB8pVI11zKc6+t1sCUQ1JsLUeLlxxT33MHoPPSyW3OEF5Sa9h4ehKgkEIihbD/aaVGqx2T/KRtI/ hLLnoL0b YGJomTdhuk8YfCag= 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 4/23/24 06:55, Jianfeng Wang wrote: > This patch fixes a known issue in get_slabinfo() which relies on > count_partial() to get the exact count of free objects in a > kmem_cache_node's partial list. For some slubs, their partial lists > can be extremely long. Currently, count_partial() traverses a partial > list to get the exact count of objects. This process may take a long > time, during which slab allocations are blocked and IRQs are disabled. > In production, even NMI watchdog can be triggered due to this matter. > > The fix is to limit the number of slabs to scan and output an > approximated count for a long partial list. The v1 patch counts N slabs > from the list's head and then uses it to estimate the total object > count in the list. As suggested by Vlastimil, the v2 patch uses an > alternative, i.e., counting N/2 from the list's head and tail, produces > a more accurate approximation after the partial list is sorted by > kmem_cache_shrink(). In the latest version, the implementation is moved > to a new function count_partial_free_approx() under CONFIG_SLUB_DEBUG. > count_partial() is still used in sysfs. > > --- > Changes since v3 [3] > - Place count_partial_free_approx() under CONFIG_SLUB_DEBUG only Thanks, replaced v3 in slab/for-next. > > Changes since v2 [2] > - Introduce count_partial_free_approx() and keep count_partial() > - Use count_partial_free_approx() in get_slabinfo() and slab_out_of_memory() > > Changes since v1 [1] > - Update the approximation method by counting from the list's head and tail > - Cap the approximation by the total object count > - Update the commit message to add benchmark results and explain the choice > > [1] https://lore.kernel.org/linux-mm/20240411164023.99368-1-jianfeng.w.wang@oracle.com/ > [2] https://lore.kernel.org/linux-mm/20240417185938.5237-2-jianfeng.w.wang@oracle.com/ > [3] https://lore.kernel.org/linux-mm/20240419175611.47413-1-jianfeng.w.wang@oracle.com/ > > Thanks, > --Jianfeng > > Jianfeng Wang (2): > slub: introduce count_partial_free_approx() > slub: use count_partial_free_approx() in slab_out_of_memory() > > mm/slub.c | 41 +++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 39 insertions(+), 2 deletions(-) >