From patchwork Tue Dec 27 16:00:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36950 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1459880wrt; Tue, 27 Dec 2022 08:03:56 -0800 (PST) X-Google-Smtp-Source: AMrXdXtP1y8jn0ObamSS/mDl4qCPBzuP+7wB4+wvMUtJXtxnpasSSccoz3QGc2/PtbC0Rl8f5NTb X-Received: by 2002:a17:906:d044:b0:7c0:e7a7:50b with SMTP id bo4-20020a170906d04400b007c0e7a7050bmr15423887ejb.48.1672157035843; Tue, 27 Dec 2022 08:03:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157035; cv=none; d=google.com; s=arc-20160816; b=vYCutO+12qNKNGx8C7x5rw0vZEZthT8jqbcrDGz0VgpAeRF1u098IPJsTyadWffeEf fnYEX8dHbTugaExlz4tV9Jx8WcoOJalErxf9DP1dz3Wc2hNtgkyvtUHoLNKGPjop0QMe 4m0Kdvb34U6hr4O8bK98TQN4dMCW8zcTukixXZTN9FHLlMV3E5GFxS9YxhWRS5c4P7xD kvJjPdlRGJ/ESPxOsxOIb/bS71NwPjoc/vhcENFm6EklHxjrVYJSTNw+CGompJdKQgtD NGFwUxWpQ37YT5iQoQn37qFgldoGoMLlZ+v0XuoU81R6TDY5rkCp4gzwgIGilCn0y+ef bp8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=irGSZxAY2cdOFc6Vynua5gcKzft4ZHpusIPnmXjhBuU=; b=jd2k2gOKoA45zt17j/Z1W5zHyvIKTW3erhozGFHEgP8ozXxCe0UnkuIU9C5hmSlmZ+ oabPGcDQ3PtfoZN4I5L0QK4tI2nTVeygg7K4vMR9MivJdgOiUbn2WK3UL6hJcXWrfkeo RHpbnHMpdR5Tapxh1r2bvZYwgF4ns2NOxIJ+ehjGE8GnWhUJKgqfdlmDowYIIYPn/Nyl xVHXHy7UvEUV7iaoNoTyWxA56cIAPylRqnK0TNW9B4rBkumEyA6yiVf6S273NI6+9N1o CX6HUE8R8cNKdLh3jhtswrKIDiPFR1cONBXrU/Altpn1b9iUK26bdQli3GqVH/QGFqYM BFAA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b="NryKx8/W"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id xa7-20020a170906fd8700b007c109e62bfdsi9049020ejb.984.2022.12.27.08.03.30; Tue, 27 Dec 2022 08:03:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b="NryKx8/W"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231630AbiL0QCw (ORCPT + 99 others); Tue, 27 Dec 2022 11:02:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229736AbiL0QCs (ORCPT ); Tue, 27 Dec 2022 11:02:48 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C3104EA9 for ; Tue, 27 Dec 2022 08:02:46 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156964; bh=kT8j13gOnAKWYlSV+YMQw4TiVnvJKl0cCOa21YM32M0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=NryKx8/WX4EttN2Wi7A01V/T+QeFOxPEcOYewudl8K5pU06HrP1jzw1Q1U/9g/UnF BaS2e9pdkU0JrXbUgolwwWI9nN4ODSobyrqO+IQk5DABU29VMAviScn9H34JGMgyX1 B3iiNyzM33rdyzepT8vFzQdaHGMxvMGu6CH7arxU= Date: Tue, 27 Dec 2022 16:00:57 +0000 Subject: [PATCH v2 1/8] objtool: make struct entries[] static and const MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-1-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=1357; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=kT8j13gOnAKWYlSV+YMQw4TiVnvJKl0cCOa21YM32M0=; b=KVBj9VZ9YQSV25Jq2t8yb7ci7FBwnt5YjyakqphuIDIRCP6beV5l2wrS/0h8KA8/9ibZai5PYDGO 8HfVrMblAEPjhqpksBwKtiEl3VZG0yIzdaDrrLGbQJkoy4ZiEGjG X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383735714270909?= X-GMAIL-MSGID: =?utf-8?q?1753383735714270909?= This data is not modified and not used outside of special.c. Also adapt its users to the constness. Signed-off-by: Thomas Weißschuh --- tools/objtool/special.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/objtool/special.c b/tools/objtool/special.c index 9c8d827f69af..baa85c31526b 100644 --- a/tools/objtool/special.c +++ b/tools/objtool/special.c @@ -26,7 +26,7 @@ struct special_entry { unsigned char key; /* jump_label key */ }; -struct special_entry entries[] = { +static const struct special_entry entries[] = { { .sec = ".altinstructions", .group = true, @@ -65,7 +65,7 @@ static void reloc_to_sec_off(struct reloc *reloc, struct section **sec, *off = reloc->sym->offset + reloc->addend; } -static int get_alt_entry(struct elf *elf, struct special_entry *entry, +static int get_alt_entry(struct elf *elf, const struct special_entry *entry, struct section *sec, int idx, struct special_alt *alt) { @@ -139,7 +139,7 @@ static int get_alt_entry(struct elf *elf, struct special_entry *entry, */ int special_get_alts(struct elf *elf, struct list_head *alts) { - struct special_entry *entry; + const struct special_entry *entry; struct section *sec; unsigned int nr_entries; struct special_alt *alt; From patchwork Tue Dec 27 16:00:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36954 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1460438wrt; Tue, 27 Dec 2022 08:04:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXt32N5Yq2Noxpo+w+G6iklFBg033uG/lzTuOE2CgKOk+xgv0VPf09RuN9m5MF+lHvX4qFQp X-Received: by 2002:aa7:d1d8:0:b0:467:692e:8148 with SMTP id g24-20020aa7d1d8000000b00467692e8148mr18563303edp.41.1672157087743; Tue, 27 Dec 2022 08:04:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157087; cv=none; d=google.com; s=arc-20160816; b=Q0QL25xQfBCkkjt6d2S50aI9Z/qn3SoDRPAiYsBPNDGpgeob/N87ORvlSOVXS825x3 V+A1VbemacOqs8MZFjjwu0acn29zmWQhPHvASIaLrCzyYaFDVifVP2geqCJJwFqw2lQm OxX9wkRkmhGHpBMssom1QhVCgXFkT7Hpqud26C3+lqZ2vvGyYv69EDXNiIOW5TMggEmO LUGzsvkFDgOF9HVE9MrMg/1yO1D8oWozfpZuo4nsoAywEY6U/zMXAXaoA49DUUGHdPPR 0fjrGRlJd5XSRtsuy5l5NnhTFDroMn1eSGmhtbLy9Fl5diaWlFlgayCAB9As8TCE6dhq /uWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=qXT+ska+Zfa3soNP6cWAAS3KADLdcrsw/rXZk+nP/O4=; b=qfrrhyZm/QcLUp+XkqGMTNd0zWvt+8l3BQ2BZ6cYu4bXCIq+mIjzbijynttE5zJWGJ du0o55XiG8ZVpdGm0/5FjDyCaU4Mr1ms3/XBSAEdZr3oCw1Ceuw4j4dTgf2D37II0CJO dWmw9TthQEFoQzaBnit1s2hMiifO7El8lH8rNePcyBUd0XWGYvyR6sISwcIfQqQlXu/u j8u3i2E04VRN/lK1j4nUGMBOaPMw8HGrUmSFK8beGH6sItQDy/ndes+3OIzM+lZzV3Af FBSonVBR1Z+VhZhwzt3JpQZq7TtHmYxOXZzR8kq8cLpCY3cwgS1qTKF923XY48ZBY/Nm gzyw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=bGIKGHdI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z43-20020a509e2e000000b00468514cea79si11267260ede.204.2022.12.27.08.04.24; Tue, 27 Dec 2022 08:04:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=bGIKGHdI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231972AbiL0QDH (ORCPT + 99 others); Tue, 27 Dec 2022 11:03:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231575AbiL0QCv (ORCPT ); Tue, 27 Dec 2022 11:02:51 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9991D73 for ; Tue, 27 Dec 2022 08:02:49 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156966; bh=s5ecXOvEehEk53y4y2OsKyfg1cQWJRf01QzJ+Hcl4rk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=bGIKGHdIZ/KqixZJ7Q5PHiVT7CjHcdMVbIheTEv+Mv16FdEi59VKqdEqVRutatzZX owjZJgDOzaBYLsH/rkR3ptyxR2QtPbdfp4v7o0Zuq36H4wJHDs4SoyAiry+EDq4okl oMP2i8+QIgJUvkdUWkNZZC7WBAkvXPrf1xB/inR4= Date: Tue, 27 Dec 2022 16:00:58 +0000 Subject: [PATCH v2 2/8] objtool: make struct check_options static MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-2-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=1353; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=s5ecXOvEehEk53y4y2OsKyfg1cQWJRf01QzJ+Hcl4rk=; b=h6yH1/xaYHrNAEVhKJ/pU5PXmhFBqfDVr6QKS8oRm+oyYvouX6nXqdoGXJ0rf3+iCugXF1ms329M 0xIG269CD2SSQp5lQY4O91LF7o7iMBHHTRULpI014EJsmQVcwdRs X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383790239068050?= X-GMAIL-MSGID: =?utf-8?q?1753383790239068050?= It is not used outside of builtin-check.c. Also remove the unused declaration from builtin.h . Signed-off-by: Thomas Weißschuh --- tools/objtool/builtin-check.c | 2 +- tools/objtool/include/objtool/builtin.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/objtool/builtin-check.c b/tools/objtool/builtin-check.c index a4f39407bf59..7c175198d09f 100644 --- a/tools/objtool/builtin-check.c +++ b/tools/objtool/builtin-check.c @@ -65,7 +65,7 @@ static int parse_hacks(const struct option *opt, const char *str, int unset) return found ? 0 : -1; } -const struct option check_options[] = { +static const struct option check_options[] = { OPT_GROUP("Actions:"), OPT_CALLBACK_OPTARG('h', "hacks", NULL, NULL, "jump_label,noinstr,skylake", "patch toolchain bugs/limitations", parse_hacks), OPT_BOOLEAN('i', "ibt", &opts.ibt, "validate and annotate IBT"), diff --git a/tools/objtool/include/objtool/builtin.h b/tools/objtool/include/objtool/builtin.h index fa45044e3863..2a108e648b7a 100644 --- a/tools/objtool/include/objtool/builtin.h +++ b/tools/objtool/include/objtool/builtin.h @@ -7,8 +7,6 @@ #include -extern const struct option check_options[]; - struct opts { /* actions: */ bool dump_orc; From patchwork Tue Dec 27 16:00:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36952 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1460025wrt; Tue, 27 Dec 2022 08:04:07 -0800 (PST) X-Google-Smtp-Source: AMrXdXvRzcXcrPaPA++v8OsRFxYt+0YzTMT7j+VHohfsN6niPznG3eVE1lP9P7z6szct6gPd8NbO X-Received: by 2002:a17:906:9be4:b0:7c0:e99a:e353 with SMTP id de36-20020a1709069be400b007c0e99ae353mr16925207ejc.56.1672157047758; Tue, 27 Dec 2022 08:04:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157047; cv=none; d=google.com; s=arc-20160816; b=yP6LzlxXI2c3K5IuBWxsvUhZ2cYvH+XspxwEhC/yuvCP75wE9zfEB+hvgdogzl5dlh F/I7MZeKpSQp//5v1cufrk20EsDutt9kFjL/3TnTRnRqxWW5RP6NFr+phDwTy6MGvPrz deLjP6x/Y8j17XQG+vL9urWBJZVb2tmP0BdBSLQ1GM0aQqnOkeDk40W3e7HiHxFHqPTv pOxnDGTzPZZXRvlINyUf/bbxkpN3u1yzkYfIBlAwd2rZK1udGuRfhkpEbECU0PTomaRJ vA6UwS/2X+HNQKlwRs2hPcPxURjyVVyLmvVVxV/rkSvejHob8Y4NCj56iK7UfsOpc1tx vB7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=qOTXX+dAJQwd6zDAQlFhVwbPesRa20vvo+2rudlfamM=; b=BCFoveGBFunlAkK9v8KTGDS7aXr+RkNsw1e0PmPvF7F98ExRDRMscDH+HqMtInGF2B lfhigrHhBk2i6MYriN8vKwB+B2f0ZDNL1bUiyCviISY6Cp2ZM85KRHrYBRkO9bcgqwAN Kqmou33ZuUXYFf4qPFMFRu6CwGIiWvlNbNCX8EcSDYW147J5HVMfW11qhmIKeHMY4UBI rbmKiJOQLVooOOBG8Po6BJXNly9mdZEAlJfaAgXqj7eiE4v7fQOvuV4tZmURAmmPKAs/ maSil4Cn9Ue+inQwrykEt9CfqQoil7HOpdWzuJiY9+gNXFHjjL+FeqLCeXRim9yAw/lz 4ABA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=B1CyNrKU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p20-20020a1709060dd400b007ae754729d1si8254216eji.883.2022.12.27.08.03.43; Tue, 27 Dec 2022 08:04:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=B1CyNrKU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231749AbiL0QDA (ORCPT + 99 others); Tue, 27 Dec 2022 11:03:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47050 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231502AbiL0QCt (ORCPT ); Tue, 27 Dec 2022 11:02:49 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 195FCF1A for ; Tue, 27 Dec 2022 08:02:47 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156964; bh=y+8ND3SPE2pShaR1P8+M7kgXvRP1pJvPmxf10cM5y8Q=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=B1CyNrKUwOFlrC/zgBHc9Up0AmSlWdkNnf/zucgJzpvF9KscVOFZm+v5sv8KqNX8+ zJDIt/c/lFIz2XKLHYcnLcL0CipdrSUrrdz3v4OKojwRNd4PXb0emo6oWcB34vAlre +x/sKyBaX97HIJX6tO5KNXs8LtnVCgIld5bTNL1o= Date: Tue, 27 Dec 2022 16:00:59 +0000 Subject: [PATCH v2 3/8] objtool: allocate multiple structures with calloc() MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-3-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=3464; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=y+8ND3SPE2pShaR1P8+M7kgXvRP1pJvPmxf10cM5y8Q=; b=bm0NcSswg7oFUqzRMCfQCFgtM2ia9e0hYr/UJH2Ja8VEhCPmcRWUO4dZSpBYyAgPY3kP2q/Xxvf8 FkDHETPnD/lDwkqgNbWghVPYCVeObcNKKSO8u0USlUOGuitMyCGH X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383748127601106?= X-GMAIL-MSGID: =?utf-8?q?1753383748127601106?= By using calloc() instead of malloc() in a loop, libc does not have to keep around bookkeeping information for each single structure. This reduces maximum memory usage while processing vmlinux.o from 3153325 KB to 3035668 KB (-3.7%) on my notebooks "localmodconfig". Signed-off-by: Thomas Weißschuh --- tools/objtool/elf.c | 42 ++++++++++++++++++------------------- tools/objtool/include/objtool/elf.h | 4 ++++ 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c index 7eae95f33a72..9c326efb8cd9 100644 --- a/tools/objtool/elf.c +++ b/tools/objtool/elf.c @@ -285,13 +285,13 @@ static int read_sections(struct elf *elf) !elf_alloc_hash(section_name, sections_nr)) return -1; + elf->section_data = calloc(sections_nr, sizeof(*sec)); + if (!elf->section_data) { + perror("calloc"); + return -1; + } for (i = 0; i < sections_nr; i++) { - sec = malloc(sizeof(*sec)); - if (!sec) { - perror("malloc"); - return -1; - } - memset(sec, 0, sizeof(*sec)); + sec = &elf->section_data[i]; INIT_LIST_HEAD(&sec->symbol_list); INIT_LIST_HEAD(&sec->reloc_list); @@ -423,13 +423,13 @@ static int read_symbols(struct elf *elf) !elf_alloc_hash(symbol_name, symbols_nr)) return -1; + elf->symbol_data = calloc(symbols_nr, sizeof(*sym)); + if (!elf->symbol_data) { + perror("calloc"); + return -1; + } for (i = 0; i < symbols_nr; i++) { - sym = malloc(sizeof(*sym)); - if (!sym) { - perror("malloc"); - return -1; - } - memset(sym, 0, sizeof(*sym)); + sym = &elf->symbol_data[i]; sym->idx = i; @@ -919,13 +919,13 @@ static int read_relocs(struct elf *elf) sec->base->reloc = sec; nr_reloc = 0; + sec->reloc_data = calloc(sec->sh.sh_size / sec->sh.sh_entsize, sizeof(*reloc)); + if (!sec->reloc_data) { + perror("calloc"); + return -1; + } for (i = 0; i < sec->sh.sh_size / sec->sh.sh_entsize; i++) { - reloc = malloc(sizeof(*reloc)); - if (!reloc) { - perror("malloc"); - return -1; - } - memset(reloc, 0, sizeof(*reloc)); + reloc = &sec->reloc_data[i]; switch (sec->sh.sh_type) { case SHT_REL: if (read_rel_reloc(sec, i, reloc, &symndx)) @@ -1458,16 +1458,16 @@ void elf_close(struct elf *elf) list_for_each_entry_safe(sym, tmpsym, &sec->symbol_list, list) { list_del(&sym->list); hash_del(&sym->hash); - free(sym); } list_for_each_entry_safe(reloc, tmpreloc, &sec->reloc_list, list) { list_del(&reloc->list); hash_del(&reloc->hash); - free(reloc); } list_del(&sec->list); - free(sec); + free(sec->reloc_data); } + free(elf->symbol_data); + free(elf->section_data); free(elf); } diff --git a/tools/objtool/include/objtool/elf.h b/tools/objtool/include/objtool/elf.h index bb60fd42b46f..1c90f0ac0d53 100644 --- a/tools/objtool/include/objtool/elf.h +++ b/tools/objtool/include/objtool/elf.h @@ -39,6 +39,7 @@ struct section { char *name; int idx; bool changed, text, rodata, noinstr, init, truncate; + struct reloc *reloc_data; }; struct symbol { @@ -104,6 +105,9 @@ struct elf { struct hlist_head *section_hash; struct hlist_head *section_name_hash; struct hlist_head *reloc_hash; + + struct section *section_data; + struct symbol *symbol_data; }; #define OFFSET_STRIDE_BITS 4 From patchwork Tue Dec 27 16:01:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36953 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1460137wrt; Tue, 27 Dec 2022 08:04:17 -0800 (PST) X-Google-Smtp-Source: AMrXdXs0KZUyB3/ms8uPxelEm9kRynyN97UVLv4zqCNXcYWUtpVhPdchcJLRXU/Ry0y6Z/Ay36b6 X-Received: by 2002:a17:907:d410:b0:7a7:9a38:d284 with SMTP id vi16-20020a170907d41000b007a79a38d284mr10804829ejc.19.1672157056956; Tue, 27 Dec 2022 08:04:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157056; cv=none; d=google.com; s=arc-20160816; b=wD8HrtFFFxb0izxYOlyK6cvetogB3ieiJXBPR+dq8inacJP3dDDR2L5/ictc6f36+2 GhYcfL+Ps+WJMTJxTSFKr1OgGRyLFli+u9ljtzqvMUO4ThO2fm4gUyC2NDLa0vno0ovB 95UAE49FiVnuvDXRiLM57WfpXu1pFdASlVVu927k9VCfLw76T1XE5TcLnJiFzqAlWeb1 fJEZLKh0XO9m5pjMvSlS0dQZR62jAwgXFoPKwtLZISzdaR/icqKMikEwMcDI9IUj5Uma /31mh9JkIw2lD10zuW0C6h0JiAVIuH5yHKfqRs0hRD+bfHtaFJZ8Zl3fePGk+MZ++PH7 YJ5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=SF2vaSzCUPYujLiuToAcktE0mfkoRJgXutov5HwIa8M=; b=uee5A0GABqCWhgP97m/Nqk51fHTnLGjmtUVVtdOvvRCIPMkBDzXLPnKiAIQxY+SAkp raNb1F7yXE17+H5JI5AKipMkiSx3F89QMi4x5RiNOeYiBED/8NmMcJ2m4QFBQdhkAc/b 7rGWg7MBchjdlVElsqmCBu64HEIsQAAH/QdegNpkfGmc5YL5aoS6Skt+Dd1ucINf2OSR jlnW3oufb8d4CCZX8TAeovffG0anzntm8uoc/PQmlq81+Jf3UoJBzWkkk1THsNdv3tfr 3utJSG2J8clcqBEe5slOzxuR3qVV6oIMkC7TV/YSBcueH+zZOiPj4wSe1VS5gSMM0oGJ IXYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=lINXVNrU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id js4-20020a17090797c400b007c18a102d75si12264101ejc.556.2022.12.27.08.03.53; Tue, 27 Dec 2022 08:04:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=lINXVNrU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231809AbiL0QDD (ORCPT + 99 others); Tue, 27 Dec 2022 11:03:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47048 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231417AbiL0QCt (ORCPT ); Tue, 27 Dec 2022 11:02:49 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9BAEF18 for ; Tue, 27 Dec 2022 08:02:46 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156964; bh=XawsrqdClQjkEya+uIP7vjQbb3ysRQ5lLFyEAtEK+X4=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=lINXVNrUUOk3hwcmjZnbQqmQK+nWm1BcT4cDJEsbYIIzLtmYmF/Pa46Qr/kz4ILKE aIMVVuWkMs85n8wybbHJLPIPfPqJEsNwLInKYqw77S5rV88v2eBaeTtg/42RC+aktE 9Yv1W/0cepNMMrI8WYetZPG6WcPIEyVLUIggI8/s= Date: Tue, 27 Dec 2022 16:01:00 +0000 Subject: [PATCH v2 4/8] objtool: introduce function elf_reloc_set_type MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-4-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=3243; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=XawsrqdClQjkEya+uIP7vjQbb3ysRQ5lLFyEAtEK+X4=; b=gugRTtsJc0DvdnolPu6136JquZ3HSZXxFn9SkQmu8SbmeCtcWKkUYH2qz4tHTEEZRpry7agDfeVf xZvDrS44Czdh0zzmjTf9DxjCa0HgwUTq3S7H3iJUan4BcdvqDiOC X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383758113085479?= X-GMAIL-MSGID: =?utf-8?q?1753383758113085479?= An upcoming patch needs to perform validation when setting reloc->type so introduce a helper to contain this validation. Signed-off-by: Thomas Weißschuh --- tools/objtool/check.c | 6 +++--- tools/objtool/elf.c | 11 ++++++++--- tools/objtool/include/objtool/elf.h | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/tools/objtool/check.c b/tools/objtool/check.c index 4350be739f4f..971ee6826de7 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -1355,7 +1355,7 @@ static void annotate_call_site(struct objtool_file *file, */ if (opts.hack_noinstr && insn->sec->noinstr && sym->profiling_func) { if (reloc) { - reloc->type = R_NONE; + elf_reloc_set_type(reloc, R_NONE); elf_write_reloc(file->elf, reloc); } @@ -1384,7 +1384,7 @@ static void annotate_call_site(struct objtool_file *file, WARN_FUNC("Tail call to __fentry__ !?!?", insn->sec, insn->offset); if (opts.mnop) { if (reloc) { - reloc->type = R_NONE; + elf_reloc_set_type(reloc, R_NONE); elf_write_reloc(file->elf, reloc); } @@ -1863,7 +1863,7 @@ static int handle_jump_alt(struct objtool_file *file, struct reloc *reloc = insn_reloc(file, orig_insn); if (reloc) { - reloc->type = R_NONE; + elf_reloc_set_type(reloc, R_NONE); elf_write_reloc(file->elf, reloc); } elf_write_insn(file->elf, orig_insn->sec, diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c index 9c326efb8cd9..ee355beb0d82 100644 --- a/tools/objtool/elf.c +++ b/tools/objtool/elf.c @@ -555,7 +555,7 @@ int elf_add_reloc(struct elf *elf, struct section *sec, unsigned long offset, reloc->sec = sec->reloc; reloc->offset = offset; - reloc->type = type; + elf_reloc_set_type(reloc, type); reloc->sym = sym; reloc->addend = addend; @@ -872,7 +872,7 @@ static int read_rel_reloc(struct section *sec, int i, struct reloc *reloc, unsig WARN_ELF("gelf_getrel"); return -1; } - reloc->type = GELF_R_TYPE(reloc->rel.r_info); + elf_reloc_set_type(reloc, GELF_R_TYPE(reloc->rel.r_info)); reloc->addend = 0; reloc->offset = reloc->rel.r_offset; *symndx = GELF_R_SYM(reloc->rel.r_info); @@ -885,7 +885,7 @@ static int read_rela_reloc(struct section *sec, int i, struct reloc *reloc, unsi WARN_ELF("gelf_getrela"); return -1; } - reloc->type = GELF_R_TYPE(reloc->rela.r_info); + elf_reloc_set_type(reloc, GELF_R_TYPE(reloc->rela.r_info)); reloc->addend = reloc->rela.r_addend; reloc->offset = reloc->rela.r_offset; *symndx = GELF_R_SYM(reloc->rela.r_info); @@ -1471,3 +1471,8 @@ void elf_close(struct elf *elf) free(elf->section_data); free(elf); } + +void elf_reloc_set_type(struct reloc *reloc, int type) +{ + reloc->type = type; +} diff --git a/tools/objtool/include/objtool/elf.h b/tools/objtool/include/objtool/elf.h index 1c90f0ac0d53..33ec6cf72325 100644 --- a/tools/objtool/include/objtool/elf.h +++ b/tools/objtool/include/objtool/elf.h @@ -83,6 +83,8 @@ struct reloc { bool jump_table_start; }; +void elf_reloc_set_type(struct reloc *reloc, int type); + #define ELF_HASH_BITS 20 struct elf { From patchwork Tue Dec 27 16:01:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36955 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1461011wrt; Tue, 27 Dec 2022 08:05:44 -0800 (PST) X-Google-Smtp-Source: AMrXdXuYDXRcHKrlCjDlHDXerzoYRA6hNtXSeiYXRkjNujkdUvCnG9qGdxBgEbHSSVvgQdBP7YzS X-Received: by 2002:a17:906:688b:b0:7c1:5768:5fc9 with SMTP id n11-20020a170906688b00b007c157685fc9mr16264894ejr.43.1672157143956; Tue, 27 Dec 2022 08:05:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157143; cv=none; d=google.com; s=arc-20160816; b=D2jhWGi2zNAgBhnjtlM73GFZtnilfkIGrRyCOd6lafVlOfD5fM79xOYTJ6TIu9lEXY xztoGmZROAlhPYZlOvWlu9j3RwXfMSKdMAh4ViZa/+Qsh0iJ5N6oNCnzmdrvO2NJKARJ RjpuMS6rRbH/d39nD5/E3W+1jwbDYrKoEPzsHgkGW2GKbaSUBvaq/uiyyP8UW2XvGYu0 z7v9OrZ0iePCgCNypv0/Hq9HB1Va47fBvoygqZhwHLXsUZrz/StvlERRoWn7vGmvgMVP jrkS9gGi5MWn3j9zRpzEBIJbJp1qoLKzjiJtnKNHW1SN+SECkMmnkiSLKZb0Yxy0ViVa 6k1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=UPKYUXhz5W0OEToyOJwznXcU5mqY9LQXhFytpkfal5k=; b=LvlcZ5LhZ09iYuQxPHNMtTxZRX+7+G4BGCQ4etZ7NJmMiG+C8qOIYQQXSoblHGBIjs 2o0w3Rx78AuPXjg5j3WTHmOHOfOhmz7oaAjCLWXVI+0aDAC86nnkzbEPHvB6T+Yj7hSz YHFXg9o2W53hjMU4JXlreSyzgFVl/uSBOsZ8Zm27u+SPCi7EYqnmERY1QZ6ExkwDEWtk krCkbK6HqBYS/HLLioZqVbfRXBrP3RCnLPf1NXfhQsRbbVKtIH6f6BRKRDyxQH8PgANA dfscge3Q4GSMi0G4SO8iC4WHf/gn6AN8osGxGKNe65IH2q+VvLdwtCaj5J+0bUfz47lQ 4YQQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b="EMe/icwp"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o25-20020aa7c519000000b004865244368fsi2792604edq.334.2022.12.27.08.05.19; Tue, 27 Dec 2022 08:05:43 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b="EMe/icwp"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231417AbiL0QDc (ORCPT + 99 others); Tue, 27 Dec 2022 11:03:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231608AbiL0QCv (ORCPT ); Tue, 27 Dec 2022 11:02:51 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9AC860DF for ; Tue, 27 Dec 2022 08:02:49 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156966; bh=HMfXPM4QGrr46ln+5URVoZikc1BOiA+8cDROM3xuWNg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EMe/icwpCrtDDLc2F9MA+Ztlf16gn5RUk7Yzc0xtAs8c0WQ9/mir7JknzUycNOhVY Go3Wkg3o0QiBbV0AFrqApoOHeNmo4L9Q+6aZU2svuuG6biaynAGmx5CUmT1C2Vn3Mk GUcU08WMe9YL8M5Pzvdh5qpd5BcA8M6H0J7cNFzk= Date: Tue, 27 Dec 2022 16:01:01 +0000 Subject: [PATCH v2 5/8] objtool: reduce memory usage of struct reloc MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-5-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=1624; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=HMfXPM4QGrr46ln+5URVoZikc1BOiA+8cDROM3xuWNg=; b=aQ7IAbiGlCMxnLDaQjHg0BDIPnl012xb3SFB40A9z7vKTalZQK3yit84aV22CrH7wWZWCUoqz2Df A6uktE2gA3vVzsVDRuuuZxI3CCC+KycU/RoK1bmhpvzlMS/nRTjE X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383849077572638?= X-GMAIL-MSGID: =?utf-8?q?1753383849077572638?= Use a smaller type for the relocation type and move it to a location in the structure where it avoids wasted padding bytes. Technically ELF could use up to four bytes for the type. But until now only types up to number 43 have been defined. Reduce the size of struct reloc on x86_64 from 120 to 112 bytes. This structure is allocated a lot and never freed. This reduces maximum memory usage while processing vmlinux.o from 3035668 KB to 2919716 KB (-3.8%) on my notebooks "localmodconfig". Signed-off-by: Thomas Weißschuh Reviewed-by: Rong Tao --- tools/objtool/elf.c | 3 +++ tools/objtool/include/objtool/elf.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c index ee355beb0d82..182452adaa71 100644 --- a/tools/objtool/elf.c +++ b/tools/objtool/elf.c @@ -1474,5 +1474,8 @@ void elf_close(struct elf *elf) void elf_reloc_set_type(struct reloc *reloc, int type) { + if (type >= (1U << (8 * sizeof(reloc->type)))) + WARN("reloc->type out of range: %d", type); + reloc->type = type; } diff --git a/tools/objtool/include/objtool/elf.h b/tools/objtool/include/objtool/elf.h index 33ec6cf72325..2b5becad5a0a 100644 --- a/tools/objtool/include/objtool/elf.h +++ b/tools/objtool/include/objtool/elf.h @@ -77,10 +77,10 @@ struct reloc { struct symbol *sym; struct list_head sym_reloc_entry; unsigned long offset; - unsigned int type; s64 addend; int idx; bool jump_table_start; + unsigned char type; }; void elf_reloc_set_type(struct reloc *reloc, int type); From patchwork Tue Dec 27 16:01:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36956 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1461170wrt; Tue, 27 Dec 2022 08:05:59 -0800 (PST) X-Google-Smtp-Source: AMrXdXuaC4N08XTwBFzcYMXkwWWqh0JuvxZT5BOnfkZk5wYlrhj6W74DH71LPSlw5ZlrGvZJA0ek X-Received: by 2002:a05:6402:194b:b0:45c:834b:eb44 with SMTP id f11-20020a056402194b00b0045c834beb44mr26674087edz.15.1672157158940; Tue, 27 Dec 2022 08:05:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157158; cv=none; d=google.com; s=arc-20160816; b=BBfMG0EV87ZwlKZcMuPCdsbvfugIoTG3LrPB+qvxZ697+zm4YXLA8plF/u/h9y8oG5 dWdodqhybBfz7Eflv1CuHoBMEsoqxti9aIFqKN+Mn/2bnoeJRpI7GKnDD9qbXx6mJqN5 7drFGjw3OoFruLLfn9l2JzcYLadnkQ0tKct50dXBIitKRvex6qXs5Sdc2XaSzwxDwlCB Jn53BhMjVSela+FDL0Pv9/D7NZqD0JePm6Yn3wvqUptsTSCjO5ykDa2UBi2WqtieML4a EeRCkxGADBosGaIJMkOJYHHQ0gOeJsYGuKk9QG6t6yjgzdWWE4bMBY+hK16DUWWTMjPw TqCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=T7ji34dxrZIYtvle5TFEDTXCtcXG1bgiku7DLfmLysE=; b=OonOM6s2jvE7H8nomXlsBl0sOf3mDeXUbQP7zcDcwNQ94n9XwMslVwuNURwOv5/sPe +kvWhEh+aptELQAdJNdoANH2sA569zimFnznCk267q5V1IrKFWibh3WQ9gIrkki7NUUZ 0/QJqMzBAtpBCwAq9JXMDRqLTjrMgWU9zHNfj2QkVDprMk4NT8yoKMe1OtbaWNAQWM/6 gopHBxl5fOctKw7tscp0a3FxrV46ZgMC9xngYiG6oaLWACpf0Tz/sWMP9LT7mllk8v+W EhrZZLFWtSyD2DvzYvFrAZFucKBiVHY0+GQplgckEOq9xtiF5bKzBrVPWork95sF7Zek b4aQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=EiXUPHGF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nd16-20020a170907629000b007ae0fe6198fsi12953019ejc.132.2022.12.27.08.05.33; Tue, 27 Dec 2022 08:05:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=EiXUPHGF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232081AbiL0QDM (ORCPT + 99 others); Tue, 27 Dec 2022 11:03:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231593AbiL0QCv (ORCPT ); Tue, 27 Dec 2022 11:02:51 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B9A60EA9 for ; Tue, 27 Dec 2022 08:02:49 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156966; bh=gxt7wUGYdqW5dnnuQ+NaxVEhN/M72u1992lthLjmCpQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=EiXUPHGFDmtPI7cJe3auCz78QEZVKKF7TJace5j4pwj6zMPPa/GLrAThg8QRf45cb CRiY80s8+sLJ68Ia20SlXixIMUM3zT613FRFkUsFCDPdOkxURh1dpVKZVBIdgs0WV6 /f+FEcehsMWpRxT0eX3prW9HW6suMy5Mn2qVygQ4= Date: Tue, 27 Dec 2022 16:01:02 +0000 Subject: [PATCH v2 6/8] objtool: optimize layout of struct symbol MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-6-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=1055; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=gxt7wUGYdqW5dnnuQ+NaxVEhN/M72u1992lthLjmCpQ=; b=Xsvfu2//FCigo7nfKlub7bHkejf0HGMpbq3HbjfGca8mWRf746ZswAaDkqiJvr95RiP3HIyPAfT+ BjLuHeGpBnQGqMsq+1ETS/WYtzPaT8s4r8ITG7PGAXEO+6sixRQ4 X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383865310226053?= X-GMAIL-MSGID: =?utf-8?q?1753383865310226053?= Reduce the size of struct symbol on x86_64 from 208 to 200 bytes. This structure is allocated a lot and never freed. This reduces maximum memory usage while processing vmlinux.o from 2919716 KB to 2917988 KB (-0.5%) on my notebooks "localmodconfig". Signed-off-by: Thomas Weißschuh --- tools/objtool/include/objtool/elf.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/objtool/include/objtool/elf.h b/tools/objtool/include/objtool/elf.h index 2b5becad5a0a..f41573ff1f8b 100644 --- a/tools/objtool/include/objtool/elf.h +++ b/tools/objtool/include/objtool/elf.h @@ -50,12 +50,11 @@ struct symbol { GElf_Sym sym; struct section *sec; char *name; - unsigned int idx; - unsigned char bind, type; + unsigned int idx, len; unsigned long offset; - unsigned int len; unsigned long __subtree_last; struct symbol *pfunc, *cfunc, *alias; + unsigned char bind, type; u8 uaccess_safe : 1; u8 static_call_tramp : 1; u8 retpoline_thunk : 1; From patchwork Tue Dec 27 16:01:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36957 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1461171wrt; Tue, 27 Dec 2022 08:05:59 -0800 (PST) X-Google-Smtp-Source: AMrXdXvzCRmtguhodRNCCXAEnsvxzjfpUKjxtUsJPN2yvjjLKxRpY8IC0Mn7pNF2fiesKJW6N6Wf X-Received: by 2002:a17:906:eb94:b0:841:df6e:a325 with SMTP id mh20-20020a170906eb9400b00841df6ea325mr16951059ejb.9.1672157159153; Tue, 27 Dec 2022 08:05:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157159; cv=none; d=google.com; s=arc-20160816; b=mYTmAHkw+ec/78j1qyVwtGomYaBVTeecArr1n9FCgngmjZgjAVQksMmG3rVyAzTj9N 0pIufU6YfHoGfnWy6kUN6Tb5Mg5jTONN7K9ldF7S4xcMZi5ICerEsNSbO9bakd/cyDcK 0uszQfOO6APfJaZJiIgHzWRiXAZ/Ys423Z9XD19YxnPeNpeXW5HwJrkxgzSYKJ1DZx6R 5EeMEmEclyxI7diewLvTGeWEIrJiOntecOuaQAidrHmbsjqcOVyfu+Hy4OQjPFr/q85Y AEg/ORXY6zL8Pr8Cb4yqW6mLzj3/U6F6jEvTSGhrIikq5rCxvCKXR006oK7Kvw9ahTL/ uXTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=gMepW4XNSNAfC6fyhrmiejwDhNwjB8W1OpXv46uSSyo=; b=Vk3X7jIbOaO8+pYr/k8YQ69n6F5iO3TpUYmrp3pUmsAjV3zvlIPJfH5UHh4UXdkCcO srQrUztloLLcqi1Sg3FJaeaeTANwyYXrwTOHvG2qk8so1jHny7rxeB8hFOrD19Lw7WlZ VkLvqId/FCKmuMYuu+EKpuIPp4kt7uKrugofIrP6zDr3x9RfWASwzf+zqtEuHf1h7nbJ qHvNQj2UOtJgApIjGVsnE3RHgZjSNGBQ5748BSds5Fdace8jtBvBI8qKbOGO8eMrWfwG Q13T5vhpC0Uq1JOCTYYtMnSYKLqY0LSHXzN0UJC7dpIlCmIscnpZyNovp8nMljnOzG6j s24g== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=amxlfhy+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id xf6-20020a17090731c600b007c0eb3849adsi11170796ejb.716.2022.12.27.08.05.33; Tue, 27 Dec 2022 08:05:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=amxlfhy+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231859AbiL0QDh (ORCPT + 99 others); Tue, 27 Dec 2022 11:03:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47072 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231615AbiL0QCw (ORCPT ); Tue, 27 Dec 2022 11:02:52 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [IPv6:2a01:4f8:c010:41de::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB755B4A5 for ; Tue, 27 Dec 2022 08:02:49 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156966; bh=QPm4tnLN0YjuqSH/PP3qCzyHZ3iKBL4Z+lxmjKe0ykc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=amxlfhy+MP1y275Npt9ETo36B6ozZo8wrqf3cLIUnRWnh5aU4+3JgCtVUlz67HbJc SNMfURiS7WvPlC4nycAu3l22IokTv+O3AeITA8BEBO5hKm0VlTtZdtAA+lpgiGBNjS ymwTaCVLjDuYhA3OCbOkN+74MIr1ZjKSFL4BFLrs= Date: Tue, 27 Dec 2022 16:01:03 +0000 Subject: [PATCH v2 7/8] objtool: optimize layout of struct special_alt MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-7-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=856; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=QPm4tnLN0YjuqSH/PP3qCzyHZ3iKBL4Z+lxmjKe0ykc=; b=AEnINnK17XKm+Yujt5K8r+9bzPJKBLA6p9hkW6Q/8EnBpM7k5dpJo+bkSc5LsyKIE0kdzZvneyiA y/LDhEoHCEvGfbsR9r1Dv9TtGYQ0LApDEQh27/oX4l9zpodXWlkb X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383865453965656?= X-GMAIL-MSGID: =?utf-8?q?1753383865453965656?= Reduce the size of struct special_alt from 72 to 64 bytes. Signed-off-by: Thomas Weißschuh --- tools/objtool/include/objtool/special.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/objtool/include/objtool/special.h b/tools/objtool/include/objtool/special.h index dc4721e19002..86d4af9c5aa9 100644 --- a/tools/objtool/include/objtool/special.h +++ b/tools/objtool/include/objtool/special.h @@ -19,6 +19,7 @@ struct special_alt { bool skip_orig; bool skip_alt; bool jump_or_nop; + u8 key_addend; struct section *orig_sec; unsigned long orig_off; @@ -27,7 +28,6 @@ struct special_alt { unsigned long new_off; unsigned int orig_len, new_len; /* group only */ - u8 key_addend; }; int special_get_alts(struct elf *elf, struct list_head *alts); From patchwork Tue Dec 27 16:01:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Patchwork-Id: 36951 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp1459889wrt; Tue, 27 Dec 2022 08:03:56 -0800 (PST) X-Google-Smtp-Source: AMrXdXvPLrWUlRgQ+AQhNVl5b1AhDOCDH8+eidGbAmc8ztcLS9VTGVuqP975fhrFtp3nvrxxfeuk X-Received: by 2002:a17:907:180c:b0:83d:61f8:3c with SMTP id lg12-20020a170907180c00b0083d61f8003cmr18347773ejc.3.1672157036421; Tue, 27 Dec 2022 08:03:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672157036; cv=none; d=google.com; s=arc-20160816; b=cIHS3rsuMUysIl+rhNzSxZLQUhlvCBiCB1f5rP3d4dTW3XK2ml36CjYLTWdfh4Vdbg eOlgPr63tOKDqhHn1w5dBEQHi/5yPQWQBFLs3pVqsmoilU8d60e4wU8AmMQdIUDPj/St wDG0opoaWX2qTkEhp7lfx+xmvpyPCm4FdjaoqsO7i0Qisey/eDJWjCHmCi/zJFPCTjFo W+pyEOAZTW//JGPyXWZA/kFOcdq0rVgLR2DxXawm3KP88l49lUkNAaJo18m4/rlj45cI yrfvKOwq4HrBJ6KLl+YaTVMzdeLxcMl0W9w9nhvX5CdQGsTGxtWYmNi90fe85H8q3SK4 HovQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:dkim-signature :from; bh=bFPA0IBIJaEy2/voRS0odpOtzEbW+juo7gl60jGTTD4=; b=hUCDbVJYXKjp4V6YjwF740Nh/xW2ZYdIsZL2RmgaioMcULpa4JlMArO7fMPvIeDvtv QtECcyUNvH+bJzNhUZhBbMBCoqZ/uOrTwc1LoBK7erihAnHzDUIM20GJSaDW5SVOOVIJ BketARsFl8JrklPEefLk3O8lzgfRHHQonMXs6vVWmXgujgDHF6zyN6WDtTTb/B2YBPIv 8yUQQdPbQsp3cBZEIURyQxx257cVgltKACoIwtNVK6Gm3C+l3x3GDEv+wxXqPvfrCluz oVi+Epqs6zV7QTvf5YrDCDQySBi+YGpR6F6FJjbqhae3pIb4jQKvRAt70w0BkdfKheHj hGnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=BoJrCV32; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dr6-20020a170907720600b007c0969e429bsi11401648ejc.30.2022.12.27.08.03.30; Tue, 27 Dec 2022 08:03:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@weissschuh.net header.s=mail header.b=BoJrCV32; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231298AbiL0QCt (ORCPT + 99 others); Tue, 27 Dec 2022 11:02:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47044 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230209AbiL0QCs (ORCPT ); Tue, 27 Dec 2022 11:02:48 -0500 Received: from todd.t-8ch.de (todd.t-8ch.de [159.69.126.157]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2F92D73 for ; Tue, 27 Dec 2022 08:02:46 -0800 (PST) From: Thomas =?utf-8?q?Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=weissschuh.net; s=mail; t=1672156964; bh=WygJ1LogaMt7MCTVMz5LRPbo5ugX1SmSSa6UqeJvw4g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BoJrCV32q5+ZX9E7hByJLWwo7fCfvpmrC+NI8JWcOJ4OXoeUmNeiVkEBNdl97cP1C fJis5QnFfTipBbfr/kazHgOWmDYa959RnH3GmpbfKBFf9M6NczsoKxwpF+JPI0LJie WZVNrCY9ff0/sfMvuCOLEQSrVuANtVqmphzTycXY= Date: Tue, 27 Dec 2022 16:01:04 +0000 Subject: [PATCH v2 8/8] objtool: explicitly cleanup resources on success MIME-Version: 1.0 Message-Id: <20221216-objtool-memory-v2-8-17968f85a464@weissschuh.net> References: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> In-Reply-To: <20221216-objtool-memory-v2-0-17968f85a464@weissschuh.net> To: Josh Poimboeuf , Peter Zijlstra Cc: linux-kernel@vger.kernel.org, Thomas =?utf-8?q?Wei=C3=9Fschuh?= X-Mailer: b4 0.11.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1672156865; l=618; i=linux@weissschuh.net; s=20221212; h=from:subject:message-id; bh=WygJ1LogaMt7MCTVMz5LRPbo5ugX1SmSSa6UqeJvw4g=; b=MRmJd1QRpDgL/iIJ/DCBZTdg4HCDjlAvrgtCTCrxDptY+z/uSoHWpLTa0PFHkm8zAL2huAiioeNH ElsMGfVWBLCXo8f9Z0XTYkwtKZVjIAmY8TzWcVqvEtLc+YOAf6Er X-Developer-Key: i=linux@weissschuh.net; a=ed25519; pk=KcycQgFPX2wGR5azS7RhpBqedglOZVgRPfdFSPB1LNw= X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1753383736531487349?= X-GMAIL-MSGID: =?utf-8?q?1753383736531487349?= Previously the file was only closed and resources properly freed on errors, not on normal exits. Signed-off-by: Thomas Weißschuh --- tools/objtool/builtin-check.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/objtool/builtin-check.c b/tools/objtool/builtin-check.c index 7c175198d09f..e11c766b98ce 100644 --- a/tools/objtool/builtin-check.c +++ b/tools/objtool/builtin-check.c @@ -229,5 +229,7 @@ int objtool_run(int argc, const char **argv) if (file->elf->changed) return elf_write(file->elf); + elf_close(file->elf); + return 0; }