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 94845EB64D9 for ; Sat, 17 Jun 2023 08:39:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DE2866B0072; Sat, 17 Jun 2023 04:39:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D6AEF6B0075; Sat, 17 Jun 2023 04:39:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0B346B0078; Sat, 17 Jun 2023 04:39:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AC1C06B0072 for ; Sat, 17 Jun 2023 04:39:57 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 62CCDC0156 for ; Sat, 17 Jun 2023 08:39:57 +0000 (UTC) X-FDA: 80911592034.21.EC05D94 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by imf28.hostedemail.com (Postfix) with ESMTP id 89501C0016 for ; Sat, 17 Jun 2023 08:39:53 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686991194; 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=bUjFsITHBcCW+I8k4KfEg9FWO4RTJnn/V7XFOXumQbg=; b=dpqqydfjXM1erTi/6CQCjknXaS4xvJFRtUeAaknlf8Qhl1zrBoYd5t+r7ffV1kM8Z23c8w u5vS0+F88Vq0mVAvwp1IkLVnZTHNh8WvfkJbZZBYveMcYRV4fmAiQMF5oeSGqRKHdQbnvv fEPIUfjOXibbYa3pJiaE+43k7Wa2HzY= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.189 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686991194; a=rsa-sha256; cv=none; b=PWFTep6xLPlUgrlNguU6XFlqvYe7RJ+AK79Mqft9LH16JuMPGlKRrCjseVFKXbjx5r2t7n FDzaz9uXtL7P++lXqSxrtXTeefFhsz1KC3MrjyI+N/PlPh0DCGAd9qg/CZHymV92LNJpdC Z+Lr429S3jJitZK8wVh1LBA7B+I/zDM= Received: from canpemm500002.china.huawei.com (unknown [172.30.72.57]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4QjqCz4cvNzLmrR; Sat, 17 Jun 2023 16:37:51 +0800 (CST) Received: from [10.174.151.185] (10.174.151.185) by canpemm500002.china.huawei.com (7.192.104.244) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Sat, 17 Jun 2023 16:39:44 +0800 Subject: Re: [PATCH] mm/mm_init.c: remove obsolete macro HASH_SMALL To: Mike Rapoport CC: , , , , , , , , References: <20230617070955.1751393-1-linmiaohe@huawei.com> <20230617075644.GV52412@kernel.org> From: Miaohe Lin Message-ID: <6d149902-a944-7961-89c1-f07047953c7f@huawei.com> Date: Sat, 17 Jun 2023 16:39:44 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <20230617075644.GV52412@kernel.org> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.151.185] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To canpemm500002.china.huawei.com (7.192.104.244) X-CFilter-Loop: Reflected X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 89501C0016 X-Stat-Signature: hzb6ace3ipqerog9ghidjzke1x7chmy9 X-Rspam-User: X-HE-Tag: 1686991193-709652 X-HE-Meta: U2FsdGVkX191Vdxg/24PHsVn815Oe3/4cu0DOg8sU26cW2tVrkMd9tx2RBPBDUxO98Yn8x7ICl+gy6G1zdyg3xl5fUOch9Ts250zFJbgokLtQD52KeqGHbmh/larRxfyRhrRbtRyus8HFfTCNOWzzwhgd69wtiy+y0Jtcxhtw730sdUGbQYONcPWnuoSmhaUGCFrKEfUpxg3uvyw8Qe+zh4Vto0gLcqCwMgE8J6JOB4KDUsiiDLHx4128I4rV/brHtLmpLQy2F/wMz//hy4JiP14Bk3VlVqhZlXvtLc1wpmWTiBlzevnMvimtBrku3R/N5IHpc71nU+fYEVapCz0PUV4/aFynCcIVhrt4UqnXqxixD/HgD3BJXr4A7VbRECBMfqLEkYHix7Ussj/+6xYXZrJyVKoADwvI6+tZpp7/JByX1LGUmfDVoWDcTNhQL4+M4EVR3ydAA7SK/FPc21g52GNNs0d9E3ndYSe8iIT1vpQ3+/S+NN2yuEFSktP8GC7rRqjyDJc/BkR3LG4ff9exE3uFVYZvcrq+oLbrwIn4aRm0fkMfGnSpPehWad/inr5dIrb8PJM1cc/sW58wjWRcynFeR94Eg5ng4EUONQJ5iWEk1YbQ7qVuOZcxVAhwUdKD8T1M84df3GidCfpR3sI/Le5dlUu7P/CoUPOM/USfQkpz1X9htjOieArPqvQP1qGqc+C3zKqdG7QEu/ilGv+Cc49lJJNNrUomxasUTxapNYlWF5aOWSMNxlm/SPRGVPezcW90cJpRkdrzjg/N1vjO5N9akHQQ8Wx1sW8TgDYhtdSs5pLHTLURkHd4Vd8/YG9R2BSKf0LnqoEjluns8E5ienJtfPe4AW4Ajk6NfAsvxlJSFQV0SmpCz7VX48PXgJaR8VgLFC25bfVACSV2WTil8qi06Fc5YgBOIO5ph8EWFrO/duIfjiU3RF9MF47cb7uaF2XtzkR7EVj7eyo6jw C0Fz56kW uFCbRZno5zKSpo1zCzp8d2jvVZWIF2MXQ2CL04T0yeFsZwguMDgNayXx8RJm5ctPra/WrzObxFWrYrffiFHo6zS6hAEwepi4F5P2kyo2LbQidVxwX7f0YsH64K3LA2V9rzP5Sn0MXuxNVVkkrQt165N21fZY2Oeceg3RMyGAgMPs0KUcgQBpFNbwhVgCFBpA/CiCn71qA1f4fXoE= 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: On 2023/6/17 15:56, Mike Rapoport wrote: > On Sat, Jun 17, 2023 at 03:09:55PM +0800, Miaohe Lin wrote: >> HASH_SMALL only works when parameter numentries is 0. But the sole caller >> futex_init() never calls alloc_large_system_hash() with numentries set to >> 0. > Thanks for your quick review. > Doesn't it? > What happens when CONFIG_BASE_SMALL is set? When CONFIG_BASE_SMALL is set, futex_hashsize is set to 16 and alloc_large_system_hash() is called with numentries == 16 && flags == HASH_SMALL. But in the alloc_large_system_hash(), we have the below logic: alloc_large_system_hash() { if (!numentries) { /* numentries == 16 here, so this code block is skipped. */ ... if (unlikely(flags & HASH_SMALL)) { /* So as here. */ ... } ... } So HASH_SMALL is just unused. Or am I miss something? Thanks. > >> So HASH_SMALL is obsolete and remove it. > >> Signed-off-by: Miaohe Lin >> --- >> include/linux/memblock.h | 2 -- >> kernel/futex/core.c | 3 +-- >> mm/mm_init.c | 10 +--------- >> 3 files changed, 2 insertions(+), 13 deletions(-) >> >> diff --git a/include/linux/memblock.h b/include/linux/memblock.h >> index f71ff9f0ec81..346d80809517 100644 >> --- a/include/linux/memblock.h >> +++ b/include/linux/memblock.h >> @@ -581,8 +581,6 @@ extern void *alloc_large_system_hash(const char *tablename, >> unsigned long high_limit); >> >> #define HASH_EARLY 0x00000001 /* Allocating during early boot? */ >> -#define HASH_SMALL 0x00000002 /* sub-page allocation allowed, min >> - * shift passed via *_hash_shift */ >> #define HASH_ZERO 0x00000004 /* Zero allocated hash table */ >> >> /* Only NUMA needs hash distribution. 64bit NUMA architectures have >> diff --git a/kernel/futex/core.c b/kernel/futex/core.c >> index 514e4582b863..f10587d1d481 100644 >> --- a/kernel/futex/core.c >> +++ b/kernel/futex/core.c >> @@ -1132,8 +1132,7 @@ static int __init futex_init(void) >> #endif >> >> futex_queues = alloc_large_system_hash("futex", sizeof(*futex_queues), >> - futex_hashsize, 0, >> - futex_hashsize < 256 ? HASH_SMALL : 0, >> + futex_hashsize, 0, 0, >> &futex_shift, NULL, >> futex_hashsize, futex_hashsize); >> futex_hashsize = 1UL << futex_shift; >> diff --git a/mm/mm_init.c b/mm/mm_init.c >> index d393631599a7..fab3c4649d5b 100644 >> --- a/mm/mm_init.c >> +++ b/mm/mm_init.c >> @@ -2492,15 +2492,7 @@ void *__init alloc_large_system_hash(const char *tablename, >> else >> numentries <<= (PAGE_SHIFT - scale); >> >> - /* Make sure we've got at least a 0-order allocation.. */ >> - if (unlikely(flags & HASH_SMALL)) { >> - /* Makes no sense without HASH_EARLY */ >> - WARN_ON(!(flags & HASH_EARLY)); >> - if (!(numentries >> *_hash_shift)) { >> - numentries = 1UL << *_hash_shift; >> - BUG_ON(!numentries); >> - } >> - } else if (unlikely((numentries * bucketsize) < PAGE_SIZE)) >> + if (unlikely((numentries * bucketsize) < PAGE_SIZE)) >> numentries = PAGE_SIZE / bucketsize; >> } >> numentries = roundup_pow_of_two(numentries); >> -- >> 2.27.0 >> >