Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp3967277pxb; Mon, 4 Oct 2021 13:57:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJymt6r4Mh+F5Nm/6lNYtLzF8DNnC41kSUKKcJk28qsrXdCErXGafc4qOMqyP0NTQSEZqekJ X-Received: by 2002:a50:d80d:: with SMTP id o13mr21147986edj.204.1633381048951; Mon, 04 Oct 2021 13:57:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633381048; cv=none; d=google.com; s=arc-20160816; b=HOaG8/mc5056w4v+0v3pbZoNngZoa2MflrVzrdWgRx5xPEt2tGviAsgfte+6lpACtu 8uCO4a3aCzw9cmS8iPX80UILkkSJIu91vVreIWfva1c1UKyko5uyku3zJ+qRzDLs9Rej C3uFZVuy4yUy+TcssWxMhBrPFG5BXC8jQMgn+oVLOpG1aslz1slNBtZ6QDJEHq7clW+Z sMCbT+Ukv4bGHSKlyX53Yt5NrYNQvaf/K+OzeNcsm5UbaE0mvQ+K/80Bhc1Ey4C4iIC5 mulnea28+KT+F9QR3GE35jvZTPmtRm9+uXu12wJMRqKFcriLU6LHOVJ7kF2dQJfw+0vP h3pg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=L+EigblI9CZVllHodJ0Te18frEx7k8TQPFGdDTx1ZMk=; b=hUb0cgoRxLP+wiM4OuE1tPDF36Jk6fKxBi2+y8OlW7ApC91Dll9hxk3dgQ2ujD+rRO yYHMEtBfNGAXX/nOmtEgjdcmAwvYHaJiRIW0QGmppsoAfODI27UHZjEO6N+/PYR+3sZy vvtVgx7alRkEDGyuYz8zKDqyeVhhLdl6uNdsr0XgsXDACVbGe7pFl+6QBHUUsVo8N4RH wHcIw4939Q1s/QB58D1KDQmIn2b/fMQNr/a1R7IVWRwMAg/DPIT0+safI7MLTTWzyaOE vFMyjaWc5CDckvUX+iBHdcnTgCk2JYYicCNWagLzystlkKQHid3m7+iSX31/0VjtoMp1 X1Bw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=dN3sI9wi; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 1si16950195ejb.87.2021.10.04.13.57.04; Mon, 04 Oct 2021 13:57:28 -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; dkim=pass header.i=@sifive.com header.s=google header.b=dN3sI9wi; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233462AbhJDOPG (ORCPT + 99 others); Mon, 4 Oct 2021 10:15:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233350AbhJDOPG (ORCPT ); Mon, 4 Oct 2021 10:15:06 -0400 Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com [IPv6:2607:f8b0:4864:20::f35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C11AC061745 for ; Mon, 4 Oct 2021 07:13:17 -0700 (PDT) Received: by mail-qv1-xf35.google.com with SMTP id d20so2980822qvm.8 for ; Mon, 04 Oct 2021 07:13:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=L+EigblI9CZVllHodJ0Te18frEx7k8TQPFGdDTx1ZMk=; b=dN3sI9wi6JeJJtKSMg2tECQmmTe3Sz9G57jImMDlA//qjnJDmEWmjM4yvPAz22exhC 8hXE0FfZ0Ye0LHI7bX/uNX3+XsxFVmlogAET4kXGSrlqib9i98ig6M2+sYvXwq/LTn6Q B4LCiUqe+ZP71TbQXmPACKX8zFnNi36Y0WTtPYN7YiJ61s9cL6DGTLdePmMX67AzB2FI jLWXMWoBQKIBHfbdEBts+YA0a2ObWBadYVIT1wefcvp3x5z0GW5XIlplsAM7VhfSfmUq h3mByEmhvZBNDffghr/ey2T8KJ1OHkqUG++aAOA02a+2cOyR3KW0vKShj6TssNAAS/2A deEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=L+EigblI9CZVllHodJ0Te18frEx7k8TQPFGdDTx1ZMk=; b=F9121LE0COfPE/nJZ47xgE8KtmrEBUxMHA4F9U9afVcEVUYdZaQQaxPfizs2Hhh3AN sGMxQrZTWzapANDOMBidt22k7W3DzDffFPrjrZaMz5bXcTHM6qUj4oBERiFUI6yf6fkG d0bsZZktM1v9kfb0FL00cn7qSk5Z6peIFeuiloVa1c6oV2+Mt++RfChtq2tYvzO8jrRm hPzu2RxtT8CjLodXE40FCrGEAJaaOE2cJ2KgZQ8ZFgNph10KeZTueaO402jq1Yw6tf3g 4kfFuUUAdROOY5GhW687tPR53zpX+6SKLY0Dp7G+LT/ENaxorbng12/IKpQ0QrhGlRq1 1lsw== X-Gm-Message-State: AOAM530HRMX67qvt7WYGScxh3C0Sq4Icrqghqb/JgPEl5UItbI1DH35v pAQYP1Jj11/Wz6O86IYIUewy9giPQqoSoyppXfVlIw== X-Received: by 2002:a0c:b3c9:: with SMTP id b9mr23582577qvf.40.1633356796361; Mon, 04 Oct 2021 07:13:16 -0700 (PDT) MIME-Version: 1.0 References: <3b2d4ff556d310ed73a6910b89566a195fc28861.1631121222.git.greentime.hu@sifive.com> <20210915222937.49066323@xhacker> In-Reply-To: <20210915222937.49066323@xhacker> From: Greentime Hu Date: Mon, 4 Oct 2021 22:13:05 +0800 Message-ID: Subject: Re: [RFC PATCH v8 20/21] riscv: Optimize task switch codes of vector To: Jisheng Zhang Cc: linux-riscv , Linux Kernel Mailing List , Albert Ou , Palmer Dabbelt , Paul Walmsley , Vincent Chen Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jisheng Zhang =E6=96=BC 2021=E5=B9=B49=E6=9C=88= 15=E6=97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8B=E5=8D=8810:36=E5=AF=AB=E9=81=93=EF= =BC=9A > > On Thu, 9 Sep 2021 01:45:32 +0800 > Greentime Hu wrote: > > > This patch replacees 2 instructions with 1 instruction to do the same t= hing > > . rs1=3Dx0 with rd !=3D x0 is a special form of the instruction that se= ts vl to > > MAXVL. > > Similarly, the vector.S is newly introduced in this patch set, so could > this optimization be folded into the __vstate_save and __vstate_restore > introduction patch? Or it's better to keep this optimizaion in commit log= ? > Yeah, I wanted to keep the optimization commit log before, but it's ok if you think merge code is easier to read. I'll merge this patch in the next version. > > > > Suggested-by: Andrew Waterman > > Co-developed-by: Vincent Chen > > Signed-off-by: Vincent Chen > > Signed-off-by: Greentime Hu > > --- > > arch/riscv/kernel/vector.S | 9 +++------ > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > > diff --git a/arch/riscv/kernel/vector.S b/arch/riscv/kernel/vector.S > > index 4f0c5a166e4e..f7223c81b11a 100644 > > --- a/arch/riscv/kernel/vector.S > > +++ b/arch/riscv/kernel/vector.S > > @@ -27,8 +27,7 @@ > > #define x_vl t2 > > #define x_vcsr t3 > > #define incr t4 > > -#define m_one t5 > > -#define status t6 > > +#define status t5 > > > > ENTRY(__vstate_save) > > li status, SR_VS > > @@ -38,8 +37,7 @@ ENTRY(__vstate_save) > > csrr x_vtype, CSR_VTYPE > > csrr x_vl, CSR_VL > > csrr x_vcsr, CSR_VCSR > > - li m_one, -1 > > - vsetvli incr, m_one, e8, m8 > > + vsetvli incr, x0, e8, m8 > > vse8.v v0, (datap) > > add datap, datap, incr > > vse8.v v8, (datap) > > @@ -61,8 +59,7 @@ ENTRY(__vstate_restore) > > li status, SR_VS > > csrs CSR_STATUS, status > > > > - li m_one, -1 > > - vsetvli incr, m_one, e8, m8 > > + vsetvli incr, x0, e8, m8 > > vle8.v v0, (datap) > > add datap, datap, incr > > vle8.v v8, (datap) > >