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 91346D44D51 for ; Wed, 6 Nov 2024 11:44:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E66E6B008A; Wed, 6 Nov 2024 06:44:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 096A96B008C; Wed, 6 Nov 2024 06:44:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC6C96B0092; Wed, 6 Nov 2024 06:44:39 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id D05F86B008A for ; Wed, 6 Nov 2024 06:44:39 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 80F161C4B6D for ; Wed, 6 Nov 2024 11:44:39 +0000 (UTC) X-FDA: 82755487164.18.0FDBB9D Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf24.hostedemail.com (Postfix) with ESMTP id DE55B18000A for ; Wed, 6 Nov 2024 11:44:32 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf24.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730893341; 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; bh=VVuOhTx5v4qB0ljx0iaK++os+TE50YnCzkgWkLTj+Zg=; b=rZh2rC/8MpBtSCbOvmotypKB6nqUtgmEyy/3+hMj1RbyEHmo3eFafqJsXFC2os5HGZEjja 1WVYVc/4dCXG3gebBPeO/WxZaG/Nzj47AOLQsEgtE2oxEA/ZYieFwElBQfqi/IQsgatI6Y UrxidjCAgUEu5NWaKFb/bXPGD/C0/Og= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730893341; a=rsa-sha256; cv=none; b=ohdf219YDOIdSQtlvlcnkr0RUJYT5kF+1oS/+vVge5XXx7frdT5xVmhQx7BVV+4AbDR5mA fK+lFIHroEmfSlcKowoft3QBV9yhggC35A3FlZXRQeomp6KYtowMOb5Tf/WeRw5jRrBP0j Jz8c147rWjrAfOQ80WLMFGW6kzu1O9k= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf24.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 69E0A1063; Wed, 6 Nov 2024 03:45:06 -0800 (PST) Received: from [10.57.88.115] (unknown [10.57.88.115]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id AF9C13F6A8; Wed, 6 Nov 2024 03:44:35 -0800 (PST) Message-ID: <3e26ec9a-4dc0-42e7-a383-2c1bd0a08412@arm.com> Date: Wed, 6 Nov 2024 11:44:34 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH] mm/slab: Avoid build bug for calls to kmalloc with a large constant Content-Language: en-GB To: Dave Kleikamp , Andrew Morton Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20241014105514.3206191-1-ryan.roberts@arm.com> <20241014105912.3207374-1-ryan.roberts@arm.com> <20241014105912.3207374-6-ryan.roberts@arm.com> <44312f4a-8b9c-49ce-9277-5873a94ca1bb@oracle.com> From: Ryan Roberts In-Reply-To: <44312f4a-8b9c-49ce-9277-5873a94ca1bb@oracle.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: DE55B18000A X-Stat-Signature: wpa6hkauj94barpb8j7qqh8bz87f6aqe X-HE-Tag: 1730893472-442783 X-HE-Meta: U2FsdGVkX1/nuQvz/hC/+g7GOfh4YwIdPiT1E3/FjR3G6kGICw5GF/8gpPGOg48vjdWqq4a+Cj9dled/KgRDJgI7r9JAkyKx4LmMqHMiDmonwUzucdX8HTXEfNC+LKLoHjeVM0RHLgwn8sUzvcYGllDFlz+vXmYdh9/aKmUdW7+vakwoXuYUYC3zUcwuG00CuGBDoB4QV01sdyf2HV7FonsOwCazwP6plG5+WwzZlUGQA69FBePTW7MF8n7g/KxWTAmoH5T8tovcdalNrxgtNZBCz/L5e/NpEniFDgTHU6n2RM1i4YVI7SZuolpoOtXAV4vL1E2yOmwGbHxio2xM364dPonGBk6QJZjiNs4N5FQM3C4jWbbYq7oxm5DbeL/FZ25T68oG12fF7+T9Vqx6YGNzZHkG4oX/8Xqe5DNZEpxoHHlEKC0MKrQ9EGwmrtAn3DojPnlciWphAkXF6pBvHmGM6m0l/XfyG1CbJoS0YhpJBTDCNH/KgshscLmDRvNgRtLOKeiXaeiHW2lqpCNab5dlyoLZ1R5CXV7Yhm1J5u4Pf/lzVE8c7fuTkJCqE1el2Wft+5+qkmXmMM64TIz6r6JJ0UKFDGseK6uOFWK5XuKPMhl0SJ9mo/x9+2SceclicidsxyyEoJTHEvhjVB0PhqtqcAx9MwWJ8VXYugWHx836zic8kLXECn82jkz9lpkaGE2VjB8qRI1wl0v2gxGQ/16fvX/rxXPu4x1Rx/WXrEU200mVOhuvUe0yR5mo0XkMEFJOtDPnAhMRXflZ6Lh4iJzNSHBVQnxosEvPkR5EYqrst35ax1T2NCKk5TokcnBDqcZDiMU7aG1hAuoWag7V4lm17pppJ2fZnpV/45nSuy52iAsFKLEWjODrjJ+XqdDvWa9JNPGv2btPBg3F6Wqpr2/gONq52J9Tf9rJhynZCSkVRj+X3ONoJxIZ98HznIZV7qwSms9So5gLbeg3gBj SFzl7r2P 9vu2ySu1RPRLi3ys6a0pBXtpqd6E7A1GGCAzTK4X8XgerCx/k/VoxASLQRjfZesjPlX7Nx7FEeexiDk919tgMpLgLDjldHk2PONkdtmjATLeEZGn+x0xEh+XHNj5vN/XfVb8ff2k2tRv7i206YZZpjfExCoU5m2GQRwTfNucMKQyrPaWlBuUaNu97hyJMKd03+g4S 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 01/11/2024 20:16, Dave Kleikamp wrote: > When boot-time page size is enabled, the test against KMALLOC_MAX_CACHE_SIZE > is no longer optimized out with a constant size, so a build bug may > occur on a path that won't be reached. > > Found compiling drivers/net/ethernet/qlogic/qed/qed_sriov.c > > Signed-off-by: Dave Kleikamp > --- > > Ryan, > > Please consider incorporating this fix or something similar into your > mm patch in the boot-time pages size patches. > >  include/linux/slab.h | 3 ++- >  1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/linux/slab.h b/include/linux/slab.h > index 9848296ca6ba..a4c7507ab8ec 100644 > --- a/include/linux/slab.h > +++ b/include/linux/slab.h > @@ -685,7 +685,8 @@ static __always_inline unsigned int __kmalloc_index(size_t > size, >      if (size <= 1024 * 1024) return 20; >      if (size <=  2 * 1024 * 1024) return 21; >   > -    if (!IS_ENABLED(CONFIG_PROFILE_ALL_BRANCHES) && size_is_constant) > +    if (!IS_ENABLED(CONFIG_ARM64_BOOT_TIME_PAGE_SIZE) && Thanks for the patch! I think this may be better as: if (PAGE_SHIFT_MIN == PAGE_SHIFT_MAX && Since that is independent of the architecture. Your approach wouldn't work if another arch wanted to enable boot time page size, or if arm64 dropped the Kconfig because it decided only boot time page size will be supported in future. Thanks, Ryan > +        !IS_ENABLED(CONFIG_PROFILE_ALL_BRANCHES) && size_is_constant) >          BUILD_BUG_ON_MSG(1, "unexpected size in kmalloc_index()"); >      else >          BUG();