From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id EB0F8385780C for ; Fri, 29 Apr 2022 14:28:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EB0F8385780C Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 23TDiExF003699 for ; Fri, 29 Apr 2022 14:28:40 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fmbb4xf2p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 29 Apr 2022 14:28:40 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23TEFFgC032973 for ; Fri, 29 Apr 2022 14:28:39 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam08lp2173.outbound.protection.outlook.com [104.47.73.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fm7w84et6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 29 Apr 2022 14:28:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fgCh2BSF9Wp+CMtSPSzCZ0UqBfpIv7O8sCHoNBdmZW1TrGYeXhpdvmPlQqg8541amvl4Kv9MR6JqMKKx6cDooZZHDGIs39ZGYMmd+BVa2Nnmp/IVN//nDPFZslhi+XrDkqGL7UI1Jdbg+jtAF0MkQNDXVF2WabWpGE/AH4Tm8rHMFzQx4BsLsrKUeOw4Ynd3XUFmG3e7+98PG+KpMFi0euWITQqcCWdPiszefcOFypbgbbg0uCZ36nA/ayeIzZronS7j1hmBZeAMpvLc16v7RanVDKQWkdu9SwR+sYHe2a8RRQWzbMwqm1j4T0HsihC8mOR/X5+rfuEFVIV74mTWWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7t03tE34grne8jdHSKY+qA7B2J8wgCTt0ABpi3JTfwE=; b=KlS7+UaQQ5S2r/b6ze0LEfO/IF6kaCcH1P7tunEQaDy4rSIptseWpDIwi02lDcMSo+d8KpjRhX51TUwf0eNB2OiieXLtgqsINx4hGJz+XwULSFOuE2Oq7jC8+lLiHG+rgSBKsS3qzwl3/tEG1Kgq55dlacJPdxObXVf7rfwBYdxjugRqmUTzfmofici18wczSQY0oIJbq1VZa2Yv37s383ZVaDop/1gaD3LKtQ4PQ48tps8pVvfY5jo7ruwWRLENqk9gSt+eLjM8ef47g+8QhGM7zQr5pQdnBQVrLd6OunCDIWbb0A8wKmVIVNukvnrwzonKS+YwCCI+KdEH8y/BVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) by BN6PR1001MB2163.namprd10.prod.outlook.com (2603:10b6:405:2e::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Fri, 29 Apr 2022 14:28:36 +0000 Received: from MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::107d:de35:fa5f:3cc0]) by MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::107d:de35:fa5f:3cc0%7]) with mapi id 15.20.5206.014; Fri, 29 Apr 2022 14:28:36 +0000 From: "Guillermo E. Martinez" To: libabigail@sourceware.org Subject: [PATCH v3] ctf-reader: Improves performance to read CTF information from Linux kernel Date: Fri, 29 Apr 2022 09:28:14 -0500 Message-Id: <20220429142814.260384-1-guillermo.e.martinez@oracle.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <87sfpwf8ke.fsf@seketeli.org> References: <87sfpwf8ke.fsf@seketeli.org> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: SA0PR13CA0030.namprd13.prod.outlook.com (2603:10b6:806:130::35) To MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ef335bb6-0963-4d01-a2ab-08da29ec8bba X-MS-TrafficTypeDiagnostic: BN6PR1001MB2163:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B/RuiweVdZqUampn6+PB3Vd6ck0qEcGWWLC0X/mK0rbMSYqlUssr2VOkLPI0pCzDDGFJ5652Tarer8jHg7G2du5xk83gKladdKaAgbYMnuQurA8nLr6sRi1xglfTEiu4JDwhxvzMaP5ciAxLsxuSxrnIlNZ0F1psgoB8KtzHb2/56TZHZbPgXgiAEBELBf06MHe8mrc+4cKEU0gzSdnAzaQndnfGdFtGOqQR700AYFa+Hk7JpDqci2GLc8PGLIct85muKH2Zc8zFuJTHNL5t2UfxmOwnRbR7cRB4lXJKFVQMuOZ14LC7WvFO6o/1Fbtl8T9hzBvRhIiFElyVOVhUuNsU2hWnratCar3AFXTf8LbhcujuE45zqjixEMGpPEtXPnlR+VOFkm23iQAe1CKXmR1777DIt/mp+JAbgFIiNOlyGj8vvSQ9E/uJceEr5NdlVLtRJybGDqMPr7zY+RuHbKSpNGS7nqVS4cqBqmwN5Mhf2E32AnRtu9yzRkcTkatO5KBByCj/rExUyBc/UID+cuyPkbhrKCVkrZsSeOv9Y/FS/8GuBf7Uoxzbj+Z9YnbUwgvmIzf5Q2B9nrzBsITj7L5hnaquLCi6yTAe8hUbhmEGCa1kqBFlYjgnC2uOrHdFtfhlV9KVd2A8LtHIdpS47oXvMTOWFpmXPKlztZfnGCpGCRBrifVbgIfY1srW6H5avHn+bJGP5chtmXhRA/RWWgclfi1r9gexDVeZfcxUN8PbyTInDvcvd/tlHRJvqGfTPC3fMZGJOD1Fo2zYdRJUL7M+rEqLGkNrLlKRze8RTTI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR10MB1407.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(186003)(5660300002)(36756003)(66556008)(2906002)(66946007)(52116002)(66476007)(316002)(103116003)(83380400001)(6916009)(8676002)(4326008)(8936002)(107886003)(2616005)(966005)(6486002)(508600001)(86362001)(38350700002)(38100700002)(6666004)(1076003)(26005)(6512007)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bi2Ou4OwLQ2/GcUK4GxS4hHfiotNT5SkKl3cPWyq/Js7sLMTjSrL7mQKbAt/?= =?us-ascii?Q?4vSGLcFf1OrKo+VZRWF/+1xrHMbmQ+DFj9TJpIyJAhEhNsN1ZfQNaHe7+kLj?= =?us-ascii?Q?zCyH5E27OFVosyyrPaeqK3N+OJtCNez7LxKtr3WbyA0PwSJB68rRSu6W1H5f?= =?us-ascii?Q?hVnChCdEpEd969Q3KcatnlWmfvU2JEiMorYhAVPUAf2qzyVg9QuQ6U7pAkJj?= =?us-ascii?Q?FG/8G1fAcqEqmrh5s2TqwGeWi1w5GgRPE2i6XvAuwQLNV/RQxq8Hd3kMEJtN?= =?us-ascii?Q?uJfXBC24yb+n8OKj/J5H9WzqVH5pNNoOm+KplKQm7gOugzm3VAtnCHZU374O?= =?us-ascii?Q?dJX0bvaLycKQDLFDhOrhPa3Xv3K5qBj7QNp3VggQub3jtSjCdb4TmkszYlyk?= =?us-ascii?Q?WP606krIIRNJQ3lEEu8uY/LnA4hqPTzzphRB/rhYe7QGh1OHh1IOg0jW4XD5?= =?us-ascii?Q?WTr76bhh6czIjQxgeoz8H6jI4pRrPv2mBYLdoJDe5a9ykxNKOCsvzl+B775Y?= =?us-ascii?Q?QhUD36pnZA97PcvrTIaGprNM5vyf3RRdYiNQZ10otB4LQJfBLQ8K5/LAhIhY?= =?us-ascii?Q?T/mSDoIpfMR4dH95tbLAIjuW7w9PofrHSwGK+gt6d+PD8x/uT078zNMg/9ZU?= =?us-ascii?Q?ZYJMTB6X6mHoapAG4DB1oqQcxgDIfKwBtGQWJHQi/JvSVo64BC2HMvbCeYSD?= =?us-ascii?Q?AVNjHCACOoFGCOWhng1+yBjXXnzPbheKjbLVyJpYHe757kAD4Fcx+ufNYa8T?= =?us-ascii?Q?wYWTqTr+7MmGy7KAxfISSExetztW8+j/u+FcC5It3/AJyWk42fnwUtcjro9q?= =?us-ascii?Q?/cl1aFbJ9uUTdqe/szmXZRDTyiokyaGBOlaC+b98Zkqvk116zmWWfDlrbNJq?= =?us-ascii?Q?h9uT7950I1/n/Ga4x4A81DzkC50dErEiqDuS2/++rvvr/T14rbgh4mKIu+Hh?= =?us-ascii?Q?aIkkiKUKEOdJ7AGntB0Zn79+nYoYZ4+SLURwlBAfxSEOsv4IER4H+qkvXHqQ?= =?us-ascii?Q?24MrSBgmFeXMqKWsnb4T5kxyH87knaT/pT91CgJ9gpoLv3axJup33hSHky1b?= =?us-ascii?Q?EUVz3pvGnOaj8Ikl9t8OXmWkUFo3Aztm7ynwSt3SSRUgLYdsnNzA0B+Aoq5K?= =?us-ascii?Q?hpcaMxg1dd+S0xV9ENKlXb/vXfLRdxfhgtXS2/ec74TVgcTHvpNsVmpu+4z8?= =?us-ascii?Q?kXQ36PNPZ2KpX7xr39JMGNwdPHPMrVZiJSZijYtymr+iYQG5MgqFTJ00zbnd?= =?us-ascii?Q?Qf9cGpm4YaCc91tTznBJJSKT5yOFYgDvebh0eRD0wA7xmct+l1HvsMs8eNe5?= =?us-ascii?Q?qMgwY/PYBlm/ocGZBK+ep35MgWBpF0aRonYZRJYKZSm7dBa9BXTWceOYNkd3?= =?us-ascii?Q?fV6Pi4DtAN+rBOjUltRwl8Gde3xf8JfMcUc8w/1iwgRGxzWVEGwP23gfFLfF?= =?us-ascii?Q?i3i7w7k/guE6oVazJb5YxV1mISq3Qjs1dIV1snVQCc6pylrj2hoYyAJH3dSU?= =?us-ascii?Q?7zOuUQGWSvRA13eALA/HrUdlUBpHKiO+YgTSViQybg/AQ6NjG2okZs8o1tYd?= =?us-ascii?Q?ITqEHV8u9pfQdWZ4C04JVijuZL7MiY2NF8v2X9OKA017M0aFC9Qlk7llk504?= =?us-ascii?Q?kZ/m25E6HFjmrGcg9Lo4Jh473b1f52drdHrWEMx7Wuo9guKuwF0pD/uAy4lF?= =?us-ascii?Q?MFWX/1YuiKVgk+LsSKYGNmpOJ/QafMB7XxP/fUckIQnr+00Bx+D2mbiJwHm2?= =?us-ascii?Q?rM9jxFY1e85XMnA1dAHGMmz1E8jlf8m1U7eZ5iZFZaEsLgKPc5JT?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef335bb6-0963-4d01-a2ab-08da29ec8bba X-MS-Exchange-CrossTenant-AuthSource: MWHPR10MB1407.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2022 14:28:36.2443 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: UststSqQg9U1b5GPC9kex3MwExgp0CVzN+uHSjfCC94bMV6B6KP+s8anf4jQw1tR5Od7lot3a3j8x575ntFfZ8/8EFd0i/4jBEkdZcYrWFA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1001MB2163 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486, 18.0.858 definitions=2022-04-29_05:2022-04-28, 2022-04-29 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204290080 X-Proofpoint-ORIG-GUID: -H7dwFY7kVBlJuCmfb7IRhByQ_Zu45WG X-Proofpoint-GUID: -H7dwFY7kVBlJuCmfb7IRhByQ_Zu45WG X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2022 14:28:45 -0000 Hello libabigail team, This is the v3 patch to improves the performance to extract CTF information from Linux kernel, major changes respect to v2 are: * rebase from its dependency: https://sourceware.org/pipermail/libabigail/2022q2/004309.html Please take a look and let me know your comments, I'll really appreciate them. Kind Regards, Guillermo The _same_ ctf archive is being open/close several times by vmlinux corpus and for each kernel module belongs to a group, it's hight time consuming during ctf extraction info from Linux kernel. So, this patch improves the performance up to 300% (from ~2m:50s to ~50s), keep open per _group_ `ctf_archive_t' pointer from vmlinux (the main_corpus_from_current_group), since this ctf archive file contains the information for kernel modules as well, then it's reused by each module to be processed in the group, invoking to `reset_read_context' ctf reader function. Doing so, `read_context::ctfa` member should be updated iff corpus origin is `CTF_ORIGIN', otherwise it must contain valid information from the main element in the corpus group, `ctf_close' must be called after processing all group's members, that is in `reader_context' destructor. * include/abg-ctf-reader.h (ctf_reader::set_vmlinux_ctfa_path): Remove declaration. * src/abg-ctf-reader.cc (read_context::read_context): Use member initialization for `ctfa' member. Remove `vmlinux_ctfa_path_'. (read_context::~read_context): Add destructor and delete `ctfa' member. (ctf_reader::set_vmlinux_ctfa_path): Remove definition. (ctf_reader::read_corpus): Adjust `read_context::ctfa' if corpus origin is `LINUX_KERNEL_BINARY_ORIGIN', looking for 'vmlinux.ctfa'. Invoke `process_ctf_archive', `sort_{functions, variables}' if ctf debug info was found. * src/abg-tools-utils.cc: (get_vmlinux_ctfa_path_from_kernel_dist): Remove definition. Signed-off-by: Guillermo E. Martinez --- include/abg-ctf-reader.h | 3 --- src/abg-ctf-reader.cc | 48 +++++++++++++++++++--------------------- src/abg-tools-utils.cc | 40 ++------------------------------- 3 files changed, 25 insertions(+), 66 deletions(-) diff --git a/include/abg-ctf-reader.h b/include/abg-ctf-reader.h index 827d1bc2..ba7289aa 100644 --- a/include/abg-ctf-reader.h +++ b/include/abg-ctf-reader.h @@ -48,9 +48,6 @@ void reset_read_context(read_context_sptr &ctxt, const std::string& elf_path, ir::environment* environment); -void -set_vmlinux_ctfa_path(read_context& ctxt, - const string& filename); std::string dic_type_key(ctf_dict_t *dic, ctf_id_t ctf_type); } // end namespace ctf_reader diff --git a/src/abg-ctf-reader.cc b/src/abg-ctf-reader.cc index dcc65d4e..8cb65b65 100644 --- a/src/abg-ctf-reader.cc +++ b/src/abg-ctf-reader.cc @@ -58,10 +58,6 @@ public: /// be read from the file then this is NULL. ctf_archive_t *ctfa; - /// The name of the vmlinux file from which the CTF archive got - /// extracted. - string vmlinux_ctfa_path_; - /// A map associating CTF type ids with libabigail IR types. This /// is used to reuse already generated types. std::map types_map; @@ -199,7 +195,9 @@ public: /// Constructor. /// /// @param elf_path the path to the ELF file. - read_context(const string& elf_path, ir::environment *env) + read_context(const string& elf_path, ir::environment *env) : + // ctfa data member can be used per courpus group + ctfa(NULL) { initialize(elf_path, env); } @@ -212,11 +210,14 @@ public: elf_handler = NULL; elf_fd = -1; is_elf_exec = false; - ctfa = NULL; - vmlinux_ctfa_path_ = ""; symtab.reset(); cur_corpus_group_.reset(); } + + ~read_context() + { + ctf_close(ctfa); + } }; // end class read_context. /// Forward reference, needed because several of the process_ctf_* @@ -1342,7 +1343,15 @@ read_corpus(read_context *ctxt, elf_reader::status &status) int errp; if (corp->get_origin() == corpus::LINUX_KERNEL_BINARY_ORIGIN) - ctxt->ctfa = ctf_arc_open(ctxt->vmlinux_ctfa_path_.c_str(), &errp); + { + std::string filename; + if (tools_utils::base_name(ctxt->filename, filename) + && filename == "vmlinux") + { + std::string vmlinux_ctfa_path = ctxt->filename + ".ctfa"; + ctxt->ctfa = ctf_arc_open(vmlinux_ctfa_path.c_str(), &errp); + } + } else /* Build the ctfa from the contents of the relevant ELF sections, and process the CTF archive in the read context, if any. @@ -1355,14 +1364,15 @@ read_corpus(read_context *ctxt, elf_reader::status &status) if (ctxt->ctfa == NULL) status = elf_reader::STATUS_DEBUG_INFO_NOT_FOUND; else - process_ctf_archive(ctxt, corp); + { + process_ctf_archive(ctxt, corp); + ctxt->cur_corpus_->sort_functions(); + ctxt->cur_corpus_->sort_variables(); + } ctxt->ir_env->canonicalization_is_done(true); - ctxt->cur_corpus_->sort_functions(); - ctxt->cur_corpus_->sort_variables(); /* Cleanup and return. */ - ctf_close(ctxt->ctfa); close_elf_handler(ctxt); return corp; } @@ -1392,7 +1402,7 @@ set_read_context_corpus_group(read_context& ctxt, { ctxt.cur_corpus_group_ = group; } -// + /// Read a corpus and add it to a given @ref corpus_group. /// /// @param ctxt the reading context to consider. @@ -1445,18 +1455,6 @@ reset_read_context(read_context_sptr &ctxt, ctxt->initialize(elf_path, environment); } -/// Set the @ref filename being assigned to the current read context. -/// -/// @param ctxt the read_context to consider. -/// -/// @param filename the @ref vmlinux CTFA filename to set. -void -set_vmlinux_ctfa_path(read_context& ctxt, - const string& filename) -{ - ctxt.vmlinux_ctfa_path_ = filename; -} - std::string dic_type_key(ctf_dict_t *dic, ctf_id_t ctf_type) { diff --git a/src/abg-tools-utils.cc b/src/abg-tools-utils.cc index b73786a8..47a33022 100644 --- a/src/abg-tools-utils.cc +++ b/src/abg-tools-utils.cc @@ -2470,31 +2470,6 @@ get_vmlinux_path_from_kernel_dist(const string& from, return found; } -/// Get the paths of the CTF vmlinux archive under given directory. -/// -/// @param from the directory under which to look for. -/// -/// @param vmlinux_path output parameter. The path of the CTF vmlinux -/// binary that was found. -/// -/// @return true if at least the path to the vmlinux.ctfa binary was found. -#ifdef WITH_CTF -bool -get_vmlinux_ctfa_path_from_kernel_dist(const string& from, - string& vmlinux_ctfa_path) -{ - if (!dir_exists(from)) - return false; - - string dist_root = from; - bool found = false; - if (find_vmlinux_path(dist_root, vmlinux_ctfa_path, "vmlinux.ctfa")) - found = true; - - return found; -} -#endif - /// Get the paths of the vmlinux and kernel module binaries under /// given directory. /// @@ -2576,15 +2551,6 @@ build_corpus_group_from_kernel_dist_under(const string& root, t.start(); bool got_binary_paths = get_binary_paths_from_kernel_dist(root, debug_info_root, vmlinux, modules); -#ifdef WITH_CTF - string vmlinux_ctfa; - if (got_binary_paths && - env->get_debug_format_type() == environment::CTF_FORMAT_TYPE) - { - got_binary_paths = get_vmlinux_ctfa_path_from_kernel_dist(root, vmlinux_ctfa); - ABG_ASSERT(!vmlinux_ctfa.empty()); - } -#endif t.stop(); @@ -2684,12 +2650,11 @@ build_corpus_group_from_kernel_dist_under(const string& root, else if (env->get_debug_format_type() == environment::CTF_FORMAT_TYPE) { ctf_reader::read_context_sptr ctxt; + if (!vmlinux.empty()) { ctxt = - ctf_reader::create_read_context(vmlinux, env.get()); - set_vmlinux_ctfa_path(*ctxt, vmlinux_ctfa); - + ctf_reader::create_read_context(vmlinux, env.get()); group.reset(new corpus_group(env.get(), root)); set_read_context_corpus_group(*ctxt, group); @@ -2725,7 +2690,6 @@ build_corpus_group_from_kernel_dist_under(const string& root, << ") ... " << std::flush; reset_read_context(ctxt, *m, env.get()); - set_vmlinux_ctfa_path(*ctxt, vmlinux_ctfa); set_read_context_corpus_group(*ctxt, group); t.start(); base-commit: 6716aa042bc84f79ae5292fc24d435048e26e078 prerequisite-patch-id: a85e80196ae4ae473f15c55245c386d2bf9b9a7c prerequisite-patch-id: ef0f517f89af7ae3cc1b573532a4805493058fd4 -- 2.35.1