From patchwork Wed Sep 20 07:44:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Feng Tang X-Patchwork-Id: 13392248 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 C992CCE79AC for ; Wed, 20 Sep 2023 07:53:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6719E6B0129; Wed, 20 Sep 2023 03:53:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 620606B012A; Wed, 20 Sep 2023 03:53:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 50E076B012B; Wed, 20 Sep 2023 03:53:39 -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 3F8266B0129 for ; Wed, 20 Sep 2023 03:53:39 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 0EAAF16063E for ; Wed, 20 Sep 2023 07:53:39 +0000 (UTC) X-FDA: 81256211358.18.4882EF8 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by imf06.hostedemail.com (Postfix) with ESMTP id 2E075180007 for ; Wed, 20 Sep 2023 07:53:35 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=TN0QPOKt; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf06.hostedemail.com: domain of feng.tang@intel.com designates 192.55.52.88 as permitted sender) smtp.mailfrom=feng.tang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1695196417; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=aA+zJ22iLK4jP4Csdf14X3X/z4LJBxroN15n6AMYPqA=; b=G83jYbhZwEvVQ/JPvYHCKjmm+x910Dgzdeiu0wNFDAlRDJE2QfcDgYF0o6JxFZl+gYLYVS 5tWGHOP82gbrMkh7niTfvOeA2xWAxCpaimuj/OpcxV7XK+6QmfCUGTPhnCqAmFa6zrn89b hUc6y6b1mYEGQ2d/hxVqM/pJvWii26k= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=TN0QPOKt; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf06.hostedemail.com: domain of feng.tang@intel.com designates 192.55.52.88 as permitted sender) smtp.mailfrom=feng.tang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695196417; a=rsa-sha256; cv=none; b=KS/htzGF2dPNNNXQwtfZT7xA84jScDNmRuucQzdQlaOvfb6SiOpHCCbDpSzMgPvViZdimj b9uss/AnGvpn2+SdFeyN+4GxS13sdNS6EI2hM8+G86V7MDAfm4x+fh7pNOj9syLk6DnzGg S5+ezkxeIZoIwajUPsRegVd+vKUFB5A= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695196416; x=1726732416; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=cyF9k8+wKohW4Ip51mWA8jLGwLnjOpNLUoQ7IQBCewg=; b=TN0QPOKtdIlaIoINGVrIqIamuNYihR20hThD+HiA81m5QmMoauQzsoXY N485PE7psz/kxTJTuvAcQfCuuQNywcq7qWUHl4d6OzO0maOkf8wADFNr3 Tws0QzFMxFD9jbX9fStkTb4YtXgjSioli3XsKllLtIjId3D+8m6IFMAPq RmaLOIhXO8+H6aZQt2ESt1/KvWnEInaNddQth52j4Ugyt9QdEcwPLp+ty YxafwUTWyIPcHrfO4pAhNKn4KGYCh+d2pjfKaSK/PzYgQ0aCFXZ68JiWY +AkspVyq1jR8bZjVL7LNTKkQ5i1/A7IIkJwAq+JnufydKWDV7XCQzDg1e w==; X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="411095219" X-IronPort-AV: E=Sophos;i="6.02,161,1688454000"; d="scan'208";a="411095219" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Sep 2023 00:53:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10838"; a="870272968" X-IronPort-AV: E=Sophos;i="6.02,161,1688454000"; d="scan'208";a="870272968" Received: from feng-clx.sh.intel.com ([10.238.200.228]) by orsmga004.jf.intel.com with ESMTP; 20 Sep 2023 00:53:31 -0700 From: Feng Tang To: Vlastimil Babka , Christoph Lameter , Andrew Morton , Pekka Enberg , David Rientjes , Joonsoo Kim , Roman Gushchin , Hyeonggon Yoo <42.hyeyoo@gmail.com>, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Feng Tang Subject: [PATCH] mm/slub: add sanity check for slub_min/max_order cmdline setup Date: Wed, 20 Sep 2023 15:44:13 +0800 Message-Id: <20230920074413.1361547-1-feng.tang@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 2E075180007 X-Stat-Signature: n3uounup6sjqpoeqkpsq6751hrrrxgur X-HE-Tag: 1695196415-580855 X-HE-Meta: U2FsdGVkX19EOoE7BxCqHsTM+4NFS8cSLoHRudbuKolFi6/SavBR2SzMsDLodfMZegcBuPHMx/iY6ZoT4PsR2ydiCohFn0cwkgQyXE+n7+1D+SjYiULGld3+pP1WPIyovKwJlsH4D5eVhdi6WCroMnF5fjP3MIUeL3SunPYD/GX1I1YT295DCSoWMIoWVCdZfnwIXcaKc0lkSNwkWWYmE4sJGkGRfnYCirz3mzvk0IPyvUcO/gk6OAJPvKUdKh1v7hVC+fGoG/sA1uCAyL7Qrq6vQ78xQnU4Q52VHaUY+w2QS3MVNSiu3Xej84Y1d3wNQReXMx7tsi9V6AIl9jw+CbLuLm9esdoyOOOyn013tlj4DaG1TalIqpUhRnoCPHFrtloiE6nIcjrZ0x9cSVoLiXQL+pLE3Dq32hQ6P7hg2Ey+P8vxUfyxtFiutTBTDDkAeJ2IJUzPNso89fLnpN3sOakzVpq6Ycz6Bdm9du16sW7PVAZ9VHFMtmi5dDeczsdq6V4amIxRSz3eBdyBYpCqB01rfCCnEZZ1MaZx5YTEM7j8l7aA1yLWMD8Ozkumd5fVupEW3EKBt3/olDMNZMiGhnYvH8IF9pe0JNZrFvvdG2m98sAkmakCvPXS1Z8SHFBRiOEtAmGYJUTCuiuFV+pKVBqErMpptgGFdShkmxpIiJVFE2xxwV4L46xwi2GA83M3KXEC+Dh2bl29+GIgWkXgyNzlufbg0NPbG+62JevVJCs+gEp4xeKFmE0AdT+NNI6LsHvcZ1dDgYibZwQxlMgpZHjjqL6gKWLyysDPc53XipONvBHxAhS7aaU9bG4xgxnx+fgRcF/50mxIrjJGctKLtrMt8xM3StOeDFqKf1dmzKR2hXB0HGDtbZR+gWPxWkKtV02G0oPwts0wtRIXCJdFqUKiTYwgRr8Hq1WTtNtdgThFu1lfvgn44iSrvP+8uQ1xaYnGrcJaDVp9kjhqG7N wWWMVqx6 sPM0BxQNVIbCpZY70qPUV5s4yBDdAAYkCVhnAfgClBYDjRvnkhiaTBz6UzAty2QmWhWe5XzJ5cU3gite+OjhaPXKzT4czkFsEZ2idzk887aIjeokyNYIvB3tT5K9o3uLo8hz6x9sjtdH0h3j7P5Fr3TaU6xrwTF6eXaF/jfOeyBj9pJuIZR9Eb8X2ceWQqlIAAELsbC5PSAQ83tBCO2uF8PBXI4TCHItKKOjSBi7G2q5dsE96CDChz5Eq2ZSKlcI20fjuXz13p97djjalMshHoGPG87dSTg9zvI+o3mNNA5UIdSgKGIWuUWJCTgW9rgdV+3t8bMNmxKOUOv3S3+jXpyu1xmGYyfc2y8cez2FUB2S5DmOcyCsEko7Q9XLoi8fZwbwbkejQXmeD8CQ= 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: Currently there are 2 parameters could be setup from kernel cmdline: slub_min_order and slub_max_order. It's possible that the user configured slub_min_order is bigger than the default slub_max_order [1], which can still take effect, as calculate_oder() will use MAX_ORDER as a fallback to check against, but has some downsides: * the kernel message about SLUB will be strange in showing min/max orders: SLUB: HWalign=64, Order=9-3, MinObjects=0, CPUs=16, Nodes=1 * in calculate_order() called by each slab, the 2 loops of calc_slab_order() will all be meaningless due to slub_min_order is bigger than slub_max_order * prevent future code cleanup like in [2]. Fix it by adding some sanity check to enforce the min/max semantics. [1]. https://lore.kernel.org/lkml/21a0ba8b-bf05-0799-7c78-2a35f8c8d52a@os.amperecomputing.com/ [2]. https://lore.kernel.org/lkml/20230908145302.30320-7-vbabka@suse.cz/ Signed-off-by: Feng Tang --- mm/slub.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mm/slub.c b/mm/slub.c index f7940048138c..b36e5eb0ccb7 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -4711,6 +4711,9 @@ static int __init setup_slub_min_order(char *str) { get_option(&str, (int *)&slub_min_order); + if (slub_min_order > slub_max_order) + slub_max_order = slub_min_order; + return 1; } @@ -4721,6 +4724,9 @@ static int __init setup_slub_max_order(char *str) get_option(&str, (int *)&slub_max_order); slub_max_order = min_t(unsigned int, slub_max_order, MAX_ORDER); + if (slub_min_order > slub_max_order) + slub_min_order = slub_max_order; + return 1; }