From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Status: No, score=-4.2 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (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) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 5D32F1F8C6 for ; Thu, 8 Jul 2021 14:10:25 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B3ABA399C017 for ; Thu, 8 Jul 2021 14:10:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B3ABA399C017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1625753423; bh=mA+sjuNzTq3ftSlIvC40DaGuWeBpH5zHw10V2qLurG4=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=kgWyIu8PJ8nts4H7VKqqF55H+VBiLjdubt8A2IcuwOuqu2VxrZ2327dscFDooSNml 59NyY+o5Xc0vtNUg763466Cm66Hc0Fx7EKvUrAWmw5Yd3J2dh57hfq+ihfvUKetZ+1 sak7CaL7Hx6tHachK/V03aBqZwlrmIW5IB6E6p7c= Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) by sourceware.org (Postfix) with ESMTPS id 4CE64398D05F for ; Thu, 8 Jul 2021 13:57:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4CE64398D05F Received: by mail-pj1-x102c.google.com with SMTP id p17-20020a17090b0111b02901723ab8d11fso3826361pjz.1 for ; Thu, 08 Jul 2021 06:57:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=mA+sjuNzTq3ftSlIvC40DaGuWeBpH5zHw10V2qLurG4=; b=D1f6UKLBlxokvizz/SqnTEv1nAkBDFJCduW3BNIMhvjMXTPqSIPnrf9UAzQsrjrbYV kRlZYnao7hsAOslS4a+afoLBq/TuHMqo92sVu1VchMhEQkfRlqn2ASpYhFd3ZRShv2ip E/CaOfhRlHl9hd02Q83G6Vx2EKF8+Z26ySjZ37oujcTehR34RXeRDJKHIBNFs3k7nIAr P4ctZlGJmuwQ/yvvk3EXCftCrUR6hSjKvBAG96COjSKeFguiqBJFr5dNrgZhjTdxMgar DfxvDwWDFdZwgJnir5IfgW7lBrZL2O4lXaIomkJ6qDs0BJ9+OoiYQjrCPk89/OMeGILr FJ7w== X-Gm-Message-State: AOAM532zYuIgIPf+qJF3qA0viV9vlvzOUtIsUCQE6B8mRVuGjV6JmFpG ev9M2b5PdAAyF9MbnTcspvcSkYF1fv4P7YlORaA= X-Google-Smtp-Source: ABdhPJzI349J3Xbsl4BEJA8rOLHZq7gCQzIPVBT/umdviOr3GCovaRRXp1R+R0ZdfgTtX5GrGNjt3SYfMsKQKu3+zXY= X-Received: by 2002:a17:90a:6be6:: with SMTP id w93mr14005113pjj.154.1625752671452; Thu, 08 Jul 2021 06:57:51 -0700 (PDT) MIME-Version: 1.0 References: <20210708081308.640036-1-goldstein.w.n@gmail.com> In-Reply-To: Date: Thu, 8 Jul 2021 06:57:15 -0700 Message-ID: Subject: Re: [PATCH v1] x86: Remove wcsnlen-sse4_1 from wcslen ifunc-impl-list [BZ #28064] To: Noah Goldstein Content-Type: multipart/mixed; boundary="00000000000079f21005c69d0ae6" 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: , From: "H.J. Lu via Libc-alpha" Reply-To: "H.J. Lu" Cc: GNU C Library Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org Sender: "Libc-alpha" --00000000000079f21005c69d0ae6 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 8, 2021 at 5:21 AM H.J. Lu wrote: > > On Thu, Jul 8, 2021 at 1:22 AM Noah Goldstein w= rote: > > > > The following commit > > > > commit 6f573a27b6c8b4236445810a44660612323f5a73 > > Author: Noah Goldstein > > Date: Wed Jun 23 01:19:34 2021 -0400 > > > > x86-64: Add wcslen optimize for sse4.1 > > > > Added wcsnlen-sse4.1 to the wcslen ifunc implementation list and did > > not add wcslen-sse4.1 to wcslen ifunc implementation list. This commit > > fixes that by removing wcsnlen-sse4.1 from the wcslen ifunc > > implementation list and adding wcslen-sse4.1 to the ifunc > > implementation list. > > > > Testing: > > test-wcslen.c is passing as well as all other tests in wcsmbs and > > string. > > > > Signed-off-by: Noah Goldstein > > --- > > I was unable to actually reproduce the bug on my machine, even after > > reordering ifunc-wcslen.h to prefer the sse4.1 > > implementation. Although this most definetly is a bug. > > > > > > I ran the following command. Is there an issue with the command? Or > > does rdx happen to always have a len >=3D actual length of the string? > > That must be the case. We can do something similar to > > sysdeps/x86_64/x32/tst-size_t-strnlen.c > > to write a testcase. Here is the patch with a testcase. Please include it in your fix and mention BZ #28064 in your commit log. > > $> rm -rf build; mkdir -p build/glibc; (cd build/glibc/; unset LD_LIBRA= RY_PATH; /absolute/path/to/src/glibc/configure --prefix=3D/usr; make --sile= nt; make xcheck; make -r -C /absolute/path/to/src/glibc/string/ objdir=3D`p= wd` check; make -r -C /absolute/path/to/src/glibc/wcsmbs/ objdir=3D`pwd` ch= eck); > > > > > > > > sysdeps/x86_64/multiarch/ifunc-impl-list.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/sysdeps/x86_64/multiarch/ifunc-impl-list.c b/sysdeps/x86_6= 4/multiarch/ifunc-impl-list.c > > index dbd1ebf298..39ab10613b 100644 > > --- a/sysdeps/x86_64/multiarch/ifunc-impl-list.c > > +++ b/sysdeps/x86_64/multiarch/ifunc-impl-list.c > > @@ -684,9 +684,9 @@ __libc_ifunc_impl_list (const char *name, struct li= bc_ifunc_impl *array, > > && CPU_FEATURE_USABLE (AVX512BW) > > && CPU_FEATURE_USABLE (BMI2)), > > __wcslen_evex) > > - IFUNC_IMPL_ADD (array, i, wcsnlen, > > + IFUNC_IMPL_ADD (array, i, wcslen, > > CPU_FEATURE_USABLE (SSE4_1), > > - __wcsnlen_sse4_1) > > + __wcslen_sse4_1) > > IFUNC_IMPL_ADD (array, i, wcslen, 1, __wcslen_sse2)) > > > > /* Support sysdeps/x86_64/multiarch/wcsnlen.c. */ > > -- > > 2.25.1 > > > > LGTM. > > Reviewed-by: H.J. Lu > > -- > H.J. --=20 H.J. --00000000000079f21005c69d0ae6 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-x86-64-Test-strlen-and-wcslen-with-0-in-the-RSI-regi.patch" Content-Disposition: attachment; filename="0001-x86-64-Test-strlen-and-wcslen-with-0-in-the-RSI-regi.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kquz3ed10 RnJvbSBmYTU2OGIzNDRkMmQ0YThjMzEzMGMyZTQ5ZjJmOGRjZWU2MmUyNGRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFRodSwgOCBKdWwgMjAyMSAwNjo1MDozNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIHg4Ni02NDog VGVzdCBzdHJsZW4gYW5kIHdjc2xlbiB3aXRoIDAgaW4gdGhlIFJTSSByZWdpc3RlcgoKY29tbWl0 IDZmNTczYTI3YjZjOGI0MjM2NDQ1ODEwYTQ0NjYwNjEyMzIzZjVhNzMKQXV0aG9yOiBOb2FoIEdv bGRzdGVpbiA8Z29sZHN0ZWluLncubkBnbWFpbC5jb20+CkRhdGU6ICAgV2VkIEp1biAyMyAwMTox OTozNCAyMDIxIC0wNDAwCgogICAgeDg2LTY0OiBBZGQgd2NzbGVuIG9wdGltaXplIGZvciBzc2U0 LjEKCmFkZGVkIHdjc25sZW4tc3NlNC4xIHRvIHRoZSB3Y3NsZW4gaWZ1bmMgaW1wbGVtZW50YXRp b24gbGlzdC4gIFNpbmNlIHRoZQpyYW5kb20gdmFsdWUgaW4gdGhlIHRoZSBSU0kgcmVnaXN0ZXIg aXMgbGFyZ2VyIHRoYW4gdGhlIHdpZGUtY2hhcmFjdGVyCnN0cmluZyBsZW5ndGggaW4gdGhlIGV4 aXN0aW5nIHdjc2xlbiB0ZXN0LCBpdCBkaWRuJ3QgdHJpZ2dlciB0aGUgd2NzbGVuCnRlc3QgZmFp bHVyZS4gIEFkZCBhIHRlc3QgdG8gZm9yY2UgMCBpbnRvIHRoZSBSU0kgcmVnaXN0ZXIgYmVmb3Jl IGNhbGxpbmcKd2NzbGVuLgotLS0KIHN5c2RlcHMveDg2XzY0L01ha2VmaWxlICAgICAgICAgfCAg NyArKysKIHN5c2RlcHMveDg2XzY0L3RzdC1yc2ktc3RybGVuLmMgfCA4MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHN5c2RlcHMveDg2XzY0L3RzdC1yc2ktd2NzbGVuLmMgfCAy MCArKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5c2RlcHMveDg2XzY0L3RzdC1yc2ktc3RybGVuLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzeXNkZXBzL3g4Nl82NC90c3QtcnNpLXdjc2xlbi5jCgpkaWZmIC0tZ2l0IGEvc3lzZGVw cy94ODZfNjQvTWFrZWZpbGUgYi9zeXNkZXBzL3g4Nl82NC9NYWtlZmlsZQppbmRleCAwNmE0NDRi NmFmLi4zZmMwM2Y0YTE5IDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Nl82NC9NYWtlZmlsZQorKysg Yi9zeXNkZXBzL3g4Nl82NC9NYWtlZmlsZQpAQCAtMjAsNiArMjAsOCBAQCBlbmRpZgogaWZlcSAo JChzdWJkaXIpLHN0cmluZykKIHN5c2RlcF9yb3V0aW5lcyArPSBzdHJjYXNlY21wX2wtbm9uYXNj aWkgc3RybmNhc2VfbC1ub25hc2NpaQogZ2VuLWFzLWNvbnN0LWhlYWRlcnMgKz0gbG9jYWxlLWRl ZmluZXMuc3ltCit0ZXN0cyArPSBcCisgIHRzdC1yc2ktc3RybGVuCiBlbmRpZgogCiBpZmVxICgk KHN1YmRpciksZWxmKQpAQCAtMTkxLDYgKzE5MywxMSBAQCBpZmVxICgkKHN1YmRpciksY3N1KQog Z2VuLWFzLWNvbnN0LWhlYWRlcnMgKz0gdGxzZGVzYy5zeW0gcnRsZC1vZmZzZXRzLnN5bQogZW5k aWYKIAoraWZlcSAoJChzdWJkaXIpLHdjc21icykKK3Rlc3RzICs9IFwKKyAgdHN0LXJzaS13Y3Ns ZW4KK2VuZGlmCisKICQob2JqcGZ4KXg4Nl82NC90c3QteDg2XzY0bW9kLTEub3M6ICQob2JqcGZ4 KXRzdC14ODZfNjRtb2QtMS5vcwogCSQobWFrZS10YXJnZXQtZGlyZWN0b3J5KQogCXJtIC1mICRA CmRpZmYgLS1naXQgYS9zeXNkZXBzL3g4Nl82NC90c3QtcnNpLXN0cmxlbi5jIGIvc3lzZGVwcy94 ODZfNjQvdHN0LXJzaS1zdHJsZW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi4wZDNjYzQzMWE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvdHN0LXJz aS1zdHJsZW4uYwpAQCAtMCwwICsxLDgxIEBACisvKiBUZXN0IHN0cmxlbiB3aXRoIDAgaW4gdGhl IFJTSSByZWdpc3Rlci4KKyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5Lgor CisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworCisjaWZkZWYgV0lERQorIyBkZWZpbmUgVEVTVF9OQU1FICJ3Y3Ns ZW4iCisjZWxzZQorIyBkZWZpbmUgVEVTVF9OQU1FICJzdHJsZW4iCisjZW5kaWYgLyogV0lERSAq LworCisjZGVmaW5lIFRFU1RfTUFJTgorI2luY2x1ZGUgPHN0cmluZy90ZXN0LXN0cmluZy5oPgor CisjaWZkZWYgV0lERQorIyBpbmNsdWRlIDx3Y2hhci5oPgorIyBkZWZpbmUgU1RSTEVOIHdjc2xl bgorIyBkZWZpbmUgQ0hBUiB3Y2hhcl90CisjZWxzZQorIyBkZWZpbmUgU1RSTEVOIHN0cmxlbgor IyBkZWZpbmUgQ0hBUiBjaGFyCisjZW5kaWYgLyogV0lERSAqLworCitJTVBMIChTVFJMRU4sIDEp CisKK3R5cGVkZWYgc2l6ZV90ICgqcHJvdG9fdCkgKGNvbnN0IENIQVIgKik7CisKK3R5cGVkZWYg c3RydWN0Cit7CisgIHZvaWQgKCpmbikgKHZvaWQpOworfSBwYXJhbWV0ZXJfdDsKKworc2l6ZV90 CitfX2F0dHJpYnV0ZV9fICgod2Vhaywgbm9pbmxpbmUsIG5vY2xvbmUpKQorZG9fc3RybGVuIChw YXJhbWV0ZXJfdCBhLCBpbnQgemVybywgY29uc3QgQ0hBUiAqc3RyKQoreworICByZXR1cm4gQ0FM TCAoJmEsIHN0cik7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfbWFpbiAodm9pZCkKK3sKKyAgdGVz dF9pbml0ICgpOworCisgIHNpemVfdCBzaXplID0gcGFnZV9zaXplIC8gc2l6ZW9mIChDSEFSKSAt IDE7CisgIENIQVIgKmJ1ZiA9IChDSEFSICopIGJ1ZjI7CisgIGJ1ZltzaXplXSA9IDA7CisKKyAg cGFyYW1ldGVyX3QgYTsKKworICBpbnQgcmV0ID0gMDsKKyAgRk9SX0VBQ0hfSU1QTCAoaW1wbCwg MCkKKyAgICB7CisgICAgICBhLmZuID0gaW1wbC0+Zm47CisgICAgICAvKiBOQjogUGFzcyAwIGlu IFJTSS4gICovCisgICAgICBzaXplX3QgcmVzID0gZG9fc3RybGVuIChhLCAwLCBidWYpOworICAg ICAgaWYgKHJlcyAhPSBzaXplKQorCXsKKwkgIGVycm9yICgwLCAwLCAiV3JvbmcgcmVzdWx0IGlu IGZ1bmN0aW9uICVzOiAlenUgIT0gJXp1IiwKKwkJIGltcGwtPm5hbWUsIHJlcywgc2l6ZSk7CisJ ICByZXQgPSAxOworCX0KKyAgICB9CisKKyAgcmV0dXJuIHJldCA/IEVYSVRfRkFJTFVSRSA6IEVY SVRfU1VDQ0VTUzsKK30KKworI2luY2x1ZGUgPHN1cHBvcnQvdGVzdC1kcml2ZXIuYz4KZGlmZiAt LWdpdCBhL3N5c2RlcHMveDg2XzY0L3RzdC1yc2ktd2NzbGVuLmMgYi9zeXNkZXBzL3g4Nl82NC90 c3QtcnNpLXdjc2xlbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmY0 NWE3ZGZiNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3g4Nl82NC90c3QtcnNpLXdjc2xl bi5jCkBAIC0wLDAgKzEsMjAgQEAKKy8qIFRlc3Qgd2NzbGVuIHdpdGggMCBpbiB0aGUgUlNJIHJl Z2lzdGVyLgorICAgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBH TlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4gICovCisKKyNkZWZpbmUgV0lERSAxCisjaW5jbHVkZSAidHN0LXJzaS1zdHJsZW4uYyIK LS0gCjIuMzEuMQoK --00000000000079f21005c69d0ae6--