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 5C084C4345F for ; Mon, 6 May 2024 01:22:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 98D716B0083; Sun, 5 May 2024 21:22:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 93E8E6B0085; Sun, 5 May 2024 21:22:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 804EF6B0087; Sun, 5 May 2024 21:22:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 636A76B0083 for ; Sun, 5 May 2024 21:22:29 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D5B951402BA for ; Mon, 6 May 2024 01:22:28 +0000 (UTC) X-FDA: 82086220776.11.0914E33 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) by imf07.hostedemail.com (Postfix) with ESMTP id 261344000A for ; Mon, 6 May 2024 01:22:26 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=e0M257PX; spf=pass (imf07.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714958547; a=rsa-sha256; cv=none; b=aPtzZlX/l9Hk4gesfILk53sSkl+HPoKC2V96MYIkJCZoaZkS7EzALN34rZPAoKA90WitYT QxGJ2XFb9eAgfTtQC5aSU/bEpbXLjUMkprTybV5qjhs7X/pBuJZWnEtSG2S8LNbNwfJfWL q9/hIHef9DlxUH8AjqRoN1h8noOCx7w= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=e0M257PX; spf=pass (imf07.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714958547; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references:dkim-signature; bh=PXql6pq6gP6PZPKKZA9sUcOpkbTs5kG7qkItMNhcUBg=; b=Vtguk/ywmumQ8rDecPrwymBxhmxE9EJZNktdelCq3l/YpcvOzH81iM9gyxm9FGW1vFK9Gx WTFgJwkGkHIAnh0C+OERTc1d12roVkbA7Mrobw3DymrvkOkFSryDpCRiNTdqgfWwUzECRN g4gzpzoneSo0XkYTum9k/L2nh14s8Fk= Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-a599af16934so305510466b.1 for ; Sun, 05 May 2024 18:22:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1714958545; x=1715563345; darn=kvack.org; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PXql6pq6gP6PZPKKZA9sUcOpkbTs5kG7qkItMNhcUBg=; b=e0M257PXd6U2q/MRrfQaukTh9eo6TbJndcTtr4NFvKRWufGZ2ALURY2dwulYxegMUT h4KWMYpO+mOq/GlHAkZcD7XRRTNNuiigT11ZNLX0B5iT128wrlzz0lgkdeHrclSHluzR F0a6/SAD2hOaLenMM2oc3gLLNk88m4g3u9HeXycoNben5YWz2VGWkhb+BOpCTp6gGt+a BkOlDvYCOHrmQV4WIaxijprcZ7LpxyANm80mZnRu1xHG6BQkHSGFo6sanAT2DG9h3ib+ kglEozkZ3tTy/frcwMAa55XQqR8wooZfi2f8ur9mhjg3l+/Tdrgi6Q1E4DNcei6V6lun Kyxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714958545; x=1715563345; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PXql6pq6gP6PZPKKZA9sUcOpkbTs5kG7qkItMNhcUBg=; b=YgqpU2iLmoexMzt6+S3kgnjG/qs3cZtkVmddyXMD6MLYKjR6vnk4Q6dY+KcmoDNrek vjY9IqSHT70b9LT1q1o0Ze18ychNaTHN93OZe5AGuNyTagNd/9fy0puNnO3re9JH6amh /IiECFOA4aSGQ6ccF9CUERNCck2GtxY0tycGQwJFmy6L0QReIYO4oKTKgHb/55d4CKvl TIwSWo3U4WwKDpRtxghJoQBmNwW6V3EoaFfbUVUDvyeDFTiSss24UL9qgJ/krzBF+cGm cjkxggC01UAshKyfTFj8G4VMF9mzFVWNeC0m4azEIcXUQgyMgEJmnSROjmbOKrisgSET YqlQ== X-Forwarded-Encrypted: i=1; AJvYcCVydGXEx/PlON0uaJMQG0ISztEWVe8/CnBAbDMNqqo7G9gk0Y932vByPUzAzDPCzIove4QzUdHq+spiVRUSPJYgbnE= X-Gm-Message-State: AOJu0YxQliEM2W4c8+dJcqCbUr4npBlVY9u4s/BrUKqiri8015LDSNqb CqAE+wyPAkfXAyLbYLlDhM2QecUUxJdkECVY52GMH0VBzALB8fO6 X-Google-Smtp-Source: AGHT+IHX4Q1M1J2QS0feiS/vKJoi8VrwTs5GnXeLGv3vgyeFQks/RZrzr3b3YspBZ68H/t1pBhZMAQ== X-Received: by 2002:a17:907:728a:b0:a59:bbd6:bb3b with SMTP id dt10-20020a170907728a00b00a59bbd6bb3bmr2228018ejc.55.1714958545444; Sun, 05 May 2024 18:22:25 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id l12-20020a1709066b8c00b00a59c0ecd559sm1427116ejr.112.2024.05.05.18.22.24 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Sun, 05 May 2024 18:22:24 -0700 (PDT) From: Wei Yang To: arnd@arndb.de, rppt@kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Wei Yang Subject: [PATCH] mm/memblock: discard .text/.data if CONFIG_ARCH_KEEP_MEMBLOCK not set Date: Mon, 6 May 2024 01:21:04 +0000 Message-Id: <20240506012104.10864-1-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 X-Stat-Signature: tq53kjz7ob9nwr7qcai8ff383hooskzb X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 261344000A X-HE-Tag: 1714958546-475177 X-HE-Meta: U2FsdGVkX1/DEzDl2ppG8dZO9psMhR3a4q+BLsYNBrHJMX9NfoSBBHThjHuhluSRmUtHWAdo/Yc8jZNmHlewemMdKH0tVYACHqz1KAUVYdlx43gTMyxgt2UEbq1alj5ioM+gy4LVIVkEJwahtCZR6hc4FTdn3eshAFkdOLGbrI7SJR57MlbFD23rG9c0c90ee3jwenoq46RbmvUPBRSIn2A7GvXmaITmy7YQtFQm/44bHQz1ML25hJ63SdReS9qKpbBkNlfsYq0en3aCjCjRlEuPUsA4GaiIstMlm+bslYul2ty3G1YJUurbaLqINvo/+Lyiw2eTbsYKoaACE3sIYBfiXGX9+0niuRxt75H3dn06er7yE96h9H15jZ02/xFfxI/Kv2wp8zBgiqzLLXXkBu+hhVu/ewlngmNi9cMT9tZ4HZ06nZo5uIPPs2ujELmYe7otyX9UBKwrmSSls9YNhqGbnPY9cagi83Q7Mt7PVvlL4IlVs+pMbAXLZAXiP1NAF7DXLc/tfMmYQ59VAbK9gKL5mnVMEZLdo4q754MgqL5fCv1Aqr98R9jyFCH80ToKnchTWfSTBpBiF2OgWNYurjwLveQfxw/UuJYquGGytk1iHxx96ZOtdZy+A7HwNocM2Rl+dKj4VNAwzEVD/B5al6J2+8q/ZCEt+kNYmqMNmwO9qI8nZoufgaL6LOneOg+N2rIZ7KdCfMxVLVUEsbW1SvDBf2FemwgOsBI6x+BCX2ufTFWTTDybOMfYqrCVSLpTEwiECWYDK49586dUctnTEPFeKrfZj60boVU6Glu5Y3wYVVQnxCyVbcRj4hvDU9VgiqZiZATjq/zD4n4VQKnckGWVyT2GKZ0IFg6h8HelQZAZnl4vTbOmHjwJgNTFninPsr1loU5QIySXhyEHhhQN62Acv9Ngox+trZozC6iCGkJ6jGXQuTIL+dfmSyN5/GC97XmYiPNEvbe0FRxqNF7 3C9EfZBY MSxEV7q89Mfk6ghYzwAelgIhwArilnW/hqlzAqobPn0wls7vKYSb0G4nGUksrroXUuW4k9ul5wKtagz8MuajHp1Bplw8f/ryVfycH2PLmHljdoiyBLN8kGL0gF/3kG3cF0hL3YAQyGts++of7k27Lppi7y3dlqZyLcihJSUdiJz7cguDFfiUoTFoyMqxZjNEZf/9Nkt03lqdaCkzk3bR0AllZIrRC6ARSqPkwWkA2HIV8UxNbmnC/Pk3XW0x2E48qXC0NusshE0NWo1EAdr72w/wrsfLcDQOaO6eM5O1QkU00bgPwD5F/5Mzf1TLTE0fHF9oy5AdhfhroJdC+iHQQnTLB85sXiiTkSjQ1GzxRSoi0VOJbSOiBVu+ad8B8xMutsSpLlONBCyiJeNIOvV1XKBvdDg2PVW2vPRVSbRH8fgBWhQW87v3WdLcFUS8dPlGBIowHWiEaXhJBdd5d+M2HKEzQuD5RiIcwpsd4qDBmiRmC/jpC40fHm95ZudWgS+Mwn1XQu8d+rRvKb68YFrdCOu4PshE1KADrSmvg+65fttqAeH8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000025, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: When CONFIG_ARCH_KEEP_MEMBLOCK not set, we expect to discard related code and data. But it doesn't until CONFIG_MEMORY_HOTPLUG not set neither. This patch puts memblock's .text/.data into its own section, so that it only depends on CONFIG_ARCH_KEEP_MEMBLOCK to discard related code and data. After this, init size increase from 2420K to 2432K. Signed-off-by: Wei Yang --- include/asm-generic/vmlinux.lds.h | 14 +++++++++++++- include/linux/memblock.h | 8 ++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index f7749d0f2562..775c5eedb9e6 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -147,6 +147,14 @@ #define MEM_DISCARD(sec) *(.mem##sec) #endif +#if defined(CONFIG_ARCH_KEEP_MEMBLOCK) +#define MEMBLOCK_KEEP(sec) *(.mb##sec) +#define MEMBLOCK_DISCARD(sec) +#else +#define MEMBLOCK_KEEP(sec) +#define MEMBLOCK_DISCARD(sec) *(.mb##sec) +#endif + #ifndef CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE #define KEEP_PATCHABLE KEEP(*(__patchable_function_entries)) #define PATCHABLE_DISCARDS @@ -356,6 +364,7 @@ *(.ref.data) \ *(.data..shared_aligned) /* percpu related */ \ MEM_KEEP(init.data*) \ + MEMBLOCK_KEEP(init.data*) \ *(.data.unlikely) \ __start_once = .; \ *(.data.once) \ @@ -573,6 +582,7 @@ *(.ref.text) \ *(.text.asan.* .text.tsan.*) \ MEM_KEEP(init.text*) \ + MEMBLOCK_KEEP(init.text*) \ /* sched.text is aling to function alignment to secure we have same @@ -680,6 +690,7 @@ KEEP(*(SORT(___kentry+*))) \ *(.init.data .init.data.*) \ MEM_DISCARD(init.data*) \ + MEMBLOCK_DISCARD(init.data*) \ KERNEL_CTORS() \ MCOUNT_REC() \ *(.init.rodata .init.rodata.*) \ @@ -706,7 +717,8 @@ #define INIT_TEXT \ *(.init.text .init.text.*) \ *(.text.startup) \ - MEM_DISCARD(init.text*) + MEM_DISCARD(init.text*) \ + MEMBLOCK_DISCARD(init.text*) #define EXIT_DATA \ *(.exit.data .exit.data.*) \ diff --git a/include/linux/memblock.h b/include/linux/memblock.h index e2082240586d..3e1f1d42dde7 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -100,13 +100,13 @@ struct memblock { extern struct memblock memblock; +#define __init_memblock __section(".mbinit.text") __cold notrace \ + __latent_entropy +#define __initdata_memblock __section(".mbinit.data") + #ifndef CONFIG_ARCH_KEEP_MEMBLOCK -#define __init_memblock __meminit -#define __initdata_memblock __meminitdata void memblock_discard(void); #else -#define __init_memblock -#define __initdata_memblock static inline void memblock_discard(void) {} #endif -- 2.34.1