Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp715171pxj; Thu, 17 Jun 2021 12:04:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzFEa5AJeX3djbxrnUvap8EK0+JeBzmdaGPFnOu2f5IjygXlmHVlHj9yx29VRCDD+zWp+hC X-Received: by 2002:a6b:7714:: with SMTP id n20mr4906329iom.126.1623956686454; Thu, 17 Jun 2021 12:04:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623956686; cv=none; d=google.com; s=arc-20160816; b=Q9JdqEehrGAGjM84j5JwdDj31UObWuDRwrx4Zg8nMAoc6wTme2beuhuHO/tm9LJOZq uyssgEc5zCmLqpGJ//WjWSAfyBzu2MSwhxn2xwZE9khPvhEgo7hRw12HsZ6W6KOmlGQg Ozbcc1GfkPoQAtwSTpZb8jm96NkAv4LxMQv686gLret9s/8K9md//Xf8vYsS6LZPyfd/ WphU3Izpd1y/89+keN1ymVyjPQ6E4hP9WfdgWaq0c9OnJ/ErfkUA2nDgZThnmInDAEUD 1FACGoX7PZ1bnCIVIyW7f/aXRmROn0Cg/ybxnHJp6luKQXS8BB8+0tb/5UPx4ix0Q2gT 3j3w== 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=/itsTxOH83bOMIRckT66tyt/S9hpeX8jx9OaBl4TWV0=; b=xUu54hQWZrPtRtzloM3FoHU9OQ/U7HqJEbT5FgUCWRUzzwWrWbbx9Fo7X0C7BFrFIV jTfMbZaUvgDccuXvWBBCjcW26/z1je0SR6iQCAxwg07wMhT7buu96TALDChwnzBAaIDl M7CeZZSB6gTzv5IfIfsnmL7QUfUnG01yVA6h2oZlcsF8s2CQY6SVeWNu4eF7B0vvMppX ZCsGjmu2NnCg2xGt8mGi6k+qCOOksr5A1HInLUWf5ci0CG6u3/2ieYi75D5krWa97Q81 ZzGKFkn9hinrCv9fS+KUtKdurDnRJVPtsmYAymVo4sfCcTNTuIAz33p0V8A2lDTyC9Qs jLoQ== 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 a22si6857030jar.119.2021.06.17.12.04.03; Thu, 17 Jun 2021 12:04:46 -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 S233258AbhFQPaN (ORCPT + 99 others); Thu, 17 Jun 2021 11:30:13 -0400 Received: from mail-ed1-f52.google.com ([209.85.208.52]:37548 "EHLO mail-ed1-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233242AbhFQPaJ (ORCPT ); Thu, 17 Jun 2021 11:30:09 -0400 Received: by mail-ed1-f52.google.com with SMTP id b11so4593420edy.4; Thu, 17 Jun 2021 08:27:58 -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=/itsTxOH83bOMIRckT66tyt/S9hpeX8jx9OaBl4TWV0=; b=N+iMDiHD7MhP2cIP0oTuCsTqx3ZMDJMAIr9B926LL5+TjwBZPDgZ397UwZujgQEB94 JGPF9b8htOAvTgfmFDTeVYVNLXI6svACKn5KzxuDRzjR0Gv8+eyEg97KEU9OYMQiFesh +UOOx83vI3n5bNyLGu3Paj/muCxhWkfIcAZN9Eg5Unris1QxTUjeKby5JXewbmyusyWz kUK/SwOkrrJB4Z+Q+CEG8SyMR7/dqVUAnkKIvdoeg8aPnMWJNZbf/bRrgqPFr5ZkyIN+ HQvW4qGAZE1lNCdMU1orCvx4XoaUFQ0yZS4tWFgyAaSDJqLl3nsJTZljOenju5tWy6OX iT6w== X-Gm-Message-State: AOAM5321tnnw3jpqAt2UkB+AbKYwLknPM2pSJO7zus2Vim9vtSf8HNJH QwAl2so+L4Cg2DqPRD4Ltpc= X-Received: by 2002:a05:6402:1216:: with SMTP id c22mr7314917edw.36.1623943677554; Thu, 17 Jun 2021 08:27:57 -0700 (PDT) Received: from msft-t490s.teknoraver.net (net-37-119-128-179.cust.vodafonedsl.it. [37.119.128.179]) by smtp.gmail.com with ESMTPSA id g11sm4497850edz.12.2021.06.17.08.27.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 17 Jun 2021 08:27:56 -0700 (PDT) From: Matteo Croce To: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, Paul Walmsley , Palmer Dabbelt , Albert Ou , Atish Patra , Emil Renner Berthing , Akira Tsukamoto , Drew Fustini , Bin Meng , David Laight , Guo Ren Subject: [PATCH v3 0/3] riscv: optimized mem* functions Date: Thu, 17 Jun 2021 17:27:51 +0200 Message-Id: <20210617152754.17960-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 Replace the assembly mem{cpy,move,set} with C equivalent. Try to access RAM with the largest bit width possible, but without doing unaligned accesses. Tested on a BeagleV Starlight with a SiFive U74 core, where the improvement is noticeable. v2 -> v3: - alias mem* to __mem* and not viceversa - use __alias instead of a tail call v1 -> v2: - reduce the threshold from 64 to 16 bytes - fix KASAN build - optimize memset Matteo Croce (3): riscv: optimized memcpy riscv: optimized memmove riscv: optimized memset arch/riscv/include/asm/string.h | 18 ++-- arch/riscv/kernel/Makefile | 1 - arch/riscv/kernel/riscv_ksyms.c | 17 ---- arch/riscv/lib/Makefile | 4 +- arch/riscv/lib/memcpy.S | 108 ---------------------- arch/riscv/lib/memmove.S | 64 ------------- arch/riscv/lib/memset.S | 113 ----------------------- arch/riscv/lib/string.c | 153 ++++++++++++++++++++++++++++++++ 8 files changed, 163 insertions(+), 315 deletions(-) delete mode 100644 arch/riscv/kernel/riscv_ksyms.c delete mode 100644 arch/riscv/lib/memcpy.S delete mode 100644 arch/riscv/lib/memmove.S delete mode 100644 arch/riscv/lib/memset.S create mode 100644 arch/riscv/lib/string.c -- 2.31.1