From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by sourceware.org (Postfix) with ESMTPS id 5980039960DC for ; Thu, 8 Jul 2021 15:08:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5980039960DC Received: by mail-pg1-x52c.google.com with SMTP id y17so6243499pgf.12 for ; Thu, 08 Jul 2021 08:08:59 -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=cWR0tDrlGVsibxymK82bmlbnDAhu8l/UHqFcJl35oCY=; b=ZbsNcWhlAmHKduIJ4sUPxU92Ye7/0as8kLZUcb/zGIs+bap1Xs0zHRur1beiXt5x/C DhWMP9qXlH/fc4wr6jApWgZsgX0jd7U9Knn4EIzBhZ5SoZ95xY+UlI6L1kGDYysaM8A/ +AzahEQB3TgSSkslJHImBfweihUGqIGfj5r8tpdOax18oMvsAmscp7JQYAqG2+QApVym g7ArnM+hyyLSHEhZ5sWo8eVCLYdBaDDpF1BhNCOChhkruWKBl9qzO+wSgEDkvVbzkUys CqM4XZ6BVYfX6koLjlL8vz+8q3fDytRsdhf0cUUHRaGpLDRToS7VgkPfYnRyTB79/F5h RULQ== X-Gm-Message-State: AOAM533p2hMewq7h55SPuIqnt+jFkjev+QNYxuD2Xfr20XQ/A7co6sdj KSDuK571zt+9nAchdL/3vHh9433nuXzJaF3w8M0= X-Google-Smtp-Source: ABdhPJxaRZnzK3RRFw6GgS+Fvz3TYCnXJI8NQ/p4PuGJtT5Wp5+n6Xhi9hONtJMG/C3Jo3CnX/P1HV/WuM2AbGo1404= X-Received: by 2002:a63:5b02:: with SMTP id p2mr32509048pgb.161.1625756938480; Thu, 08 Jul 2021 08:08:58 -0700 (PDT) MIME-Version: 1.0 References: <20210708081308.640036-1-goldstein.w.n@gmail.com> In-Reply-To: From: "H.J. Lu" Date: Thu, 8 Jul 2021 08:08:22 -0700 Message-ID: Subject: Re: [PATCH v1] x86: Remove wcsnlen-sse4_1 from wcslen ifunc-impl-list [BZ #28064] To: Noah Goldstein Cc: GNU C Library , "Carlos O'Donell" Content-Type: multipart/mixed; boundary="000000000000cf4d8e05c69e08bf" X-Spam-Status: No, score=-3031.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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: 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: Thu, 08 Jul 2021 15:09:02 -0000 --000000000000cf4d8e05c69e08bf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Jul 8, 2021 at 6:57 AM H.J. Lu wrote: > > On Thu, Jul 8, 2021 at 5:21 AM H.J. Lu wrote: > > > > On Thu, Jul 8, 2021 at 1:22 AM Noah Goldstein = wrote: > > > > > > 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 commi= t > > > 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. Please use this patch passing a pointer to do_strlen for x32. > > > $> rm -rf build; mkdir -p build/glibc; (cd build/glibc/; unset LD_LIB= RARY_PATH; /absolute/path/to/src/glibc/configure --prefix=3D/usr; make --si= lent; make xcheck; make -r -C /absolute/path/to/src/glibc/string/ objdir=3D= `pwd` check; make -r -C /absolute/path/to/src/glibc/wcsmbs/ objdir=3D`pwd` = check); > > > > > > > > > > > > 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= _64/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 = libc_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. > > > > -- > H.J. --=20 H.J. --000000000000cf4d8e05c69e08bf 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_kqv17vqk0 RnJvbSAyNjExZjk5MWI5YmVmMDExMTU5NDg0OWU1MGRlMjdlN2EzNTQzZTA5IE1vbiBTZXAgMTcg 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 MDAwLi5hODBjNGY4NWMyCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvdHN0LXJz aS1zdHJsZW4uYwpAQCAtMCwwICsxLDgxIEBACisvKiBUZXN0IHN0cmxlbiB3aXRoIDAgaW4gdGhl IFJTSSByZWdpc3Rlci4KKyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5Lgor CisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworCisjaWZkZWYgV0lERQorIyBkZWZpbmUgVEVTVF9OQU1FICJ3Y3Ns ZW4iCisjZWxzZQorIyBkZWZpbmUgVEVTVF9OQU1FICJzdHJsZW4iCisjZW5kaWYgLyogV0lERSAq LworCisjZGVmaW5lIFRFU1RfTUFJTgorI2luY2x1ZGUgPHN0cmluZy90ZXN0LXN0cmluZy5oPgor CisjaWZkZWYgV0lERQorIyBpbmNsdWRlIDx3Y2hhci5oPgorIyBkZWZpbmUgU1RSTEVOIHdjc2xl bgorIyBkZWZpbmUgQ0hBUiB3Y2hhcl90CisjZWxzZQorIyBkZWZpbmUgU1RSTEVOIHN0cmxlbgor IyBkZWZpbmUgQ0hBUiBjaGFyCisjZW5kaWYgLyogV0lERSAqLworCitJTVBMIChTVFJMRU4sIDEp CisKK3R5cGVkZWYgc2l6ZV90ICgqcHJvdG9fdCkgKGNvbnN0IENIQVIgKik7CisKK3R5cGVkZWYg c3RydWN0Cit7CisgIHZvaWQgKCpmbikgKHZvaWQpOworfSBwYXJhbWV0ZXJfdDsKKworc2l6ZV90 CitfX2F0dHJpYnV0ZV9fICgod2Vhaywgbm9pbmxpbmUsIG5vY2xvbmUpKQorZG9fc3RybGVuIChw YXJhbWV0ZXJfdCAqYSwgaW50IHplcm8sIGNvbnN0IENIQVIgKnN0cikKK3sKKyAgcmV0dXJuIENB TEwgKGEsIHN0cik7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3RfbWFpbiAodm9pZCkKK3sKKyAgdGVz dF9pbml0ICgpOworCisgIHNpemVfdCBzaXplID0gcGFnZV9zaXplIC8gc2l6ZW9mIChDSEFSKSAt IDE7CisgIENIQVIgKmJ1ZiA9IChDSEFSICopIGJ1ZjI7CisgIGJ1ZltzaXplXSA9IDA7CisKKyAg cGFyYW1ldGVyX3QgYTsKKworICBpbnQgcmV0ID0gMDsKKyAgRk9SX0VBQ0hfSU1QTCAoaW1wbCwg MCkKKyAgICB7CisgICAgICBhLmZuID0gaW1wbC0+Zm47CisgICAgICAvKiBOQjogUGFzcyAwIGlu IFJTSS4gICovCisgICAgICBzaXplX3QgcmVzID0gZG9fc3RybGVuICgmYSwgMCwgYnVmKTsKKyAg ICAgIGlmIChyZXMgIT0gc2l6ZSkKKwl7CisJICBlcnJvciAoMCwgMCwgIldyb25nIHJlc3VsdCBp biBmdW5jdGlvbiAlczogJXp1ICE9ICV6dSIsCisJCSBpbXBsLT5uYW1lLCByZXMsIHNpemUpOwor CSAgcmV0ID0gMTsKKwl9CisgICAgfQorCisgIHJldHVybiByZXQgPyBFWElUX0ZBSUxVUkUgOiBF WElUX1NVQ0NFU1M7Cit9CisKKyNpbmNsdWRlIDxzdXBwb3J0L3Rlc3QtZHJpdmVyLmM+CmRpZmYg LS1naXQgYS9zeXNkZXBzL3g4Nl82NC90c3QtcnNpLXdjc2xlbi5jIGIvc3lzZGVwcy94ODZfNjQv dHN0LXJzaS13Y3NsZW4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5m NDVhN2RmYjUxCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy94ODZfNjQvdHN0LXJzaS13Y3Ns ZW4uYwpAQCAtMCwwICsxLDIwIEBACisvKiBUZXN0IHdjc2xlbiB3aXRoIDAgaW4gdGhlIFJTSSBy ZWdpc3Rlci4KKyAgIENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworCisjZGVmaW5lIFdJREUgMQorI2luY2x1ZGUgInRzdC1yc2ktc3RybGVuLmMi Ci0tIAoyLjMxLjEKCg== --000000000000cf4d8e05c69e08bf--