Received: by 2002:ab2:69cc:0:b0:1f4:be93:e15a with SMTP id n12csp127297lqp; Fri, 12 Apr 2024 12:26:30 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVMsDw5a6DcYr4P2Zf1jcNxt+1kH/R+1MhQLJBqRpm04fqpwsB5Utdqkwl5U86XlmKjnY3kytgcl80V1dhHx7PxNxp+xXT9wjtuFhROEA== X-Google-Smtp-Source: AGHT+IG5C+uR0nTKEceDhpTncN+kQPPupjfHYav9MzHwvmTGMuzE07RtJV6/AWUQtKaok3ojw8A5 X-Received: by 2002:a05:6214:12d8:b0:69b:346a:ef7b with SMTP id s24-20020a05621412d800b0069b346aef7bmr3117650qvv.59.1712949990198; Fri, 12 Apr 2024 12:26:30 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712949990; cv=pass; d=google.com; s=arc-20160816; b=CArvlxSTKVXDaDvFkJSfKeKZne7CvnsgHZUBtC/Fup0WaD9qxaTBqHRe/jahrofjKX koyTkozqc0t7Qo1suLhnhrmRmyjL1P/rhfcaZ9fOoPwckD6AgF69bR9JMbUPl+I9m6+J 3VnRLt8EEIdAt1jug1ktHLIBzGdvtxXMr8d+0ELzmcjHeIntRFx7OUsSh+pnCkxThdmr ogVYcQAIuCrHlb9X3Eb+fV3WDQc1ZkuBn+4kvOiUzaA75lIDd+7Vjs+pCccuPYsjpuPK w6bMC2M6fbqj+/MI07tX9KlHl2Mf6ldYCXZ7kmFHsgV6RrvY5kAFptoco9zet4kL8AeU va/w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date:dkim-signature; bh=ArpGHG9cuv9OtQt7jL/xNgqJB9MdPk3k7JUvanjZuic=; fh=8NQly+n7H0rO7O0Fu88VDyZvZ7qLkkr5LeShuod9PTA=; b=lC2T4fBAqi+0kRN6gah4m+suZkRNk3TMU83lbGIwAY1Z7a5yCJZFzQw81ZsS67Llou 3CmYqIttpUKCVcqBuwP1UtkSEvE7XWHLVPjpjJ4joEuMAhyk/MiK1qXJJb+JysFgh1rz O2FKEeXOUeCsqUoiNsWjZzI+IxsxV8vZJmgOPBFp5jm+PwWl8xmYMYG0GysYYmyWzeFd pc5mPGtyiQ+GDmKFhKX37vxgZxML19hZDfcZKnkOponvS1XpPhtMNmsCTIH7LaX6u+ux gBLfK9OhZTzKVU6l/NhCTpna1bzIepHNM4YZuBgfy+05J9OLA4VwxfNVIv9boDA1hk3i q8+Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=BE1ZhfCI; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-143252-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-143252-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id f5-20020ad442c5000000b0069b50429ed2si3602068qvr.479.2024.04.12.12.26.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 12:26:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-143252-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=BE1ZhfCI; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-143252-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-143252-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id D2EB11C21C26 for ; Fri, 12 Apr 2024 19:26:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 567D015099C; Fri, 12 Apr 2024 19:26:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="BE1ZhfCI" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DC9714F9ED; Fri, 12 Apr 2024 19:26:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712949979; cv=none; b=KBSkRd1/EeNqTRfbHa434VaEO4nEJcU+GXrS9L5d4PYVt4o79IleJSUO1ho/USB0AriTwZQmR7kGUjAKQNFsCT73e18ZtNf2B7axXTVfRw2WRcS9a6kR3ccf7Qov+gNrQPLNSP8j6Ufcd2ZNRaGqb6AZ8F02faG+LycqsuFOZa0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712949979; c=relaxed/simple; bh=ArpGHG9cuv9OtQt7jL/xNgqJB9MdPk3k7JUvanjZuic=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=O4j1llD5C+4462x+yaOTMjojkyUvHHcnKuDeTDjb84KFs7OnjCfwvicTpbS/tAGBZt5H4OSi0ogMk1XvzIlnjm7ejTEek6gnoMVNs8Pn9T0VUWKI+5m/Q8ESuubpWfxRpbW0Tcu2UcQATL/K0Ch0dg61TzYQ+ttPGd44/bSoYg0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=BE1ZhfCI; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5419DC113CC; Fri, 12 Apr 2024 19:26:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1712949978; bh=ArpGHG9cuv9OtQt7jL/xNgqJB9MdPk3k7JUvanjZuic=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=BE1ZhfCIepy+Sz+T2/94eePFkoOBa4Wa95SbkS2QeDMiyp12yVm5dxbXQ8DBAVn7e zaEoB5oI8W25RYxz9nj1KmtQifkJbq6TcZaZvzr2BZLansHu9+OSr3iV9XFoQ9mehr WDWWtMq8E1dfTt7HdTaOi9lb15ndfSLbPuCdFZmSZKfRDjjictfHUo2RWyRlm9K4E8 9JirdX8YiXS/iJ1fnkO5Y3Wi29otvkyu+i2+2rQtPRBfmq1njgVEabcy+rtzdw7f1H vOZ2jbfP0fNsPzw0gK+ZL/PdQRjsoz8WjLOPnKbLLA9WO+GJBKQMbXROTtaPlEzejH FKtr8IV7z/8qw== Date: Fri, 12 Apr 2024 20:26:12 +0100 From: Conor Dooley To: Charlie Jenkins Cc: Evan Green , Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Guo Ren , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , =?iso-8859-1?Q?Cl=E9ment_L=E9ger?= , Jonathan Corbet , Shuah Khan , linux-riscv@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Palmer Dabbelt , linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH 02/19] riscv: cpufeature: Fix thead vector hwcap removal Message-ID: <20240412-earmark-sanction-810b7222cae5@spud> References: <20240411-dev-charlie-support_thead_vector_6_9-v1-0-4af9815ec746@rivosinc.com> <20240411-dev-charlie-support_thead_vector_6_9-v1-2-4af9815ec746@rivosinc.com> <20240412-tuesday-resident-d9d07e75463c@wendy> <20240412-employer-crier-c201704d22e3@spud> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="tJyAzTWQiwGEEGv9" Content-Disposition: inline In-Reply-To: --tJyAzTWQiwGEEGv9 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Apr 12, 2024 at 11:46:21AM -0700, Charlie Jenkins wrote: > On Fri, Apr 12, 2024 at 07:38:04PM +0100, Conor Dooley wrote: > > On Fri, Apr 12, 2024 at 10:04:17AM -0700, Evan Green wrote: > > > On Fri, Apr 12, 2024 at 3:26=E2=80=AFAM Conor Dooley wrote: > > > > > > > > On Thu, Apr 11, 2024 at 09:11:08PM -0700, Charlie Jenkins wrote: > > > > > The riscv_cpuinfo struct that contains mvendorid and marchid is n= ot > > > > > populated until all harts are booted which happens after the DT p= arsing. > > > > > Use the vendorid/archid values from the DT if available or assume= all > > > > > harts have the same values as the boot hart as a fallback. > > > > > > > > > > Fixes: d82f32202e0d ("RISC-V: Ignore V from the riscv,isa DT prop= erty on older T-Head CPUs") > > > > > > > > If this is our only use case for getting the mvendorid/marchid stuff > > > > from dt, then I don't think we should add it. None of the devicetre= es > > > > that the commit you're fixing here addresses will have these proper= ties > > > > and if they did have them, they'd then also be new enough to hopefu= lly > > > > not have "v" either - the issue is they're using whatever crap the > > > > vendor shipped. > > > > If we're gonna get the information from DT, we already have somethi= ng > > > > that we can look at to perform the disable as the cpu compatibles g= ive > > > > us enough information to make the decision. > > > > > > > > I also think that we could just cache the boot CPU's marchid/mvendo= rid, > > > > since we already have to look at it in riscv_fill_cpu_mfr_info(), a= void > > > > repeating these ecalls on all systems. > > > > > > > > Perhaps for now we could just look at the boot CPU alone? To my > > > > knowledge the systems that this targets all have homogeneous > > > > marchid/mvendorid values of 0x0. > > >=20 > > > It's possible I'm misinterpreting, but is the suggestion to apply the > > > marchid/mvendorid we find on the boot CPU and assume it's the same on > > > all other CPUs? Since we're reporting the marchid/mvendorid/mimpid to > > > usermode in a per-hart way, it would be better IMO if we really do > > > query marchid/mvendorid/mimpid on each hart. The problem with applying > > > the boot CPU's value everywhere is if we're ever wrong in the future > > > (ie that assumption doesn't hold on some machine), we'll only find out > > > about it after the fact. Since we reported the wrong information to > > > usermode via hwprobe, it'll be an ugly userspace ABI issue to clean > > > up. > >=20 > > You're misinterpreting, we do get the values on all individually as > > they're brought online. This is only used by the code that throws a bone > > to people with crappy vendor dtbs that put "v" in riscv,isa when they > > support the unratified version. >=20 > Not quite, Remember that this patch stands in isolation and the justification given in your commit message does not mention anything other than fixing my broken patch. > the alternatives are patched before the other cpus are > booted, so the alternatives will have false positives resulting in > broken kernels. Over-eagerly disabling vector isn't going to break any kernels and really should not break a behaving userspace either. Under-eagerly disabling it (in a way that this approach could solve) is only going to happen on a system where the boot hart has non-zero values and claims support for v but a non-boot hart has zero values and claims support for v but actually doesn't implement the ratified version. If the boot hart doesn't support v, then we currently disable the extension as only homogeneous stuff is supported by Linux. If the boot hart claims support for "v" but doesn't actually implement the ratified version neither the intent of my original patch nor this fix for it are going to help avoid a broken kernel. I think we do have a problem if the boot cpu having some erratum leads to the kernel being patched in a way that does not work for the other CPUs on the system, but I don't think this series addresses that sort of issue at all as you'd be adding code to the pi section if you were fixing it. I also don't think we should be making pre-emptive changes to the errata patching code either to solve that sort of problem, until an SoC shows up where things don't work. Cheers, Conor. --tJyAzTWQiwGEEGv9 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQRh246EGq/8RLhDjO14tDGHoIJi0gUCZhmK1AAKCRB4tDGHoIJi 0hziAP4j1liS/8H3/sGH37oV1Ie6vt982Lewk2FPT35h55TKRQEA/iypRsMhmnBH 35WadNZuyEtJ844XSGK0IM1bH0q7eAk= =Lvox -----END PGP SIGNATURE----- --tJyAzTWQiwGEEGv9--