Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3365842imw; Wed, 6 Jul 2022 23:58:18 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vPdHSlF9X6ueBRgjvXnEZD+vPjmIAXBd6CPw28DKVOW4bq6Afok4SzVIJtF+GvrycrMjYJ X-Received: by 2002:a17:903:26d3:b0:16b:d80c:c068 with SMTP id jg19-20020a17090326d300b0016bd80cc068mr26103962plb.76.1657177098148; Wed, 06 Jul 2022 23:58:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657177098; cv=none; d=google.com; s=arc-20160816; b=CW+SvIVLKxAxHMItgi4i08/Oswuu6RPEitXS5FueBJ9wIBKHJT8oYc7YWAjlfC0nlL u7lTrAvAOYjLpTHxef7F1nWAMKJfzKw4hJqc+HkJIDdrt8l3+7fAaB8Q7thXLbIx8LE0 OknY7oxGNppnwe8oBJCJwROfHyPyNiV99ilEzSW+f5dXAHsvUkK62XD9RhU0mq+Fj5jy gv3nrMTKLxlcJ/k++E6HSVXYC9tKSL7DNciOLA6JPEYIrblBpOjZzOvAd18vPwA2RfYf ADfkWtzSvbsXD4Ch554GLNuj1IUysbEdqXZV1dMx8L5Um/C2BPZYJQoOv5a9zqtVNa2Y swyA== 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:dkim-signature; bh=4Gyy2sq+CSYTPhwRhOuhbhsC71sNbcBwj5pvdokXSoA=; b=JN5Jj3dcGmMqK3qdRRHcNn6HXcFkTymWb6CAtKNbDTqCGQeGHuYR4daIS849pyKxtA An5UuoelAKig3G9cw8qYpADZxS8rL23ZDhhBR1ybsoLKKYC0dDw8TKdSUYj0HqxsUKqk ojdAvqzt4OQIlQPiD3YjRo70pSZjG6LW0JPfYkOs6qAwCIL3xwqDGdwaE+c/9RA5OiQM 6C3hqC6zB5h45uv6+shBo9HFuYBhHnwaYEOLO7rZNq7UCu8by92XPzm2bgky8hqIubkN jSIorD2PkBMmJA9DcEgFyLczGx//GekKvoCKHt/gM/M4xbMX7fxAGBSlXTGghmL1fH6l PqkA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@xen0n.name header.s=mail header.b="j/Dq+BQM"; 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 r3-20020a632b03000000b00410702fe18dsi35606326pgr.422.2022.07.06.23.58.05; Wed, 06 Jul 2022 23:58:17 -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; dkim=pass header.i=@xen0n.name header.s=mail header.b="j/Dq+BQM"; 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 S234414AbiGGGY4 (ORCPT + 99 others); Thu, 7 Jul 2022 02:24:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57094 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233366AbiGGGYz (ORCPT ); Thu, 7 Jul 2022 02:24:55 -0400 Received: from mailbox.box.xen0n.name (mail.xen0n.name [115.28.160.31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 50C63633F for ; Wed, 6 Jul 2022 23:24:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xen0n.name; s=mail; t=1657175090; bh=8KkOQg6Np0sKzvI4n9mwASctGzwr8vj+dzI40q2/t8o=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=j/Dq+BQMmoqtXk9l5OFH8rgHvcHVw4JU8RYJ4yq9hJJF682Opyf0d13ag70wtpAT6 rkMTF9/06gOztj1ICLRD2Y774WEcuYEx5ozZmvUirAtnZMQf1vdhtNhOMLatQt4jbY RzcQCAPzOlmQPZacrVZdO71+1w55qWbIdoUPQy4E= Received: from [100.100.57.190] (unknown [220.248.53.61]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mailbox.box.xen0n.name (Postfix) with ESMTPSA id C680D60114; Thu, 7 Jul 2022 14:24:49 +0800 (CST) Message-ID: Date: Thu, 7 Jul 2022 14:24:49 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Thunderbird/104.0a1 Subject: Re: [PATCH v2] LoongArch: Clean useless vcsr in loongarch_fpu. Content-Language: en-US To: Qi Hu , 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: WANG Xuerui In-Reply-To: <41a2a420-adfa-6f8d-392d-0c15892b6945@loongson.cn> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,SPF_HELO_NONE, 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: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.)