From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f172.google.com (mail-pf1-f172.google.com [209.85.210.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D2631EEEA for ; Fri, 12 Apr 2024 20:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712954088; cv=none; b=aiegPnLRrY928EvaudhIw8KyKAi+zh+WMju31yU1FBD8J4sfYyNE8SFLFZ10kYF72ntpFcMazn9Bt1ggHWf/shIjnSdPFS4Kuxe399shhBGCa7tihY2i2nTnoePxJPZFoXEEFGCKYJaFWavXGS/PdZ+ptR26mmrKpLUG6Z05wYQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712954088; c=relaxed/simple; bh=loMKYNw/xhh/jyJ4cuKkExEImeaqTLizZBny4wQOvD0=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=KwKBs/2phLVphQ9SuheAcJq1o/PPcwhA5yifB1ScWUhzopHl03VmjABp+rGz1otnmQrBronTsUxPCZ4LIA2DZIQiI+PoFckiXMzpz8saZLvsP6i1gAy7IVSYtXwgQczsV5M5aJ+ITypm5K1EEFkxv/DKeCZrz+34msQsmdK8zT0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=z1LGY7lp; arc=none smtp.client-ip=209.85.210.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="z1LGY7lp" Received: by mail-pf1-f172.google.com with SMTP id d2e1a72fcca58-6edc61d0ff6so1184824b3a.2 for ; Fri, 12 Apr 2024 13:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1712954086; x=1713558886; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=oY4nkb56vAnwFBrxRJwfi/83hDDE+J6pWJ1yps5//Zc=; b=z1LGY7lp1lbNBLEzz7oXJ3ZpZyDXj8VQ0I3GJzP7h2hSXL8cFq8K999IA2ec5nljXj NskTa8/nX8VsHoGcp0S1JYHLna7ekm83puNHIYXaz9uEr/htPu9K5qgFFP5Y0CHXqU64 1aZvBUcaw/Ip+mnRU6sDHc8nFllZWspamvLUrvEgwwEFwXhnt6NYlQrpPqaS/M9D8dCG k9tawtJiIwrSxVDHZ69DyzWvkdhW8RTCO4ocIgVJL9szwx1IHD/jf5ffXTVll5aHGjsf IfZWez4lPRM900RZhzHyn6ZeizsXDXJUOfxK+4c4UZfdhuNI9kBAztpkRCylwhFtEcDk eCRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712954086; x=1713558886; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oY4nkb56vAnwFBrxRJwfi/83hDDE+J6pWJ1yps5//Zc=; b=a778D3TbQZYZFMvTVOLe+nC3N2n0D1lpx2Idzp/ptxXgppuzvNPa23yqHLhI5SdWUw R8niXs5+kUJ9tIFfm0SBCX0RLqwOCafu/YDHAZ+KFzi1FWyybNexI+IKRySpk2MEZrAq jSM+/p1lVMlKWlIK4WI0lqgjvJfXM3TDudpUcNX+VO1Asf3l+4tDueV8oUqPYEMiwleH ohKU80Hq6L3HvgjraC7UA1+OzAjI7kCqYDnCbiGHwTi4IuURQnAt1oOI5BToO667V0wk rZI882iYYWIdley0tZnTXU/bMWFOXImfM+FuJkA12r/ErIlKavHEc00Dv5JheivoLqx/ REag== X-Forwarded-Encrypted: i=1; AJvYcCUWIT3gkOw5BbMb1T3eiZ6/CLfe8TJUTqXNz8XV//64qXfcs+JE2dmpkfte9jt4iyKB/3UoY53bjhHHUV6AjrxBEjtqWq5cpf9D X-Gm-Message-State: AOJu0Yw2zKr6uzpBKx2VAY/nvowlM/g+aEow4xkNnw3Q5k9oiyWgUQaQ cATXuNOllDoZ2yaNv+DnE8mPxLdvTbAKTKkcuEZy79vhIfCWecNyDRPh8Akau+o= X-Google-Smtp-Source: AGHT+IGaQmX55JTPMh7eewAl1uYqQxasuC3IownyYJh3ikhM4PX0keclRrzWoXOYcfZeNLyTHp36qA== X-Received: by 2002:a05:6a00:9aa:b0:6ed:435f:ec9b with SMTP id u42-20020a056a0009aa00b006ed435fec9bmr4550403pfg.20.1712954086437; Fri, 12 Apr 2024 13:34:46 -0700 (PDT) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id lr48-20020a056a0073b000b006e724ccdc3esm3270068pfb.55.2024.04.12.13.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 13:34:45 -0700 (PDT) Date: Fri, 12 Apr 2024 13:34:43 -0700 From: Charlie Jenkins To: Conor Dooley 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: 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> <20240412-earmark-sanction-810b7222cae5@spud> Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240412-earmark-sanction-810b7222cae5@spud> On Fri, Apr 12, 2024 at 08:26:12PM +0100, Conor Dooley wrote: > 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 AM 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 not > > > > > > populated until all harts are booted which happens after the DT parsing. > > > > > > 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 property 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 devicetrees > > > > > that the commit you're fixing here addresses will have these properties > > > > > and if they did have them, they'd then also be new enough to hopefully > > > > > 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 something > > > > > that we can look at to perform the disable as the cpu compatibles give > > > > > us enough information to make the decision. > > > > > > > > > > I also think that we could just cache the boot CPU's marchid/mvendorid, > > > > > since we already have to look at it in riscv_fill_cpu_mfr_info(), avoid > > > > > 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. > > > > > > > > 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. > > > > > > 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. > > > > 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. Fixing the patch in the simplest sense would be to eagerly get the mvendorid/marchid without using the cached version. But this assumes that all harts have the same mvendorid/marchid. This is not something that I am strongly attached to. If it truly is detrimental to Linux to allow a user a way to specify different vendorids for different harts then I will remove that code. - Charlie > > > 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. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F9A8C4345F for ; Fri, 12 Apr 2024 20:34:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=w7jhM9LT2CKteRiLMo7v+36aBH0dBU9Z3GuNyqZVwTg=; b=HwBXrfhuasudjw rTlkh1n9LUC9gOuVojuQnrF1TpxxobRxLdGNTaZdmvwHwZ1jSA2KnWj/jxc9Pbn63lxp8uQQmWfEH +pDQt8rMSrwxToiJTwH5rpfpCfCuESgELA4hRNl1aEE0EmvA7ah0uecAlRfTycVN49fiYy4R8Hd1M fR/tprNROOoLSywObKhOGtyyOkQtMNcKNYjj7+QL0S1SX8FvC6/puXckaJs8tPOOh6G98RyuSDYNo R/pw1KZV+ci3DkReo+UwJw4ynbt7GkjUBphIefKH6nmaWTGPshdg25cRKh6uN8qDaeL2dqqOjzSp9 pkb7nl4y6nECxguSW95A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvNbm-00000001DXP-1LfX; Fri, 12 Apr 2024 20:34:50 +0000 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvNbj-00000001DWS-15FM for linux-riscv@lists.infradead.org; Fri, 12 Apr 2024 20:34:48 +0000 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-6ecec796323so1354242b3a.3 for ; Fri, 12 Apr 2024 13:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1712954086; x=1713558886; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=oY4nkb56vAnwFBrxRJwfi/83hDDE+J6pWJ1yps5//Zc=; b=RFPT0IxUpNXXUWolkBrekeeeRd6z/1ERpVRFmSpqHDwzqTiUZFb3K4wG8TkaNLEs92 IQotGeSf+mYCxt23kJnkQbxfmKkKZV76vrBkty4YJBeS28zMCgi3ybQ4Nhe9YX6bv409 uRGETsWKaZvMHUWF40Ng6ySedcpeN21Q91sOjreYAWGzfZ0KiZogxBfLAxHsfz7CyE2O Z8ksqRa1J+0V1/t+oRPqYG1JPt86YbNC1KGvpbV76W9olqN1ms5CcG/aZLxrxX+3mYcH b1GePyP4Nt4cj3MkBBj2wd9VY8ETP+lWu/Ti+jKj87q3nHyc7MEjWEMv6KqSuLBFZZEV vD7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712954086; x=1713558886; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oY4nkb56vAnwFBrxRJwfi/83hDDE+J6pWJ1yps5//Zc=; b=N9a2WgjXerwCrZLhLmYpvqlmhI/L8NBUaHJxYMghTrMePIwSUCUIGjW+EfZqjvx7VJ 0fMGY/Its9j3RmCga31+ZhbzExWoL3ZYqnGAO95qIOABk3xnRxVeLBFUir8xUxg9bR5d aaH4rRdKFWrtB7lE4K6tVRtSxoJtS4x10v2Sg8yhWP+FsPDN5xlDOruAbWUXNQhnQFQQ 4BEjM2Z5bnw9Px/AJ5vnPG6HxmZ8ogLFXkmmlc2ReweH3y5fHQB6l9QjBw0C0ruyN5d3 U77UNlcLULHNabJZV/5voAphumnDgbUNTo9yg3wS5DYIfKPwsf2SnEkTE30XG41Oq6Ot osyg== X-Forwarded-Encrypted: i=1; AJvYcCVL0/et69Y9/Jg0gZExIaTN7vCjetRtUMgGQpfnmWB0fgeci3h5M3tXMospaPolalt8PoaFI3XBabXU0Bd22yhgvSn26Nzjq2+bF/UBmeln X-Gm-Message-State: AOJu0Yxl7aJaQJZ6g++8lQSq+xMOOhaBK+W1NGTJLBMP6fazA8z7oQ1B w36at7JOmmHp4g6HXhfphaAymDXHcLbRVGiLU591ttmAVXnNGrNCICRgURu1Dz0= X-Google-Smtp-Source: AGHT+IGaQmX55JTPMh7eewAl1uYqQxasuC3IownyYJh3ikhM4PX0keclRrzWoXOYcfZeNLyTHp36qA== X-Received: by 2002:a05:6a00:9aa:b0:6ed:435f:ec9b with SMTP id u42-20020a056a0009aa00b006ed435fec9bmr4550403pfg.20.1712954086437; Fri, 12 Apr 2024 13:34:46 -0700 (PDT) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id lr48-20020a056a0073b000b006e724ccdc3esm3270068pfb.55.2024.04.12.13.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 13:34:45 -0700 (PDT) Date: Fri, 12 Apr 2024 13:34:43 -0700 From: Charlie Jenkins To: Conor Dooley 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: 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> <20240412-earmark-sanction-810b7222cae5@spud> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240412-earmark-sanction-810b7222cae5@spud> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240412_133447_383682_E7A78B26 X-CRM114-Status: GOOD ( 49.15 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBcHIgMTIsIDIwMjQgYXQgMDg6MjY6MTJQTSArMDEwMCwgQ29ub3IgRG9vbGV5IHdy b3RlOgo+IE9uIEZyaSwgQXByIDEyLCAyMDI0IGF0IDExOjQ2OjIxQU0gLTA3MDAsIENoYXJsaWUg SmVua2lucyB3cm90ZToKPiA+IE9uIEZyaSwgQXByIDEyLCAyMDI0IGF0IDA3OjM4OjA0UE0gKzAx MDAsIENvbm9yIERvb2xleSB3cm90ZToKPiA+ID4gT24gRnJpLCBBcHIgMTIsIDIwMjQgYXQgMTA6 MDQ6MTdBTSAtMDcwMCwgRXZhbiBHcmVlbiB3cm90ZToKPiA+ID4gPiBPbiBGcmksIEFwciAxMiwg MjAyNCBhdCAzOjI24oCvQU0gQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNv bT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1LCBBcHIgMTEsIDIwMjQgYXQgMDk6 MTE6MDhQTSAtMDcwMCwgQ2hhcmxpZSBKZW5raW5zIHdyb3RlOgo+ID4gPiA+ID4gPiBUaGUgcmlz Y3ZfY3B1aW5mbyBzdHJ1Y3QgdGhhdCBjb250YWlucyBtdmVuZG9yaWQgYW5kIG1hcmNoaWQgaXMg bm90Cj4gPiA+ID4gPiA+IHBvcHVsYXRlZCB1bnRpbCBhbGwgaGFydHMgYXJlIGJvb3RlZCB3aGlj aCBoYXBwZW5zIGFmdGVyIHRoZSBEVCBwYXJzaW5nLgo+ID4gPiA+ID4gPiBVc2UgdGhlIHZlbmRv cmlkL2FyY2hpZCB2YWx1ZXMgZnJvbSB0aGUgRFQgaWYgYXZhaWxhYmxlIG9yIGFzc3VtZSBhbGwK PiA+ID4gPiA+ID4gaGFydHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJvb3QgaGFydCBh cyBhIGZhbGxiYWNrLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBGaXhlczogZDgyZjMyMjAyZTBk ICgiUklTQy1WOiBJZ25vcmUgViBmcm9tIHRoZSByaXNjdixpc2EgRFQgcHJvcGVydHkgb24gb2xk ZXIgVC1IZWFkIENQVXMiKQo+ID4gPiA+ID4KPiA+ID4gPiA+IElmIHRoaXMgaXMgb3VyIG9ubHkg dXNlIGNhc2UgZm9yIGdldHRpbmcgdGhlIG12ZW5kb3JpZC9tYXJjaGlkIHN0dWZmCj4gPiA+ID4g PiBmcm9tIGR0LCB0aGVuIEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIGFkZCBpdC4gTm9uZSBvZiB0 aGUgZGV2aWNldHJlZXMKPiA+ID4gPiA+IHRoYXQgdGhlIGNvbW1pdCB5b3UncmUgZml4aW5nIGhl cmUgYWRkcmVzc2VzIHdpbGwgaGF2ZSB0aGVzZSBwcm9wZXJ0aWVzCj4gPiA+ID4gPiBhbmQgaWYg dGhleSBkaWQgaGF2ZSB0aGVtLCB0aGV5J2QgdGhlbiBhbHNvIGJlIG5ldyBlbm91Z2ggdG8gaG9w ZWZ1bGx5Cj4gPiA+ID4gPiBub3QgaGF2ZSAidiIgZWl0aGVyIC0gdGhlIGlzc3VlIGlzIHRoZXkn cmUgdXNpbmcgd2hhdGV2ZXIgY3JhcCB0aGUKPiA+ID4gPiA+IHZlbmRvciBzaGlwcGVkLgo+ID4g PiA+ID4gSWYgd2UncmUgZ29ubmEgZ2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIERULCB3ZSBhbHJl YWR5IGhhdmUgc29tZXRoaW5nCj4gPiA+ID4gPiB0aGF0IHdlIGNhbiBsb29rIGF0IHRvIHBlcmZv cm0gdGhlIGRpc2FibGUgYXMgdGhlIGNwdSBjb21wYXRpYmxlcyBnaXZlCj4gPiA+ID4gPiB1cyBl bm91Z2ggaW5mb3JtYXRpb24gdG8gbWFrZSB0aGUgZGVjaXNpb24uCj4gPiA+ID4gPgo+ID4gPiA+ ID4gSSBhbHNvIHRoaW5rIHRoYXQgd2UgY291bGQganVzdCBjYWNoZSB0aGUgYm9vdCBDUFUncyBt YXJjaGlkL212ZW5kb3JpZCwKPiA+ID4gPiA+IHNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0byBsb29r IGF0IGl0IGluIHJpc2N2X2ZpbGxfY3B1X21mcl9pbmZvKCksIGF2b2lkCj4gPiA+ID4gPiByZXBl YXRpbmcgdGhlc2UgZWNhbGxzIG9uIGFsbCBzeXN0ZW1zLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFBl cmhhcHMgZm9yIG5vdyB3ZSBjb3VsZCBqdXN0IGxvb2sgYXQgdGhlIGJvb3QgQ1BVIGFsb25lPyBU byBteQo+ID4gPiA+ID4ga25vd2xlZGdlIHRoZSBzeXN0ZW1zIHRoYXQgdGhpcyB0YXJnZXRzIGFs bCBoYXZlIGhvbW9nZW5lb3VzCj4gPiA+ID4gPiBtYXJjaGlkL212ZW5kb3JpZCB2YWx1ZXMgb2Yg MHgwLgo+ID4gPiA+IAo+ID4gPiA+IEl0J3MgcG9zc2libGUgSSdtIG1pc2ludGVycHJldGluZywg YnV0IGlzIHRoZSBzdWdnZXN0aW9uIHRvIGFwcGx5IHRoZQo+ID4gPiA+IG1hcmNoaWQvbXZlbmRv cmlkIHdlIGZpbmQgb24gdGhlIGJvb3QgQ1BVIGFuZCBhc3N1bWUgaXQncyB0aGUgc2FtZSBvbgo+ ID4gPiA+IGFsbCBvdGhlciBDUFVzPyBTaW5jZSB3ZSdyZSByZXBvcnRpbmcgdGhlIG1hcmNoaWQv bXZlbmRvcmlkL21pbXBpZCB0bwo+ID4gPiA+IHVzZXJtb2RlIGluIGEgcGVyLWhhcnQgd2F5LCBp dCB3b3VsZCBiZSBiZXR0ZXIgSU1PIGlmIHdlIHJlYWxseSBkbwo+ID4gPiA+IHF1ZXJ5IG1hcmNo aWQvbXZlbmRvcmlkL21pbXBpZCBvbiBlYWNoIGhhcnQuIFRoZSBwcm9ibGVtIHdpdGggYXBwbHlp bmcKPiA+ID4gPiB0aGUgYm9vdCBDUFUncyB2YWx1ZSBldmVyeXdoZXJlIGlzIGlmIHdlJ3JlIGV2 ZXIgd3JvbmcgaW4gdGhlIGZ1dHVyZQo+ID4gPiA+IChpZSB0aGF0IGFzc3VtcHRpb24gZG9lc24n dCBob2xkIG9uIHNvbWUgbWFjaGluZSksIHdlJ2xsIG9ubHkgZmluZCBvdXQKPiA+ID4gPiBhYm91 dCBpdCBhZnRlciB0aGUgZmFjdC4gU2luY2Ugd2UgcmVwb3J0ZWQgdGhlIHdyb25nIGluZm9ybWF0 aW9uIHRvCj4gPiA+ID4gdXNlcm1vZGUgdmlhIGh3cHJvYmUsIGl0J2xsIGJlIGFuIHVnbHkgdXNl cnNwYWNlIEFCSSBpc3N1ZSB0byBjbGVhbgo+ID4gPiA+IHVwLgo+ID4gPiAKPiA+ID4gWW91J3Jl IG1pc2ludGVycHJldGluZywgd2UgZG8gZ2V0IHRoZSB2YWx1ZXMgb24gYWxsIGluZGl2aWR1YWxs eSBhcwo+ID4gPiB0aGV5J3JlIGJyb3VnaHQgb25saW5lLiBUaGlzIGlzIG9ubHkgdXNlZCBieSB0 aGUgY29kZSB0aGF0IHRocm93cyBhIGJvbmUKPiA+ID4gdG8gcGVvcGxlIHdpdGggY3JhcHB5IHZl bmRvciBkdGJzIHRoYXQgcHV0ICJ2IiBpbiByaXNjdixpc2Egd2hlbiB0aGV5Cj4gPiA+IHN1cHBv cnQgdGhlIHVucmF0aWZpZWQgdmVyc2lvbi4KPiA+IAo+ID4gTm90IHF1aXRlLAo+IAo+IFJlbWVt YmVyIHRoYXQgdGhpcyBwYXRjaCBzdGFuZHMgaW4gaXNvbGF0aW9uIGFuZCB0aGUganVzdGlmaWNh dGlvbiBnaXZlbgo+IGluIHlvdXIgY29tbWl0IG1lc3NhZ2UgZG9lcyBub3QgbWVudGlvbiBhbnl0 aGluZyBvdGhlciB0aGFuIGZpeGluZyBteQo+IGJyb2tlbiBwYXRjaC4KCkZpeGluZyB0aGUgcGF0 Y2ggaW4gdGhlIHNpbXBsZXN0IHNlbnNlIHdvdWxkIGJlIHRvIGVhZ2VybHkgZ2V0IHRoZQptdmVu ZG9yaWQvbWFyY2hpZCB3aXRob3V0IHVzaW5nIHRoZSBjYWNoZWQgdmVyc2lvbi4gQnV0IHRoaXMg YXNzdW1lcwp0aGF0IGFsbCBoYXJ0cyBoYXZlIHRoZSBzYW1lIG12ZW5kb3JpZC9tYXJjaGlkLiBU aGlzIGlzIG5vdCBzb21ldGhpbmcKdGhhdCBJIGFtIHN0cm9uZ2x5IGF0dGFjaGVkIHRvLiBJZiBp dCB0cnVseSBpcyBkZXRyaW1lbnRhbCB0byBMaW51eCB0bwphbGxvdyBhIHVzZXIgYSB3YXkgdG8g c3BlY2lmeSBkaWZmZXJlbnQgdmVuZG9yaWRzIGZvciBkaWZmZXJlbnQgaGFydHMKdGhlbiBJIHdp bGwgcmVtb3ZlIHRoYXQgY29kZS4KCi0gQ2hhcmxpZQoKPiAKPiA+IHRoZSBhbHRlcm5hdGl2ZXMg YXJlIHBhdGNoZWQgYmVmb3JlIHRoZSBvdGhlciBjcHVzIGFyZQo+ID4gYm9vdGVkLCBzbyB0aGUg YWx0ZXJuYXRpdmVzIHdpbGwgaGF2ZSBmYWxzZSBwb3NpdGl2ZXMgcmVzdWx0aW5nIGluCj4gPiBi cm9rZW4ga2VybmVscy4KPiAKPiBPdmVyLWVhZ2VybHkgZGlzYWJsaW5nIHZlY3RvciBpc24ndCBn b2luZyB0byBicmVhayBhbnkga2VybmVscyBhbmQKPiByZWFsbHkgc2hvdWxkIG5vdCBicmVhayBh IGJlaGF2aW5nIHVzZXJzcGFjZSBlaXRoZXIuCj4gVW5kZXItZWFnZXJseSBkaXNhYmxpbmcgaXQg KGluIGEgd2F5IHRoYXQgdGhpcyBhcHByb2FjaCBjb3VsZCBzb2x2ZSkgaXMKPiBvbmx5IGdvaW5n IHRvIGhhcHBlbiBvbiBhIHN5c3RlbSB3aGVyZSB0aGUgYm9vdCBoYXJ0IGhhcyBub24temVybyB2 YWx1ZXMKPiBhbmQgY2xhaW1zIHN1cHBvcnQgZm9yIHYgYnV0IGEgbm9uLWJvb3QgaGFydCBoYXMg emVybyB2YWx1ZXMgYW5kCj4gY2xhaW1zIHN1cHBvcnQgZm9yIHYgYnV0IGFjdHVhbGx5IGRvZXNu J3QgaW1wbGVtZW50IHRoZSByYXRpZmllZCB2ZXJzaW9uLgo+IElmIHRoZSBib290IGhhcnQgZG9l c24ndCBzdXBwb3J0IHYsIHRoZW4gd2UgY3VycmVudGx5IGRpc2FibGUgdGhlCj4gZXh0ZW5zaW9u IGFzIG9ubHkgaG9tb2dlbmVvdXMgc3R1ZmYgaXMgc3VwcG9ydGVkIGJ5IExpbnV4LiBJZiB0aGUg Ym9vdAo+IGhhcnQgY2xhaW1zIHN1cHBvcnQgZm9yICJ2IiBidXQgZG9lc24ndCBhY3R1YWxseSBp bXBsZW1lbnQgdGhlIHJhdGlmaWVkCj4gdmVyc2lvbiBuZWl0aGVyIHRoZSBpbnRlbnQgb2YgbXkg b3JpZ2luYWwgcGF0Y2ggbm9yIHRoaXMgZml4IGZvciBpdCBhcmUKPiBnb2luZyB0byBoZWxwIGF2 b2lkIGEgYnJva2VuIGtlcm5lbC4KPiAKPiBJIHRoaW5rIHdlIGRvIGhhdmUgYSBwcm9ibGVtIGlm IHRoZSBib290IGNwdSBoYXZpbmcgc29tZSBlcnJhdHVtIGxlYWRzCj4gdG8gdGhlIGtlcm5lbCBi ZWluZyBwYXRjaGVkIGluIGEgd2F5IHRoYXQgZG9lcyBub3Qgd29yayBmb3IgdGhlIG90aGVyCj4g Q1BVcyBvbiB0aGUgc3lzdGVtLCBidXQgSSBkb24ndCB0aGluayB0aGlzIHNlcmllcyBhZGRyZXNz ZXMgdGhhdCBzb3J0IG9mCj4gaXNzdWUgYXQgYWxsIGFzIHlvdSdkIGJlIGFkZGluZyBjb2RlIHRv IHRoZSBwaSBzZWN0aW9uIGlmIHlvdSB3ZXJlIGZpeGluZwo+IGl0LiBJIGFsc28gZG9uJ3QgdGhp bmsgd2Ugc2hvdWxkIGJlIG1ha2luZyBwcmUtZW1wdGl2ZSBjaGFuZ2VzIHRvIHRoZQo+IGVycmF0 YSBwYXRjaGluZyBjb2RlIGVpdGhlciB0byBzb2x2ZSB0aGF0IHNvcnQgb2YgcHJvYmxlbSwgdW50 aWwgYW4gU29DCj4gc2hvd3MgdXAgd2hlcmUgdGhpbmdzIGRvbid0IHdvcmsuCj4gQ2hlZXJzLAo+ IENvbm9yLgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E6291C4345F for ; Fri, 12 Apr 2024 20:35:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=R8y8TGX0c7GICYdeWHYI7P7Sjj1w1cimKb3k+maTCbs=; b=pi2WNcZTXEbtPg MnJFy3Y7VeIxW0J2Ufu4YIPm9uT3bsdC+jhekh5Tg8tQhuXzwghAf2z1bM567JIc0JmeHme8abFOv QkexyW3XJBxPZLLYcnBFftlAbofdwhSGjqSCIzVemQjAjX4RPa0M+52Yv7ySkfOLOp9VtMUcwEiXS zX/Bj5otGS467Tzy45tWDMtDXLBat37RLbKEUREsd4SM8VSXWpGPEcovYO8mVZZBLbtTV/FDUEBT6 45Zp//3Io8N4xepNJSKuoRmNLblu/sQ4LnrwRZtahPI8/brTBd5rI7dQJOy6jpsLuuURWppvjghrc j/LvNJS2ItJY0j8nj5wg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvNbn-00000001DY6-0ICH; Fri, 12 Apr 2024 20:34:51 +0000 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rvNbj-00000001DWR-15cN for linux-arm-kernel@lists.infradead.org; Fri, 12 Apr 2024 20:34:48 +0000 Received: by mail-pf1-x432.google.com with SMTP id d2e1a72fcca58-6ed627829e6so1259688b3a.1 for ; Fri, 12 Apr 2024 13:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1712954086; x=1713558886; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=oY4nkb56vAnwFBrxRJwfi/83hDDE+J6pWJ1yps5//Zc=; b=RFPT0IxUpNXXUWolkBrekeeeRd6z/1ERpVRFmSpqHDwzqTiUZFb3K4wG8TkaNLEs92 IQotGeSf+mYCxt23kJnkQbxfmKkKZV76vrBkty4YJBeS28zMCgi3ybQ4Nhe9YX6bv409 uRGETsWKaZvMHUWF40Ng6ySedcpeN21Q91sOjreYAWGzfZ0KiZogxBfLAxHsfz7CyE2O Z8ksqRa1J+0V1/t+oRPqYG1JPt86YbNC1KGvpbV76W9olqN1ms5CcG/aZLxrxX+3mYcH b1GePyP4Nt4cj3MkBBj2wd9VY8ETP+lWu/Ti+jKj87q3nHyc7MEjWEMv6KqSuLBFZZEV vD7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712954086; x=1713558886; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oY4nkb56vAnwFBrxRJwfi/83hDDE+J6pWJ1yps5//Zc=; b=vj+5Ff+k4ClLfvQurJ4oJSuzREm0bxwksTykNCZ4Fp0QiB+ddlAhqTQgvHK0kTm8tb kns7g50pEkqSzxxYbYBu/N16OfDmq9JHZK/yIvtPzooVGeimyuWgllhHLyC8UuvAr2QL mjElH76kfQkK6cYUJ19dLwoWtK+yFBu8oYqvY+1xT0lkjJHrIryrJzMF1TZmrRgD1tqT JTfy1kZ3tL/9UER0Z6ZndmPfWT+3zLew2wQby7xMXo/TF28srJGcd72o6zt1FNmD+uFO foGsFjwmeLFtCzOmXtj5NHfRuAv3OqbhDpvPQRob43m2l+imKPt2M6XHQKU0De34SIuf eg0w== X-Forwarded-Encrypted: i=1; AJvYcCXj7WA1asSWNRQgzxHD/wLgrs9mgTP9O/4/FijxsVFUowEdyzQLx4n+1owZ2Xam344OQIGf2QStLIgWGhG5UOf7zvDnq23jCD8ojurMg/ZvWA40QuQ= X-Gm-Message-State: AOJu0Yz0BaBvYJTxTV+72kuMWImePpkHzHGNwCfKdzNVX/2MxsMptXC0 LOtAAwSiRGxrtAC+ajwkEshB2FWpE8ubdften1rQu+LlgTnoVmv9PRb4NjT5uKw= X-Google-Smtp-Source: AGHT+IGaQmX55JTPMh7eewAl1uYqQxasuC3IownyYJh3ikhM4PX0keclRrzWoXOYcfZeNLyTHp36qA== X-Received: by 2002:a05:6a00:9aa:b0:6ed:435f:ec9b with SMTP id u42-20020a056a0009aa00b006ed435fec9bmr4550403pfg.20.1712954086437; Fri, 12 Apr 2024 13:34:46 -0700 (PDT) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id lr48-20020a056a0073b000b006e724ccdc3esm3270068pfb.55.2024.04.12.13.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Apr 2024 13:34:45 -0700 (PDT) Date: Fri, 12 Apr 2024 13:34:43 -0700 From: Charlie Jenkins To: Conor Dooley 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: 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> <20240412-earmark-sanction-810b7222cae5@spud> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240412-earmark-sanction-810b7222cae5@spud> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240412_133447_369898_CE53027B X-CRM114-Status: GOOD ( 50.61 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBcHIgMTIsIDIwMjQgYXQgMDg6MjY6MTJQTSArMDEwMCwgQ29ub3IgRG9vbGV5IHdy b3RlOgo+IE9uIEZyaSwgQXByIDEyLCAyMDI0IGF0IDExOjQ2OjIxQU0gLTA3MDAsIENoYXJsaWUg SmVua2lucyB3cm90ZToKPiA+IE9uIEZyaSwgQXByIDEyLCAyMDI0IGF0IDA3OjM4OjA0UE0gKzAx MDAsIENvbm9yIERvb2xleSB3cm90ZToKPiA+ID4gT24gRnJpLCBBcHIgMTIsIDIwMjQgYXQgMTA6 MDQ6MTdBTSAtMDcwMCwgRXZhbiBHcmVlbiB3cm90ZToKPiA+ID4gPiBPbiBGcmksIEFwciAxMiwg MjAyNCBhdCAzOjI24oCvQU0gQ29ub3IgRG9vbGV5IDxjb25vci5kb29sZXlAbWljcm9jaGlwLmNv bT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1LCBBcHIgMTEsIDIwMjQgYXQgMDk6 MTE6MDhQTSAtMDcwMCwgQ2hhcmxpZSBKZW5raW5zIHdyb3RlOgo+ID4gPiA+ID4gPiBUaGUgcmlz Y3ZfY3B1aW5mbyBzdHJ1Y3QgdGhhdCBjb250YWlucyBtdmVuZG9yaWQgYW5kIG1hcmNoaWQgaXMg bm90Cj4gPiA+ID4gPiA+IHBvcHVsYXRlZCB1bnRpbCBhbGwgaGFydHMgYXJlIGJvb3RlZCB3aGlj aCBoYXBwZW5zIGFmdGVyIHRoZSBEVCBwYXJzaW5nLgo+ID4gPiA+ID4gPiBVc2UgdGhlIHZlbmRv cmlkL2FyY2hpZCB2YWx1ZXMgZnJvbSB0aGUgRFQgaWYgYXZhaWxhYmxlIG9yIGFzc3VtZSBhbGwK PiA+ID4gPiA+ID4gaGFydHMgaGF2ZSB0aGUgc2FtZSB2YWx1ZXMgYXMgdGhlIGJvb3QgaGFydCBh cyBhIGZhbGxiYWNrLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBGaXhlczogZDgyZjMyMjAyZTBk ICgiUklTQy1WOiBJZ25vcmUgViBmcm9tIHRoZSByaXNjdixpc2EgRFQgcHJvcGVydHkgb24gb2xk ZXIgVC1IZWFkIENQVXMiKQo+ID4gPiA+ID4KPiA+ID4gPiA+IElmIHRoaXMgaXMgb3VyIG9ubHkg dXNlIGNhc2UgZm9yIGdldHRpbmcgdGhlIG12ZW5kb3JpZC9tYXJjaGlkIHN0dWZmCj4gPiA+ID4g PiBmcm9tIGR0LCB0aGVuIEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIGFkZCBpdC4gTm9uZSBvZiB0 aGUgZGV2aWNldHJlZXMKPiA+ID4gPiA+IHRoYXQgdGhlIGNvbW1pdCB5b3UncmUgZml4aW5nIGhl cmUgYWRkcmVzc2VzIHdpbGwgaGF2ZSB0aGVzZSBwcm9wZXJ0aWVzCj4gPiA+ID4gPiBhbmQgaWYg dGhleSBkaWQgaGF2ZSB0aGVtLCB0aGV5J2QgdGhlbiBhbHNvIGJlIG5ldyBlbm91Z2ggdG8gaG9w ZWZ1bGx5Cj4gPiA+ID4gPiBub3QgaGF2ZSAidiIgZWl0aGVyIC0gdGhlIGlzc3VlIGlzIHRoZXkn cmUgdXNpbmcgd2hhdGV2ZXIgY3JhcCB0aGUKPiA+ID4gPiA+IHZlbmRvciBzaGlwcGVkLgo+ID4g PiA+ID4gSWYgd2UncmUgZ29ubmEgZ2V0IHRoZSBpbmZvcm1hdGlvbiBmcm9tIERULCB3ZSBhbHJl YWR5IGhhdmUgc29tZXRoaW5nCj4gPiA+ID4gPiB0aGF0IHdlIGNhbiBsb29rIGF0IHRvIHBlcmZv cm0gdGhlIGRpc2FibGUgYXMgdGhlIGNwdSBjb21wYXRpYmxlcyBnaXZlCj4gPiA+ID4gPiB1cyBl bm91Z2ggaW5mb3JtYXRpb24gdG8gbWFrZSB0aGUgZGVjaXNpb24uCj4gPiA+ID4gPgo+ID4gPiA+ ID4gSSBhbHNvIHRoaW5rIHRoYXQgd2UgY291bGQganVzdCBjYWNoZSB0aGUgYm9vdCBDUFUncyBt YXJjaGlkL212ZW5kb3JpZCwKPiA+ID4gPiA+IHNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0byBsb29r IGF0IGl0IGluIHJpc2N2X2ZpbGxfY3B1X21mcl9pbmZvKCksIGF2b2lkCj4gPiA+ID4gPiByZXBl YXRpbmcgdGhlc2UgZWNhbGxzIG9uIGFsbCBzeXN0ZW1zLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFBl cmhhcHMgZm9yIG5vdyB3ZSBjb3VsZCBqdXN0IGxvb2sgYXQgdGhlIGJvb3QgQ1BVIGFsb25lPyBU byBteQo+ID4gPiA+ID4ga25vd2xlZGdlIHRoZSBzeXN0ZW1zIHRoYXQgdGhpcyB0YXJnZXRzIGFs bCBoYXZlIGhvbW9nZW5lb3VzCj4gPiA+ID4gPiBtYXJjaGlkL212ZW5kb3JpZCB2YWx1ZXMgb2Yg MHgwLgo+ID4gPiA+IAo+ID4gPiA+IEl0J3MgcG9zc2libGUgSSdtIG1pc2ludGVycHJldGluZywg YnV0IGlzIHRoZSBzdWdnZXN0aW9uIHRvIGFwcGx5IHRoZQo+ID4gPiA+IG1hcmNoaWQvbXZlbmRv cmlkIHdlIGZpbmQgb24gdGhlIGJvb3QgQ1BVIGFuZCBhc3N1bWUgaXQncyB0aGUgc2FtZSBvbgo+ ID4gPiA+IGFsbCBvdGhlciBDUFVzPyBTaW5jZSB3ZSdyZSByZXBvcnRpbmcgdGhlIG1hcmNoaWQv bXZlbmRvcmlkL21pbXBpZCB0bwo+ID4gPiA+IHVzZXJtb2RlIGluIGEgcGVyLWhhcnQgd2F5LCBp dCB3b3VsZCBiZSBiZXR0ZXIgSU1PIGlmIHdlIHJlYWxseSBkbwo+ID4gPiA+IHF1ZXJ5IG1hcmNo aWQvbXZlbmRvcmlkL21pbXBpZCBvbiBlYWNoIGhhcnQuIFRoZSBwcm9ibGVtIHdpdGggYXBwbHlp bmcKPiA+ID4gPiB0aGUgYm9vdCBDUFUncyB2YWx1ZSBldmVyeXdoZXJlIGlzIGlmIHdlJ3JlIGV2 ZXIgd3JvbmcgaW4gdGhlIGZ1dHVyZQo+ID4gPiA+IChpZSB0aGF0IGFzc3VtcHRpb24gZG9lc24n dCBob2xkIG9uIHNvbWUgbWFjaGluZSksIHdlJ2xsIG9ubHkgZmluZCBvdXQKPiA+ID4gPiBhYm91 dCBpdCBhZnRlciB0aGUgZmFjdC4gU2luY2Ugd2UgcmVwb3J0ZWQgdGhlIHdyb25nIGluZm9ybWF0 aW9uIHRvCj4gPiA+ID4gdXNlcm1vZGUgdmlhIGh3cHJvYmUsIGl0J2xsIGJlIGFuIHVnbHkgdXNl cnNwYWNlIEFCSSBpc3N1ZSB0byBjbGVhbgo+ID4gPiA+IHVwLgo+ID4gPiAKPiA+ID4gWW91J3Jl IG1pc2ludGVycHJldGluZywgd2UgZG8gZ2V0IHRoZSB2YWx1ZXMgb24gYWxsIGluZGl2aWR1YWxs eSBhcwo+ID4gPiB0aGV5J3JlIGJyb3VnaHQgb25saW5lLiBUaGlzIGlzIG9ubHkgdXNlZCBieSB0 aGUgY29kZSB0aGF0IHRocm93cyBhIGJvbmUKPiA+ID4gdG8gcGVvcGxlIHdpdGggY3JhcHB5IHZl bmRvciBkdGJzIHRoYXQgcHV0ICJ2IiBpbiByaXNjdixpc2Egd2hlbiB0aGV5Cj4gPiA+IHN1cHBv cnQgdGhlIHVucmF0aWZpZWQgdmVyc2lvbi4KPiA+IAo+ID4gTm90IHF1aXRlLAo+IAo+IFJlbWVt YmVyIHRoYXQgdGhpcyBwYXRjaCBzdGFuZHMgaW4gaXNvbGF0aW9uIGFuZCB0aGUganVzdGlmaWNh dGlvbiBnaXZlbgo+IGluIHlvdXIgY29tbWl0IG1lc3NhZ2UgZG9lcyBub3QgbWVudGlvbiBhbnl0 aGluZyBvdGhlciB0aGFuIGZpeGluZyBteQo+IGJyb2tlbiBwYXRjaC4KCkZpeGluZyB0aGUgcGF0 Y2ggaW4gdGhlIHNpbXBsZXN0IHNlbnNlIHdvdWxkIGJlIHRvIGVhZ2VybHkgZ2V0IHRoZQptdmVu ZG9yaWQvbWFyY2hpZCB3aXRob3V0IHVzaW5nIHRoZSBjYWNoZWQgdmVyc2lvbi4gQnV0IHRoaXMg YXNzdW1lcwp0aGF0IGFsbCBoYXJ0cyBoYXZlIHRoZSBzYW1lIG12ZW5kb3JpZC9tYXJjaGlkLiBU aGlzIGlzIG5vdCBzb21ldGhpbmcKdGhhdCBJIGFtIHN0cm9uZ2x5IGF0dGFjaGVkIHRvLiBJZiBp dCB0cnVseSBpcyBkZXRyaW1lbnRhbCB0byBMaW51eCB0bwphbGxvdyBhIHVzZXIgYSB3YXkgdG8g c3BlY2lmeSBkaWZmZXJlbnQgdmVuZG9yaWRzIGZvciBkaWZmZXJlbnQgaGFydHMKdGhlbiBJIHdp bGwgcmVtb3ZlIHRoYXQgY29kZS4KCi0gQ2hhcmxpZQoKPiAKPiA+IHRoZSBhbHRlcm5hdGl2ZXMg YXJlIHBhdGNoZWQgYmVmb3JlIHRoZSBvdGhlciBjcHVzIGFyZQo+ID4gYm9vdGVkLCBzbyB0aGUg YWx0ZXJuYXRpdmVzIHdpbGwgaGF2ZSBmYWxzZSBwb3NpdGl2ZXMgcmVzdWx0aW5nIGluCj4gPiBi cm9rZW4ga2VybmVscy4KPiAKPiBPdmVyLWVhZ2VybHkgZGlzYWJsaW5nIHZlY3RvciBpc24ndCBn b2luZyB0byBicmVhayBhbnkga2VybmVscyBhbmQKPiByZWFsbHkgc2hvdWxkIG5vdCBicmVhayBh IGJlaGF2aW5nIHVzZXJzcGFjZSBlaXRoZXIuCj4gVW5kZXItZWFnZXJseSBkaXNhYmxpbmcgaXQg KGluIGEgd2F5IHRoYXQgdGhpcyBhcHByb2FjaCBjb3VsZCBzb2x2ZSkgaXMKPiBvbmx5IGdvaW5n IHRvIGhhcHBlbiBvbiBhIHN5c3RlbSB3aGVyZSB0aGUgYm9vdCBoYXJ0IGhhcyBub24temVybyB2 YWx1ZXMKPiBhbmQgY2xhaW1zIHN1cHBvcnQgZm9yIHYgYnV0IGEgbm9uLWJvb3QgaGFydCBoYXMg emVybyB2YWx1ZXMgYW5kCj4gY2xhaW1zIHN1cHBvcnQgZm9yIHYgYnV0IGFjdHVhbGx5IGRvZXNu J3QgaW1wbGVtZW50IHRoZSByYXRpZmllZCB2ZXJzaW9uLgo+IElmIHRoZSBib290IGhhcnQgZG9l c24ndCBzdXBwb3J0IHYsIHRoZW4gd2UgY3VycmVudGx5IGRpc2FibGUgdGhlCj4gZXh0ZW5zaW9u IGFzIG9ubHkgaG9tb2dlbmVvdXMgc3R1ZmYgaXMgc3VwcG9ydGVkIGJ5IExpbnV4LiBJZiB0aGUg Ym9vdAo+IGhhcnQgY2xhaW1zIHN1cHBvcnQgZm9yICJ2IiBidXQgZG9lc24ndCBhY3R1YWxseSBp bXBsZW1lbnQgdGhlIHJhdGlmaWVkCj4gdmVyc2lvbiBuZWl0aGVyIHRoZSBpbnRlbnQgb2YgbXkg b3JpZ2luYWwgcGF0Y2ggbm9yIHRoaXMgZml4IGZvciBpdCBhcmUKPiBnb2luZyB0byBoZWxwIGF2 b2lkIGEgYnJva2VuIGtlcm5lbC4KPiAKPiBJIHRoaW5rIHdlIGRvIGhhdmUgYSBwcm9ibGVtIGlm IHRoZSBib290IGNwdSBoYXZpbmcgc29tZSBlcnJhdHVtIGxlYWRzCj4gdG8gdGhlIGtlcm5lbCBi ZWluZyBwYXRjaGVkIGluIGEgd2F5IHRoYXQgZG9lcyBub3Qgd29yayBmb3IgdGhlIG90aGVyCj4g Q1BVcyBvbiB0aGUgc3lzdGVtLCBidXQgSSBkb24ndCB0aGluayB0aGlzIHNlcmllcyBhZGRyZXNz ZXMgdGhhdCBzb3J0IG9mCj4gaXNzdWUgYXQgYWxsIGFzIHlvdSdkIGJlIGFkZGluZyBjb2RlIHRv IHRoZSBwaSBzZWN0aW9uIGlmIHlvdSB3ZXJlIGZpeGluZwo+IGl0LiBJIGFsc28gZG9uJ3QgdGhp bmsgd2Ugc2hvdWxkIGJlIG1ha2luZyBwcmUtZW1wdGl2ZSBjaGFuZ2VzIHRvIHRoZQo+IGVycmF0 YSBwYXRjaGluZyBjb2RlIGVpdGhlciB0byBzb2x2ZSB0aGF0IHNvcnQgb2YgcHJvYmxlbSwgdW50 aWwgYW4gU29DCj4gc2hvd3MgdXAgd2hlcmUgdGhpbmdzIGRvbid0IHdvcmsuCj4gQ2hlZXJzLAo+ IENvbm9yLgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmlu ZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9s aW51eC1hcm0ta2VybmVsCg==