Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp2085498rdb; Tue, 3 Oct 2023 09:43:58 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHiaf3r0D6wsTz6g2upxvJXfPK6xfI6OPQuGWUEmkYRtjnPNrAsGCZ96LCyl7SoItyqJH1Y X-Received: by 2002:a05:6358:9886:b0:143:897e:6e31 with SMTP id q6-20020a056358988600b00143897e6e31mr17022149rwa.7.1696351437811; Tue, 03 Oct 2023 09:43:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696351437; cv=none; d=google.com; s=arc-20160816; b=H04Uhy1/ZOzWJpvNRDuSwct29dD8bCc1J2vSHp4F2bgcKd8hB3J+44QrK7izsvlMnd oYEFnwLRloD8Ae6JUQTGKwn/TX8W4Jhsth+zt5+9H+lVnCKkDlTufI9dMaMzbS7kEJEW mN7A8thMg6udPdukgbw20MYVNhAhD2n3h/DcLXRyj2/mwyyFclipsGYPUMCstNnR2AIe RTKQ6WmPanb33n3fCkrFNvukN36pPjXgEXb2vnHK0c6AF5iqXt0wCJZNzwjxHMAu5A2B C+yIIbMLFSMX6r6rnav54cA2rxtc2NoL8rD2JcK9nA3ikN27eUVlXDGpmBZ83TTsuTrm 8JbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=a3wjR5kBbg4v7OsqbfDY95lmjBgAJ9palZUCxgJYwUQ=; fh=0+oGC+gt+D1WbR83mwD7sMW+rYx/cxqAR+7GvzudPaQ=; b=BaU6x12DQW5cuevpkyzZvS5YhqCFA9J/sz1rfUrrSVaAPLOHx3anNCdeLRRy1hQPFt IG9LiqA/WtetGZnDveDdQzKRWLqTZsq+5p2wZTBi9+OGJIDykPNxXS0GwL/X2RGpLbLs ASZswmvQQhhv0z3spvpXrtlgLdpN22DSDCe575vrJVATA1Y0KXFu2S/6f8W2vrnD+9cn mri2LVoSIi1KZF+yOam1FzB0uy8wpTYY5QrgJlFv/MOaXPqO416vKRbdzIG7pTa8cN1r tZ0P0lrW9wItMO7oVyKiy733FT4kMaLp/aG2kpxeoyTACKS5+WOE49/Ve3Ij9FkTXUuF drOA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id m1-20020a633f01000000b00584af3ee495si1848728pga.623.2023.10.03.09.43.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 09:43:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 8CDA9817C3D4; Tue, 3 Oct 2023 09:43:42 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231343AbjJCQnb (ORCPT + 99 others); Tue, 3 Oct 2023 12:43:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230225AbjJCQna (ORCPT ); Tue, 3 Oct 2023 12:43:30 -0400 Received: from bg4.exmail.qq.com (bg4.exmail.qq.com [43.154.54.12]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 177E3A7; Tue, 3 Oct 2023 09:43:24 -0700 (PDT) X-QQ-mid: bizesmtp77t1696351393tys816h6 Received: from main2-ubuntu.tail147f4.ts.net ( [202.201.15.117]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 04 Oct 2023 00:43:10 +0800 (CST) X-QQ-SSF: 01200000004000B06000B00A0000000 X-QQ-FEAT: rZJGTgY0+YOUZ7bEZUW/04TLkOEPwIzf85azerfjIvKCpbffmSPTMh+v0i1qs tgGncN4m1gwYkonbPq1eThUWyRnw2TvHRdPkhotwvL4yixGCsT2jXlN4skTNt6MvuA6kwSQ rhXcCeAhBRTLiHe0qE0ZhLWYOUF5Dk9VfcH8eilV2t870tu6DR2i23OeALoXGmUNJBJvfnJ Z1IFcy2cWKUb3kNJtAb1ehtVQ9ouvPZD4ZecOK61t58ulaeEklH1YJvF9cZ4RNXxlsjLup+ PNMUTGSq0O02jlqadVdMZDLXHDb7LwUO1VGnIQ5EapioiWpzabTBgqQ3fobnD6OUDOJuSc5 vrBIkkZjpB6HD4lm3j595L+yYCuyXPLf0lUshBD X-QQ-GoodBg: 0 X-BIZMAIL-ID: 5112236808884648054 From: Yuan Tan To: falcon@tinylab.org Cc: arnd@arndb.de, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org, linux-riscv@lists.infradead.org, linux@weissschuh.net, palmer@rivosinc.com, paul.walmsley@sifive.com, paulburton@kernel.org, paulmck@kernel.org, tim.bird@sony.com, tsbogend@alpha.franken.de, w@1wt.eu Subject: Re: [PATCH v1 0/7] DCE/DSE: Add Dead Syscalls Elimination support, part1 Date: Wed, 4 Oct 2023 00:43:09 +0800 Message-Id: <20231003164309.463912-1-tanyuan@tinylab.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:tinylab.org:qybglogicsvrgz:qybglogicsvrgz5a-1 X-Spam-Status: No, score=2.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 03 Oct 2023 09:43:42 -0700 (PDT) I didn't test DSE with explicit KEEP() in the previous mail. So, I will make up for it now. This test result is about DEAD_CODE_DATA_ELIMINATION (DCE) and dead syscalls elimination (DSE). It's based on config[1] and a simple hello.c initramfs. We set CONFIG_SYSCALLS_USED="sys_write sys_exit sys_reboot", which is used by hello.c to simply print "Hello" then exit and shut down qemu. | | syscall remain | vmlinux size | vmlinux after strip | | ------------------------------------------------------------ | -------------- | ---------------- | ------------------- | | disable DCE | 236 | 2559632 | 1963400 | | enable DCE | 208 | 2037384 (-20.4%) | 1485776 (-24.3%) | | enable DCE and DSE with explicit KEEP() of except table | 17 | 1899208 (-25.8%) | 1387272 (-29.3%) | | enable DCE and DSE without KEEP() (By SHF_GROUP method) | 3 | 1856640 (-27.6%) | 1354424 (-31.0%) | | enable DCE and DSE without KEEP() (By SHE_LINK_ORDER method) | 3 | 1856664 (-27.6%) | 1354424 (-31.0%) | It shows that dead syscalls elimination can save 7% of space based on DCE. Although no KEEP() can only save up 2% space, it can reduce the attack surface and eliminate the misuse of KEEP(). It ensures that every orphan section is not orphaned anymore. [1]: https://pastebin.com/KG4fd7aT