From owner-dev-commits-src-main@freebsd.org Fri Apr 2 21:51:41 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 635815B3F00; Fri, 2 Apr 2021 21:51:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4FBtzx2Bhtz4SJZ; Fri, 2 Apr 2021 21:51:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3633C26CF6; Fri, 2 Apr 2021 21:51:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 132Lpfjq027231; Fri, 2 Apr 2021 21:51:41 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 132Lpft3027230; Fri, 2 Apr 2021 21:51:41 GMT (envelope-from git) Date: Fri, 2 Apr 2021 21:51:41 GMT Message-Id: <202104022151.132Lpft3027230@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 4d221f59b851 - main - fbt: Remove some handling for multiple CTF containers MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 4d221f59b851a9c844c84701bab7f4edb7026bd4 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Apr 2021 21:51:41 -0000 The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=4d221f59b851a9c844c84701bab7f4edb7026bd4 commit 4d221f59b851a9c844c84701bab7f4edb7026bd4 Author: Mark Johnston AuthorDate: 2021-04-02 21:42:26 +0000 Commit: Mark Johnston CommitDate: 2021-04-02 21:49:13 +0000 fbt: Remove some handling for multiple CTF containers This was ported from illumos but not completely done. Currently we do not perform type deduplication between KLDs and the kernel, i.e., kernel modules have a complete type graph. So, remove it for now since it's not functional and complicates the task of modifying various CTF type definitions, and we are hitting some limits in the current format which necessitate an update. No functional change intended. MFC after: 2 weeks --- sys/cddl/dev/fbt/fbt.c | 44 +++++++++----------------------------------- 1 file changed, 9 insertions(+), 35 deletions(-) diff --git a/sys/cddl/dev/fbt/fbt.c b/sys/cddl/dev/fbt/fbt.c index a378ae0eb317..3bad4243c040 100644 --- a/sys/cddl/dev/fbt/fbt.c +++ b/sys/cddl/dev/fbt/fbt.c @@ -474,17 +474,18 @@ fbt_typoff_init(linker_ctf_t *lc) int ctf_typemax = 0; uint32_t *xp; ulong_t pop[CTF_K_MAX + 1] = { 0 }; + uint8_t version; /* Sanity check. */ if (hp->cth_magic != CTF_MAGIC) return (EINVAL); + version = hp->cth_version; + tbuf = (const ctf_type_t *) (ctfdata + hp->cth_typeoff); tend = (const ctf_type_t *) (ctfdata + hp->cth_stroff); - int child = hp->cth_parname != 0; - /* * We make two passes through the entire type section. In this first * pass, we count the number of each type and the total number of types. @@ -495,9 +496,8 @@ fbt_typoff_init(linker_ctf_t *lc) ssize_t size, increment; size_t vbytes; - uint_t n; - (void) fbt_get_ctt_size(hp->cth_version, tp, &size, &increment); + (void) fbt_get_ctt_size(version, tp, &size, &increment); switch (kind) { case CTF_K_INTEGER: @@ -512,22 +512,10 @@ fbt_typoff_init(linker_ctf_t *lc) break; case CTF_K_STRUCT: case CTF_K_UNION: - if (size < CTF_LSTRUCT_THRESH) { - ctf_member_t *mp = (ctf_member_t *) - ((uintptr_t)tp + increment); - + if (size < CTF_LSTRUCT_THRESH) vbytes = sizeof (ctf_member_t) * vlen; - for (n = vlen; n != 0; n--, mp++) - child |= CTF_TYPE_ISCHILD(mp->ctm_type); - } else { - ctf_lmember_t *lmp = (ctf_lmember_t *) - ((uintptr_t)tp + increment); - + else vbytes = sizeof (ctf_lmember_t) * vlen; - for (n = vlen; n != 0; n--, lmp++) - child |= - CTF_TYPE_ISCHILD(lmp->ctlm_type); - } break; case CTF_K_ENUM: vbytes = sizeof (ctf_enum_t) * vlen; @@ -552,7 +540,6 @@ fbt_typoff_init(linker_ctf_t *lc) case CTF_K_VOLATILE: case CTF_K_CONST: case CTF_K_RESTRICT: - child |= CTF_TYPE_ISCHILD(tp->ctt_type); vbytes = 0; break; default: @@ -584,9 +571,8 @@ fbt_typoff_init(linker_ctf_t *lc) ssize_t size, increment; size_t vbytes; - uint_t n; - (void) fbt_get_ctt_size(hp->cth_version, tp, &size, &increment); + (void) fbt_get_ctt_size(version, tp, &size, &increment); switch (kind) { case CTF_K_INTEGER: @@ -601,22 +587,10 @@ fbt_typoff_init(linker_ctf_t *lc) break; case CTF_K_STRUCT: case CTF_K_UNION: - if (size < CTF_LSTRUCT_THRESH) { - ctf_member_t *mp = (ctf_member_t *) - ((uintptr_t)tp + increment); - + if (size < CTF_LSTRUCT_THRESH) vbytes = sizeof (ctf_member_t) * vlen; - for (n = vlen; n != 0; n--, mp++) - child |= CTF_TYPE_ISCHILD(mp->ctm_type); - } else { - ctf_lmember_t *lmp = (ctf_lmember_t *) - ((uintptr_t)tp + increment); - + else vbytes = sizeof (ctf_lmember_t) * vlen; - for (n = vlen; n != 0; n--, lmp++) - child |= - CTF_TYPE_ISCHILD(lmp->ctlm_type); - } break; case CTF_K_ENUM: vbytes = sizeof (ctf_enum_t) * vlen;