Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3366225imw; Wed, 6 Jul 2022 23:59:00 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tjWXN6cnALjqcxdZjdAN/Y/q1id8uD0NhoHIPN1mKPgnSwwqzLGy0XuXVP4JXNlsf6F2J3 X-Received: by 2002:a17:90a:f686:b0:1ef:831d:fd48 with SMTP id cl6-20020a17090af68600b001ef831dfd48mr3362709pjb.183.1657177139864; Wed, 06 Jul 2022 23:58:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657177139; cv=none; d=google.com; s=arc-20160816; b=GeRNqYfv0JJ9rTZtmCtVFhAed/+EQsd+vOhdtNpef+JTGMGABfXOJhlYRZ30gGkS// GCaaHNuR61Ckc5pbpRuhKhJu+znHRKeM/BQ+Rbbil/f+6Q/39VWS3wZQgO1gC2cEPyDm aDcPufgZfchw3VioVTKQENlQSbwwEb2Bg5Wfdoikhx4ltiaaH/BH76FlxEQm8hO+YRrj ymPfzxb3xe2n6Z8Ad65PLYGOjPj+OE+TOKm4j9JeqLAxN3PNNb07ez6vzQLqiUQLJd/U vXD4cWfUaG8Gs6QrFj5tqkQMu+6YiZ60IJkCNiRg/me3UhUlFxCTCKkgTyGhyRmjajjT nEMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=KJOexvCCFWdWYe/1n/qVyou7DJIP/ydprQidvvW2fB0=; b=h2gh3L6Gd8KS4UchZTG5fSAhxghwPSPaeycooWuTc65KUbXaBUFCKl2OSgtV9Y0kJ/ 1irRsqh8EvtrGp8a9g3mQWJExIsiNz/Zqwtoku9/fa4BV1yiSiPGwbp7vtbgbm8rtDzX isHauq8m2oUn4+JDgwT1kZ5Fhy+PFEMMKiJbr0dSS/kIzrSC9adG5VsK1EP1aMqn7MxI ycffiOc9fZz2aJAQ8Nuc82Z+dTv8J6n+doT9AShRD6hPTe1lk4Fw2GVO65q80ArnlpPw fujJZMuyqqZnkAfcdiC+i+Lt3bvz5fIjZwk6lgOMPv2Q8kKNnuf3ZG4y1uQPiXdOm04i ++NA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a23-20020a170902b59700b0016a4a80a4a1si28598985pls.363.2022.07.06.23.58.45; Wed, 06 Jul 2022 23:58:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233871AbiGGGkJ (ORCPT + 99 others); Thu, 7 Jul 2022 02:40:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39166 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230124AbiGGGkH (ORCPT ); Thu, 7 Jul 2022 02:40:07 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 33E1629C92 for ; Wed, 6 Jul 2022 23:40:03 -0700 (PDT) Received: from [10.90.50.23] (unknown [192.168.200.1]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Axn+K+f8ZihokOAA--.41890S3; Thu, 07 Jul 2022 14:39:58 +0800 (CST) Message-ID: Date: Thu, 7 Jul 2022 14:39:35 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v2] LoongArch: Clean useless vcsr in loongarch_fpu. Content-Language: en-US To: WANG Xuerui , Xi Ruoyao , Jiaxun Yang , Huacai Chen Cc: loongarch@lists.linux.dev, LKML References: <20220704153612.314112-1-huqi@loongson.cn> <4273e104-8392-6a06-5d18-a1933978d8c3@xen0n.name> <22a1ba993e298ce12a374decefebeca484240883.camel@xry111.site> <16c9ccaa5e5a2ffd39272cff6f66e487c659b571.camel@xry111.site> <9d064771-9402-4e84-96f8-4713cddf42f2@www.fastmail.com> <730cb4c4-a6a3-783e-3e4c-7c2bdc35c088@loongson.cn> <0583a335-72f7-55cf-3cd9-4dbd8109a440@xen0n.name> <41a2a420-adfa-6f8d-392d-0c15892b6945@loongson.cn> From: Qi Hu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-CM-TRANSID: AQAAf9Axn+K+f8ZihokOAA--.41890S3 X-Coremail-Antispam: 1UD129KBjvJXoWxJw1rAF15Kr4kArW5tr43ZFb_yoW5AF4fpr W3ta1rtF4kJr1fAwn2vwn5XFySvw15Aw45Xw1vqrnayF1qvFnaqrW7JFWjka4YgrWxKw1Y vr4Ut3s3ZayDZaDanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnUUvcSsGvfC2KfnxnUUI43ZEXa7xR_UUUUUUUUU== X-CM-SenderInfo: pkxtxqxorr0wxvrqhubq/1tbiAQAACV3QvPyQxQABsR X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2022/7/7 14:24, WANG Xuerui wrote: > > On 2022/7/7 14:09, Qi Hu wrote: >> >> On 2022/7/7 12:22, WANG Xuerui wrote: >>> On 2022/7/7 12:04, Xi Ruoyao wrote: >>>> On Thu, 2022-07-07 at 11:05 +0800, WANG Xuerui wrote: >>>> >>>>> To be frank, at this point I think you're trying to hide something. >>>>> (This is not your fault, blame someone else of course because they >>>>> told >>>>> you the fact.) In the old-world kernel the VCSR a.k.a. FCSR16 is >>>>> certainly being saved/restored, and there's apparently no harm in >>>>> doing >>>>> so. And if the contents are indeed "undefined", why are the code >>>>> there >>>>> in the first place? Certainly the bits *are* meaningful, only that >>>>> for >>>>> some reason you aren't revealing the semantics and pretending that >>>>> they >>>>> are "undefined" and probably "do nothing externally observable" if >>>>> accessed in the first place. >>>> On a 3A5000LL, I did an experiment via a kernel module, which enables >>>> LSX/LASX and tries to write and read fcsr16.  I tried each bit (1, >>>> 2, 4, >>>> 8, ..., 1 << 31) one by one.  The result: no matter which bit I wrote >>>> into fcsr16, I always read out 0. >>>> >>>> And I've objdump'ed a kernel shipped in an early Loongnix release.  It >>>> seems the only reference to fcsr16 is a "movgr2fcsr $r16, $r0" >>>> instruction. >>> >>> Hmm this is weird. I can't understand why the vcsr code was there in >>> the first place then... I'd like to check a few Loongnix/Kylin/UOS >>> kernels but currently I don't have the time. >>> >>> If this is the case, indeed all vcsr-related code should be removed. >>> Although I'm still not sure how to best word the commit message. >>> >> Thanks for the Ruoyao's experiment. >> >> Removing the vcsr is the first step to trying to support LBT and >> LSX/LASX in Kernel. In my opinion, the vcsr relevant code may be used >> for debugging and forgot to remove. >> > Thinking about it harder, it actually makes sense. Given that access > to the LSX/LASX manuals is currently restricted, outsiders can never > know whether the code in question is really needed, so one has to err > on the conservative side. Thanks for the clarification, and my > apologies for being harsh in the previous reply. > > I think the commit message could be reworded like: > > "The VCSR (also known as FCSR16) is not present on retail steppings of > 3A5000. FCSR16 through FCSR31 are reserved for non-floating-point > LSX/LASX operations, but on 3A5000 all writes to them are no-op and > all reads return zero. FP LSX/LASX operations reuse the FCSR0 as their > CSR. > > Remove VCSR handling that is probably leftover debugging code for an > earlier not-for-retail stepping." > > (And remove the trailing period in your patch title, while at it; the > Linux kernel doesn't use a trailing period for majority of its commits.) > Thanks for reminding me about this. It is my first time committing the patch to Linux Kernel, and the commit message will be modified at V4 patch. - Qi