From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D5C2C433F5 for ; Sat, 28 May 2022 08:14:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231320AbiE1IN5 (ORCPT ); Sat, 28 May 2022 04:13:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231189AbiE1IN5 (ORCPT ); Sat, 28 May 2022 04:13:57 -0400 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FF63298; Sat, 28 May 2022 01:13:56 -0700 (PDT) Received: by mail-pj1-x102b.google.com with SMTP id c10-20020a17090a4d0a00b001e283823a00so2838840pjg.0; Sat, 28 May 2022 01:13:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=m0Jp11ciNAmXB/3Pf8JdDNa95fWKHhwkSmYD7UsUFGA=; b=PSY5MRuM+7vQLSUanhYSON0qmE76h2jQpxL5Waq+Jr0uf9JrdvzdhDzbwkeKpGpC2u v9PGcKg9O6bm+vBOd910pX+NISgKSnJyyh8spAztkp5whbey7LgRU9QsS/qYS0HjAb9b +DlPCyyM9HEwNosEpG+nKwTEG5dQ0j394k7WRYcK5+Mi6np5dX6Dd3vnVyDQPd4JygAl HM2zsNlrZD3eEljk1PAZn2C1r4IlnnC2vXL8YBVYj09rHQ8c1uzz9/Pr7SctzdhSuYLH qJ2Rh2qmOM5nuE4ZyzGQ9b6PSWKzaw8Ff6Yx9N20RVaku0FHEgueyRz+OLc7bmOxIe9/ xvpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=m0Jp11ciNAmXB/3Pf8JdDNa95fWKHhwkSmYD7UsUFGA=; b=4isribNPRDDfQL/PBkIO5SwvYeDrjpj4p3aMSYro6gLU+EGmIfA3L3dLU7t7eD9Lxd ppBRRGDD2Kb/FXzWFL9mXcHh/XSTZxC2rGM6E+fDdaPJP37+DdbHAkBtTbwGc8/LM7nE G8oEjI/9LBkUbC94LdECAywKoUdtMWO54KMscT2jZCpXKTlLWmQKYuwmGSRdy+AWR+s9 QRUdPIohJuqXk4lUH2aR/vRxrZo5Zy8uJANBPW72mkoyIMP0tFVdsm4LCsuGyA3GDfwd eZd1ghRurmxc/bGOLdfqT1vUm7vgmwavpTRLThmcVINr4BW6jDkTH/Sf9pcziUIBv54Z HNkQ== X-Gm-Message-State: AOAM533ck+sujQkIUz7hp0ICvD33ohGcys7j0eNi6wu3fWEjjwDkhqMa 1d/+Fe8MphdS8lvO6xZWuMZeHgQ6Re5jxA== X-Google-Smtp-Source: ABdhPJzm/AsyK5OPD28rOo/JvvE3CR9OQjk+3MUpDgpx8XJ+vE9sC708IaPeQr8+tsoxLb6x5zKWqA== X-Received: by 2002:a17:903:32d2:b0:161:d485:613f with SMTP id i18-20020a17090332d200b00161d485613fmr46749255plr.173.1653725635716; Sat, 28 May 2022 01:13:55 -0700 (PDT) Received: from localhost.localdomain ([140.116.104.153]) by smtp.gmail.com with ESMTPSA id i12-20020a17090ad34c00b001e0c5da6a51sm2774347pjx.50.2022.05.28.01.13.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 May 2022 01:13:55 -0700 (PDT) From: Yu-Jen Chang To: ak@linux.intel.com, jdike@linux.intel.com Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, keescook@chromium.org, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, linux-um@lists.infradead.org, jserv@ccns.ncku.edu.tw, Yu-Jen Chang Subject: [PATCH 0/2] x86: Optimize memchr() for x86-64 Date: Sat, 28 May 2022 16:12:34 +0800 Message-Id: <20220528081236.3020-1-arthurchang09@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-hardening@vger.kernel.org *** BLURB HERE *** These patch series add an optimized "memchr()" for x86-64 and USER-MODE LINUX (UML). There exists an assemebly implementation for x86-32. However, for x86-64, there isn't any optimized version. We implement word-wise comparison so that 8 characters can be compared at the same time on x86-64 CPU. The optimized “memchr()” is nearly 4x faster than the orginal implementation for long strings. We test the optimized “memchr()” in UML and also recompile the 5.18 Kernel with the optimized “memchr()”. They run correctly. In this patch we add a new file "string_64.c", which only contains "memchr()". We can add more optimized string functions in it in the future. Yu-Jen Chang (2): x86/lib: Optimize memchr() x86/um: Use x86_64-optimized memchr arch/x86/include/asm/string_64.h | 3 ++ arch/x86/lib/Makefile | 1 + arch/x86/lib/string_64.c | 78 ++++++++++++++++++++++++++++++++ arch/x86/um/Makefile | 2 +- 4 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 arch/x86/lib/string_64.c -- 2.25.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nuraF-001jDr-42 for linux-um@lists.infradead.org; Sat, 28 May 2022 08:14:04 +0000 Received: by mail-pj1-x1031.google.com with SMTP id m14-20020a17090a414e00b001df77d29587so9006344pjg.2 for ; Sat, 28 May 2022 01:13:56 -0700 (PDT) From: Yu-Jen Chang Subject: [PATCH 0/2] x86: Optimize memchr() for x86-64 Date: Sat, 28 May 2022 16:12:34 +0800 Message-Id: <20220528081236.3020-1-arthurchang09@gmail.com> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-um" Errors-To: linux-um-bounces+geert=linux-m68k.org@lists.infradead.org To: ak@linux.intel.com, jdike@linux.intel.com Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, keescook@chromium.org, linux-kernel@vger.kernel.org, linux-hardening@vger.kernel.org, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, linux-um@lists.infradead.org, jserv@ccns.ncku.edu.tw, Yu-Jen Chang KioqIEJMVVJCIEhFUkUgKioqClRoZXNlIHBhdGNoIHNlcmllcyBhZGQgYW4gb3B0aW1pemVkICJt ZW1jaHIoKSIgZm9yIHg4Ni02NCBhbmQgClVTRVItTU9ERSBMSU5VWCAoVU1MKS4KIApUaGVyZSBl eGlzdHMgYW4gYXNzZW1lYmx5IGltcGxlbWVudGF0aW9uIGZvciB4ODYtMzIuIEhvd2V2ZXIsIApm b3IgeDg2LTY0LCB0aGVyZSBpc24ndCBhbnkgb3B0aW1pemVkIHZlcnNpb24uIFdlIGltcGxlbWVu dCB3b3JkLXdpc2UgCmNvbXBhcmlzb24gc28gdGhhdCA4IGNoYXJhY3RlcnMgY2FuIGJlIGNvbXBh cmVkIGF0IHRoZSBzYW1lIHRpbWUgb24gCng4Ni02NCBDUFUuIFRoZSBvcHRpbWl6ZWQg4oCcbWVt Y2hyKCnigJ0gaXMgbmVhcmx5IDR4IGZhc3RlciB0aGFuIHRoZSAKb3JnaW5hbCBpbXBsZW1lbnRh dGlvbiBmb3IgbG9uZyBzdHJpbmdzLgoKV2UgdGVzdCB0aGUgb3B0aW1pemVkIOKAnG1lbWNocigp 4oCdIGluIFVNTCBhbmQgYWxzbyByZWNvbXBpbGUgdGhlIDUuMTggCktlcm5lbCB3aXRoIHRoZSBv cHRpbWl6ZWQg4oCcbWVtY2hyKCnigJ0uIFRoZXkgcnVuIGNvcnJlY3RseS4KCkluIHRoaXMgcGF0 Y2ggd2UgYWRkIGEgbmV3IGZpbGUgInN0cmluZ182NC5jIiwgd2hpY2ggb25seSBjb250YWlucyAK Im1lbWNocigpIi4gV2UgY2FuIGFkZCBtb3JlIG9wdGltaXplZCBzdHJpbmcgZnVuY3Rpb25zIGlu IGl0IGluIHRoZSAKZnV0dXJlLgoKWXUtSmVuIENoYW5nICgyKToKICB4ODYvbGliOiBPcHRpbWl6 ZSBtZW1jaHIoKQogIHg4Ni91bTogVXNlIHg4Nl82NC1vcHRpbWl6ZWQgbWVtY2hyCgogYXJjaC94 ODYvaW5jbHVkZS9hc20vc3RyaW5nXzY0LmggfCAgMyArKwogYXJjaC94ODYvbGliL01ha2VmaWxl ICAgICAgICAgICAgfCAgMSArCiBhcmNoL3g4Ni9saWIvc3RyaW5nXzY0LmMgICAgICAgICB8IDc4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBhcmNoL3g4Ni91bS9NYWtlZmlsZSAg ICAgICAgICAgICB8ICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL3g4Ni9saWIvc3RyaW5nXzY0LmMK Ci0tIAoyLjI1LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC11bSBtYWlsaW5nIGxpc3QKbGludXgtdW1AbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXVtCg==