From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 109171 invoked by alias); 10 Jun 2019 21:14:04 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 109163 invoked by uid 89); 10 Jun 2019 21:14:04 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-5.2 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:631, H*r:Client, sk:non-det, sk:nondet X-HELO: mx2.freebsd.org Received: from mx2.freebsd.org (HELO mx2.freebsd.org) (8.8.178.116) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 10 Jun 2019 21:14:02 +0000 Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client CN "mx1.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx2.freebsd.org (Postfix) with ESMTPS id 528897ED74; Mon, 10 Jun 2019 21:14:01 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8BDBA8D6B4; Mon, 10 Jun 2019 21:14:00 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from John-Baldwins-MacBook-Pro-4.local (ralph.baldwin.cx [66.234.199.215]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 15C1C1A8D7; Mon, 10 Jun 2019 21:13:59 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Subject: Re: [PATCH] Fix slow and non-deterministic behavior of isspace() and tolower() To: Shawn Landden , gdb-patches@sourceware.org References: <20190609151704.16061-1-shawn@git.icu> From: John Baldwin Openpgp: preference=signencrypt Message-ID: Date: Mon, 10 Jun 2019 21:14:00 -0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 MIME-Version: 1.0 In-Reply-To: <20190609151704.16061-1-shawn@git.icu> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 8BDBA8D6B4 X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-2.93 / 15.00]; local_wl_from(0.00)[FreeBSD.org]; NEURAL_HAM_MEDIUM(-1.00)[-0.999,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.93)[-0.928,0]; ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US] X-IsSubscribed: yes X-SW-Source: 2019-06/txt/msg00203.txt.bz2 On 6/9/19 8:17 AM, Shawn Landden wrote: > I was getting 8% and 6% cpu usage in tolower() and isspace(), > respectively, waiting for a breakpoint on ppc64el. > > Also, gdb doesn't want non-deterministic behavior here. These routines are not always macros. For example, FreeBSD's ctype.h exposes these as functions for C++ and only as macros for pure C. Perhaps it would be better to define custom functions that don't use the POSIX names to avoid clashing with whatever libc provides if we want something with very specific behavior. -- John Baldwin