Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp689608pxv; Thu, 24 Jun 2021 18:03:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyisIktzRfM75kEj+cqCZBUtyTmNTxXj6A1Kpf8arNHeIVKCCF9AY+skA5YOnMQ863GoLJ1 X-Received: by 2002:a6b:b882:: with SMTP id i124mr6406656iof.80.1624582992393; Thu, 24 Jun 2021 18:03:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624582992; cv=none; d=google.com; s=arc-20160816; b=dkgxnwIj6HjaxskxExVbNCnQp7uoJIsmu/YhpDdFuz0BEx4bjaGK72dEefavGq+3K4 g3kTF1/5tWNPTeYZSDoaWRs9Oyc79+dz5y6pdK+2efe3irAHAWTtyH0uUbCTjjtvgUr1 89PnxFqu/CeClFMBL1QVfmJVumwUswwITo2eIXBto0DU99z8a6Pq5ysgZVheYxF5Oihg bwUo2NmPRHrdm+8wrgbHPTbY/3vTDrAOZ96CaMhCPfJsBTSKfugANlcv6Ij3VvgW9X6h uNk2z/hrR7/pQRnQezJIUkFMjND+y1E/WVasnxGDgsWWsBYYF4qIJHfVYScabpxDjxV6 umUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=QdYef+EeqjZUHJEkYZovIoYwvlil/tVir3JF22p9drE=; b=dMZ6FiOncHD3RP/TQpUnAc5zzAngA+chT2J594kXLUm7R9QVxFu/iw/bkJbIfKGBnk NmMMV15a1UEJy4M9LQYjzM0Wo+BN6GYBL8wda+SpZrMrz77reMwZ6CEyRDVR2Za3iQ2t BMVM3k6SKn2QC1R5vjjcvvQMgr5rqc8qP4DaIuAD1Tay92ARTRoZmSnzliAbajAgmDC4 Nqe8wo0iVYdk6tKs8CXoaIxbBppZ/ADAmB8u1TDN1BXUkdsvYYiNb/DfX8CKcWuouXt8 UVR4AZ6uh4DnB+aO1I0HxT6is0gtDTkpNYh9yX8oZTlGycXzcR12xuP9VYqq9FeXuaVR 2JmQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w2si3864801iop.49.2021.06.24.18.02.59; Thu, 24 Jun 2021 18:03:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linux.microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232906AbhFYBE0 (ORCPT + 99 others); Thu, 24 Jun 2021 21:04:26 -0400 Received: from mail-ej1-f54.google.com ([209.85.218.54]:33398 "EHLO mail-ej1-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229521AbhFYBE0 (ORCPT ); Thu, 24 Jun 2021 21:04:26 -0400 Received: by mail-ej1-f54.google.com with SMTP id bu12so12510708ejb.0; Thu, 24 Jun 2021 18:02:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=QdYef+EeqjZUHJEkYZovIoYwvlil/tVir3JF22p9drE=; b=Y5QbUsB56OQQ+bRYlPkB4j8M0IudXmDgYWb7o1IAYt3TruvQFP//C9vaMSne1KoI9n 8/R1Jofp6xiFHbXZ9VI1mIVJsloC9MJUiHwo8raNjddIShyzcMUQsbIcjIy7o43VLpdo 7soPqS8Siefpblsp7SNmDZS9jFNdEw1CZcCovJxpzCoHMvSwJ5Ruq9+jsG52bSOcgg0N AMIFOHPFu/L9E3en8RVZzEgmiVNzGrr4W+p2FSLNbPq9AxLS5nt84gfsETEw7BiUOCw5 4zZ1ryYxKjQYkzVuSMarccKuZ5VjFCYMXj6oFCd2UscJwhvrPWxp2Mb/dWMNnAM+NzBJ ZODg== X-Gm-Message-State: AOAM530l5eK4ySP9k9utCVedPfCd2cteAqrIBWaKtE5vFoFIULb+oWkq PtBwCGq9hYz7nOw28AI0hkbpeja5FDt+lw== X-Received: by 2002:a17:906:590a:: with SMTP id h10mr7904079ejq.346.1624582924279; Thu, 24 Jun 2021 18:02:04 -0700 (PDT) Received: from msft-t490s.home (host-95-251-17-240.retail.telecomitalia.it. [95.251.17.240]) by smtp.gmail.com with ESMTPSA id yc29sm1921909ejb.106.2021.06.24.18.02.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 18:02:03 -0700 (PDT) From: Matteo Croce To: linux-kernel@vger.kernel.org, Nick Kossifidis , Guo Ren , Christoph Hellwig , David Laight , Palmer Dabbelt , Emil Renner Berthing , Drew Fustini Cc: linux-arch@vger.kernel.org, Andrew Morton , Nick Desaulniers , linux-riscv@lists.infradead.org Subject: [PATCH 0/3] lib/string: optimized mem* functions Date: Fri, 25 Jun 2021 03:01:57 +0200 Message-Id: <20210625010200.362755-1-mcroce@linux.microsoft.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Matteo Croce Rewrite the generic mem{cpy,move,set} so that memory is accessed with the widest size possible, but without doing unaligned accesses. This was originally posted as C string functions for RISC-V[1], but as there was no specific RISC-V code, it was proposed for the generic lib/string.c implementation. Tested on RISC-V and on x86_64 by undefining __HAVE_ARCH_MEM{CPY,SET,MOVE} and HAVE_EFFICIENT_UNALIGNED_ACCESS. Further testing on big endian machines will be appreciated, as I don't have such hardware at the moment. [1] https://lore.kernel.org/linux-riscv/20210617152754.17960-1-mcroce@linux.microsoft.com/ Matteo Croce (3): lib/string: optimized memcpy lib/string: optimized memmove lib/string: optimized memset lib/string.c | 129 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 17 deletions(-) -- 2.31.1