From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by sourceware.org (Postfix) with ESMTP id 839603857800 for ; Tue, 8 Dec 2020 15:16:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 839603857800 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-222-NVjt2T50MUWF0m3GM_73gQ-1; Tue, 08 Dec 2020 10:15:59 -0500 X-MC-Unique: NVjt2T50MUWF0m3GM_73gQ-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 9AAD71015EA2; Tue, 8 Dec 2020 15:15:58 +0000 (UTC) Received: from oldenburg2.str.redhat.com (ovpn-112-171.ams2.redhat.com [10.36.112.171]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E490E60BE2; Tue, 8 Dec 2020 15:15:57 +0000 (UTC) From: Florian Weimer To: "H.J. Lu" Cc: "H.J. Lu via Libc-alpha" Subject: Re: V5 [PATCH 2/2] ldconfig/x86: Add ISA level check to glibc-hwcaps References: <20201206144952.2109594-1-hjl.tools@gmail.com> <20201206144952.2109594-3-hjl.tools@gmail.com> <87sg8ikkal.fsf@oldenburg2.str.redhat.com> <871rg0e85j.fsf@oldenburg2.str.redhat.com> <87wnxscreu.fsf@oldenburg2.str.redhat.com> Date: Tue, 08 Dec 2020 16:15:56 +0100 In-Reply-To: (H. J. Lu's message of "Tue, 8 Dec 2020 06:23:21 -0800") Message-ID: <87mtyocor7.fsf@oldenburg2.str.redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Dec 2020 15:16:02 -0000 * H. J. Lu: >> > For each file entry for a shared object, the hwcap field has been used by >> > DL_CACHE_HWCAP_EXTENSION for glibc-hwcaps. Are you suggesting >> > to add another file entry for the same shared object to store ISA level >> > requirement? >> >> It's a 64-bit field. We do this: >> >> /* This bit in the hwcap field of struct file_entry_new indicates that >> the lower 32 bits contain an index into the >> cache_extension_tag_glibc_hwcaps section. Older glibc versions do >> not know about this HWCAP bit, so they will ignore these >> entries. */ >> #define DL_CACHE_HWCAP_EXTENSION (1ULL << 62) >> >> /* Return true if the ENTRY->hwcap value indicates that >> DL_CACHE_HWCAP_EXTENSION is used. */ >> static inline bool >> dl_cache_hwcap_extension (struct file_entry_new *entry) >> { >> /* If DL_CACHE_HWCAP_EXTENSION is set, but other bits as well, this >> is a different kind of extension. */ >> return (entry->hwcap >> 32) == (DL_CACHE_HWCAP_EXTENSION >> 32); >> } >> >> So we can use a different bit pattern involving DL_CACHE_HWCAP_EXTENSION >> to express something else. In particular, only the lower 32 bits are >> currently used as an index. > > So bits 33-47 can be used for ISA level requirement. This should support > 65536 ISA levels. The question is whether the ISA levels and the glibc-hwcaps name are used in parallel. If not, we can use (1ULL << 62) | (1ULL << 32) as the marker bits and a 32-bit index in the lower half. (I do not think this is necessarily relevant for levels, but it could be used for locating objects according to other criteria.) Thanks, Florian -- Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243, Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill