Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp292323ybg; Mon, 1 Jun 2020 01:12:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw7MDV9AqustMp0eVW+xJ5TVye3HeHgSsQuEcqw09u6asb/eDjQuC2IbBBiA/kQu41V7/RY X-Received: by 2002:a17:906:5905:: with SMTP id h5mr2872408ejq.371.1590999148152; Mon, 01 Jun 2020 01:12:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590999148; cv=none; d=google.com; s=arc-20160816; b=uPIrioobtNYuH1RwSt4Ou7imM8MNv5PfOrZXdVTbvf7WaEeqM5ssDlnRdnkCIse0Az JiCX5diuIrTjs9KIBPZKzkiTEOQOWdC0puOIOnIrMt2EBPy+lDtDtUWpVMQOWimFUzso 4dTO91hYPxBpEpOOJ4DCwwSfN5xjZHEQcOA3bvCufbDCBUpWs5bL44RF10qyIH7u7K4a 80TiA4B8CPbG2ADGYVdhQ4TKWOf6WzcSOKMzd0QjpRXE6PUlISA2ABiG+QGXDdzTuJEL yj2AhPraxHrI6dFQyS0F9EU19bnbbAWtuVUF+eKn709uwhD4wXWSyUOW1RXrDRHIaeMJ vKgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=Xo+bURQspdkz3spd+YvrJ3AePpwv+4Rws7nHo6tOrsk=; b=1CTJh8HWwdbBkRF6RHP45gK+F6Jp89uf6orcOtvkKTmiBaZElJVvsJLs0Pt5LXLAw6 fA5/9t3ccCuMBaC5uLW6hOxmlLxDrlF1Steb4F41yukojwXyqptbMAGcLkUgf80hM0Jn vUkoE39cltALClOCwLWTzAuE6a0drpanlkuxnPsc6YgyTX94Sv0mWq9uzACmoA7L5is9 nKM1+0xm2NdipLqMwebc4yTh5HMIKhBjn39B9GCut6qO3bQtFWv4/RL9uTpLRt6I0rz5 mA4UPxY6jHur4p+1YjNpQndYHAVWRRVzSOqlvjwP2/NfcoaVH4PyDNdfx7vM+l2RVCGJ C1kQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sifive.com header.s=google header.b=a09D16ed; 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 k13si10192503edh.53.2020.06.01.01.12.05; Mon, 01 Jun 2020 01:12: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=a09D16ed; 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 S1728147AbgFAIIN (ORCPT + 99 others); Mon, 1 Jun 2020 04:08:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726056AbgFAIIM (ORCPT ); Mon, 1 Jun 2020 04:08:12 -0400 Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0FABCC061A0E for ; Mon, 1 Jun 2020 01:08:11 -0700 (PDT) Received: by mail-qk1-x743.google.com with SMTP id n11so8232801qkn.8 for ; Mon, 01 Jun 2020 01:08:10 -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=Xo+bURQspdkz3spd+YvrJ3AePpwv+4Rws7nHo6tOrsk=; b=a09D16ed7wF4iKs+pfRyt2aLzVU8iQUs5/r3tC7L81+X75srG2/ZiydaWBgiSmAApS nCtivrrnY2V+pCVsPq+WffUnwoioTYb0bMBNTNCkOwNhYmzWNjQHoqeD9WYgTz1o3HCk sjDtLVluLp8ZyMaVtgJ1VuQpH4BS2eu4UUHNyqEaMOnMMwHIHGjjA21z1M4JDD+xhHUr 5Vsd36XufhvZvyYMu3KVi0BbOjgRoe/oqlQGwzprA+tB+tK4AbFQPSrbuc523S367FZG 9R9TY1GNF1NKm9PM1UzqW1yBnUwJmY1bkqDDD78m1JixwaW+eIC5ZdyjokA1wxj83z7I jmAw== 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:content-transfer-encoding; bh=Xo+bURQspdkz3spd+YvrJ3AePpwv+4Rws7nHo6tOrsk=; b=Qcj70K1bTotXwx+/bp3yuZFzL2P+KBcQixMT7w6TS0kTgaPx0jHwrXK8LV9WaQakiR KysmXkCfqzq4ywIwJAdzcmSQfdlaAutPxThTCpcRG5K8G5faIdNKkg+FmAnuSInN9nEt Ury7JOAIsA/QnFQCMlye8FLOZWXKzAUxzl+fwpmo/gfU3jcS5lsWkPicQDCXz1/mILL4 t632uVT8WEQFfZclKNM+tsgkpblbwU6Gl84ZHp+rKwB/a4hihm8CA8rRHryvPHTT4diy mi/CZ4r1Afk76M777MZuGuy94RCxH5QnZdwiBOMCLiWcUmac374OQGoeQFIMIDP8jWKx 91SQ== X-Gm-Message-State: AOAM531h/QTNJ8ZLnBxGE+h3A393OzmXb1AUfyIdW2MNBYZa/uLv9JPz 0Atdpsj/Zgp3LEZFdBf4X2Uawd3O7sGgBve1nbYKkQ== X-Received: by 2002:a05:620a:158d:: with SMTP id d13mr18767834qkk.327.1590998889902; Mon, 01 Jun 2020 01:08:09 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Greentime Hu Date: Mon, 1 Jun 2020 16:07:58 +0800 Message-ID: Subject: Re: [RFC PATCH v4 07/13] riscv: Add has_vector/riscv_vsize to save vector features. To: Guo Ren Cc: Guo Ren , Vincent Chen , Paul Walmsley , Palmer Dabbelt , linux-riscv , Linux Kernel Mailing List , Oleg Nesterov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Guo Ren =E6=96=BC 2020=E5=B9=B45=E6=9C=8831=E6=97=A5 = =E9=80=B1=E6=97=A5 =E4=B8=8A=E5=8D=888:58=E5=AF=AB=E9=81=93=EF=BC=9A > > Reviewed-by: Guo Ren > > On Tue, May 26, 2020 at 3:03 PM Greentime Hu wr= ote: > > > > From: Guo Ren > > > > This patch is used to detect vector support status of CPU and use > > riscv_vsize to save the size of all the vector registers. It assumes > > all harts has the same capabilities in SMP system. > > > > [greentime.hu@sifive.com: add support for dynamic vlen] > > Signed-off-by: Greentime Hu > > Signed-off-by: Guo Ren > > --- > > arch/riscv/kernel/cpufeature.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/arch/riscv/kernel/cpufeature.c b/arch/riscv/kernel/cpufeat= ure.c > > index c8527d770c98..5a68a926da68 100644 > > --- a/arch/riscv/kernel/cpufeature.c > > +++ b/arch/riscv/kernel/cpufeature.c > > @@ -16,6 +16,10 @@ unsigned long elf_hwcap __read_mostly; > > #ifdef CONFIG_FPU > > bool has_fpu __read_mostly; > > #endif > > +#ifdef CONFIG_VECTOR > > +bool has_vector __read_mostly; > > +unsigned long riscv_vsize __read_mostly; > > +#endif > > > > void riscv_fill_hwcap(void) > > { > > @@ -73,4 +77,11 @@ void riscv_fill_hwcap(void) > > if (elf_hwcap & (COMPAT_HWCAP_ISA_F | COMPAT_HWCAP_ISA_D)) > > has_fpu =3D true; > > #endif > > + > > +#ifdef CONFIG_VECTOR > > + if (elf_hwcap & COMPAT_HWCAP_ISA_V) { > > + has_vector =3D true; > > + riscv_vsize =3D csr_read(CSR_VLENB) * 32; > No magic number 32. > eg: > #define VECTOR_REGS_NUM 32 > Hi Guo, Thanks. I'll replace it with a defined macro or adding comments since it is used only once.