From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (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 5CFF8161320 for ; Wed, 1 May 2024 19:50:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714593006; cv=none; b=PZci+DnNjXViZ+i0jes8UkYHYGFwscaNYVwgVv7qdrY2Y+7ETslk8oTduYTu3x5bedW++7XIpFCM5CHNNN+pTsAoiWT/AfdcGQVZMY27VDoOUVm/YeC/r115pMYCx6bpDX1RM2O07LMp5yld0hCzz4dlQkWXxH/aQFZ2+frRCXk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714593006; c=relaxed/simple; bh=oyZJUusiRyA5GyxmKkv+S7LjsUCEF3Be29K5PtGNulE=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=BAgF9KbjZUn8xkkBU7ILbAgyZVCNk5wY0AHlpgyK3C+gGkWxpSw4lyOCIlcPob0B+w1vvX8wwFp09617kxZAHZvC+Qcq21veH4eOFVA3TBbGtjIA6sKpVyLmXYsHZ5iakc7rIiENRRoqkCworBnAxsITqVU1fLBOKqSEv0Ty/DM= 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=a2GtUskW; arc=none smtp.client-ip=209.85.214.169 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="a2GtUskW" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-1ec69e3dbe5so15600465ad.0 for ; Wed, 01 May 2024 12:50:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1714593004; x=1715197804; 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=kM7igPbGNIJ+0fwn0lbbaNAmJqgtIXaZke4GyfyWn/8=; b=a2GtUskWl+1Xd0ob4jUK/pqcjwpFrNKJmaFbGq61ibwBmlnQWMyiLwY/3bo69OsIum 3HHM+/M0HK/SQobfDB26uVzi9yzj3rTq9PDh1EzF0SnvivugfxzkT30sr1y6QPfps1by w6sRK0wOWoNZHGPv+Wyiq+79NPx9L4c7YgjN4ztL6disbzRjtXtmC7P18irCV6PM4+Ob GNY0bAlvBrH6rSU9nxwgSJZ9pQV1WBxUY73ZcYK48MwG4aFvZjeyuMUVkcNKqZ8UqwEb RvIwO5RHjonc1FnoUvghE6cCPFqUvYIrEDi6sIujIjgHgPZiSt99yBDjNyCa6BmdYgh0 fqXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714593004; x=1715197804; 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=kM7igPbGNIJ+0fwn0lbbaNAmJqgtIXaZke4GyfyWn/8=; b=qecj6GsqMYnh80Zb8yVVxvalWVVnBiVPwrN7M4WBAnCHC7N9lEr4EMYpZx8S2QUn8r fGsFzX3MAhYfdu5tFGwwlcextwbyt6EWlTjg4qRA963hba7beSPDD2cjxvimKOgQa5sH JJUBYc4blfNlQbH/DbU1Z9t7pC5zIXXjkqNg7yeBoZVJa3bOeK9q+wa9QZ4DWGR75AdD n+kRXND/ahdWhgGfBx4bwSUH9V0vPxB6zGHhRkqLmfl8BCC7Fq1iPIKkcyXoMba85wQb W0yGSbGf+++alz6dQu8Hzvh/o3N5SFp2k2fN56ynRuqZBAvUZu2JGFzn5/+opIPP1Aan BoeQ== X-Forwarded-Encrypted: i=1; AJvYcCUXSezkdmV7Bta/wnlREydWF0Y9UMxhdGcyQSzKJ2AeJyzt+33RV4yKLIDK62V5mLRd38LYGbHnpkVh4r5N9lgqTbXvvvyPjy/x X-Gm-Message-State: AOJu0YxPOikPu0m5+baL5YDc1DX8EHlJy9A6UH/VUZFkhyCtG7Cf9wQO /0nijTZdG3wrlclrTrer3qrbti3YtOv8RHf56KVnZhhWszZUBG0R7HAiYXdi7wo= X-Google-Smtp-Source: AGHT+IEM9fmEb38/w0za+GhL/Bs4gNsrL8TDtcaUQyFaus75t0OZHyuBFHHkotx6pRktXL7bXsD+Pw== X-Received: by 2002:a17:902:7447:b0:1e9:668d:a446 with SMTP id e7-20020a170902744700b001e9668da446mr2993950plt.20.1714593003680; Wed, 01 May 2024 12:50:03 -0700 (PDT) Received: from ghost ([2601:647:5700:6860:1dcc:e03e:dc61:895d]) by smtp.gmail.com with ESMTPSA id d10-20020a170902728a00b001ecd65e58d2sm220881pll.85.2024.05.01.12.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 May 2024 12:50:03 -0700 (PDT) Date: Wed, 1 May 2024 12:50:00 -0700 From: Charlie Jenkins To: Evan Green Cc: Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Guo Ren , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Conor Dooley , =?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 v4 13/16] riscv: hwprobe: Add thead vendor extension probing Message-ID: References: <20240426-dev-charlie-support_thead_vector_6_9-v4-0-5cf53b5bc492@rivosinc.com> <20240426-dev-charlie-support_thead_vector_6_9-v4-13-5cf53b5bc492@rivosinc.com> 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: On Wed, May 01, 2024 at 09:46:00AM -0700, Evan Green wrote: > On Fri, Apr 26, 2024 at 2:37 PM Charlie Jenkins wrote: > > > > Add a new hwprobe key "RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0" which > > allows userspace to probe for the new RISCV_ISA_VENDOR_EXT_XTHEADVECTOR > > vendor extension. > > > > This new key will allow userspace code to probe for which thead vendor > > extensions are supported. This API is modeled to be consistent with > > RISCV_HWPROBE_KEY_IMA_EXT_0. The bitmask returned will have each bit > > corresponding to a supported thead vendor extension of the cpumask set. > > Just like RISCV_HWPROBE_KEY_IMA_EXT_0, this allows a userspace program > > to determine all of the supported thead vendor extensions in one call. > > > > Signed-off-by: Charlie Jenkins > > --- > > arch/riscv/include/asm/hwprobe.h | 4 +-- > > .../include/asm/vendor_extensions/thead_hwprobe.h | 11 ++++++ > > arch/riscv/include/uapi/asm/hwprobe.h | 3 +- > > arch/riscv/include/uapi/asm/vendor/thead.h | 3 ++ > > arch/riscv/kernel/sys_hwprobe.c | 9 +++++ > > arch/riscv/kernel/vendor_extensions/Makefile | 1 + > > .../riscv/kernel/vendor_extensions/thead_hwprobe.c | 42 ++++++++++++++++++++++ > > 7 files changed, 70 insertions(+), 3 deletions(-) > > > > diff --git a/arch/riscv/include/asm/hwprobe.h b/arch/riscv/include/asm/hwprobe.h > > index 630507dff5ea..e68496b4f8de 100644 > > --- a/arch/riscv/include/asm/hwprobe.h > > +++ b/arch/riscv/include/asm/hwprobe.h > > @@ -1,6 +1,6 @@ > > /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > > /* > > - * Copyright 2023 Rivos, Inc > > + * Copyright 2023-2024 Rivos, Inc > > */ > > > > #ifndef _ASM_HWPROBE_H > > @@ -8,7 +8,7 @@ > > > > #include > > > > -#define RISCV_HWPROBE_MAX_KEY 6 > > +#define RISCV_HWPROBE_MAX_KEY 7 > > > > static inline bool riscv_hwprobe_key_is_valid(__s64 key) > > { > > diff --git a/arch/riscv/include/asm/vendor_extensions/thead_hwprobe.h b/arch/riscv/include/asm/vendor_extensions/thead_hwprobe.h > > new file mode 100644 > > index 000000000000..907cfc4eb4dc > > --- /dev/null > > +++ b/arch/riscv/include/asm/vendor_extensions/thead_hwprobe.h > > @@ -0,0 +1,11 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#ifndef _ASM_RISCV_VENDOR_EXTENSIONS_THEAD_HWPROBE_H > > +#define _ASM_RISCV_VENDOR_EXTENSIONS_THEAD_HWPROBE_H > > + > > +#include > > + > > +#include > > + > > +void hwprobe_isa_vendor_ext_thead_0(struct riscv_hwprobe *pair, const struct cpumask *cpus); > > + > > +#endif > > diff --git a/arch/riscv/include/uapi/asm/hwprobe.h b/arch/riscv/include/uapi/asm/hwprobe.h > > index 9f2a8e3ff204..21e96a63f9ea 100644 > > --- a/arch/riscv/include/uapi/asm/hwprobe.h > > +++ b/arch/riscv/include/uapi/asm/hwprobe.h > > @@ -1,6 +1,6 @@ > > /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > > /* > > - * Copyright 2023 Rivos, Inc > > + * Copyright 2023-2024 Rivos, Inc > > */ > > > > #ifndef _UAPI_ASM_HWPROBE_H > > @@ -67,6 +67,7 @@ struct riscv_hwprobe { > > #define RISCV_HWPROBE_MISALIGNED_UNSUPPORTED (4 << 0) > > #define RISCV_HWPROBE_MISALIGNED_MASK (7 << 0) > > #define RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE 6 > > +#define RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0 7 > > /* Increase RISCV_HWPROBE_MAX_KEY when adding items. */ > > > > /* Flags */ > > diff --git a/arch/riscv/include/uapi/asm/vendor/thead.h b/arch/riscv/include/uapi/asm/vendor/thead.h > > new file mode 100644 > > index 000000000000..43790ebe5faf > > --- /dev/null > > +++ b/arch/riscv/include/uapi/asm/vendor/thead.h > > @@ -0,0 +1,3 @@ > > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > > + > > +#define RISCV_HWPROBE_VENDOR_EXT_XTHEADVECTOR (1 << 0) > > diff --git a/arch/riscv/kernel/sys_hwprobe.c b/arch/riscv/kernel/sys_hwprobe.c > > index 8cae41a502dd..e59cac545df5 100644 > > --- a/arch/riscv/kernel/sys_hwprobe.c > > +++ b/arch/riscv/kernel/sys_hwprobe.c > > @@ -13,6 +13,7 @@ > > #include > > #include > > #include > > +#include > > #include > > > > > > @@ -216,6 +217,14 @@ static void hwprobe_one_pair(struct riscv_hwprobe *pair, > > pair->value = riscv_cboz_block_size; > > break; > > > > + case RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0: > > +#ifdef CONFIG_RISCV_ISA_VENDOR_EXT_THEAD > > + hwprobe_isa_vendor_ext_thead_0(pair, cpus); > > +#else > > + pair->value = 0; > > +#endif > > Could we move this ifdef into the header by declaring a dummy > hwprobe_isa_vendor_ext_thead_0() in the header for the !ENABLED case? Whoops I didn't respond to this in my last message, this is a good idea, thanks! - Charlie > > > + break; > > + > > /* > > * For forward compatibility, unknown keys don't fail the whole > > * call, but get their element key set to -1 and value set to 0 > > diff --git a/arch/riscv/kernel/vendor_extensions/Makefile b/arch/riscv/kernel/vendor_extensions/Makefile > > index 8f1c5a4dc38f..f511fd269e8a 100644 > > --- a/arch/riscv/kernel/vendor_extensions/Makefile > > +++ b/arch/riscv/kernel/vendor_extensions/Makefile > > @@ -1,4 +1,5 @@ > > # SPDX-License-Identifier: GPL-2.0-only > > > > obj-$(CONFIG_RISCV_ISA_VENDOR_EXT_THEAD) += thead.o > > +obj-$(CONFIG_RISCV_ISA_VENDOR_EXT_THEAD) += thead_hwprobe.o > > obj-$(CONFIG_RISCV_ISA_VENDOR_EXT_ANDES) += andes.o > > diff --git a/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c b/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c > > new file mode 100644 > > index 000000000000..e8e2de292032 > > --- /dev/null > > +++ b/arch/riscv/kernel/vendor_extensions/thead_hwprobe.c > > @@ -0,0 +1,42 @@ > > +// SPDX-License-Identifier: GPL-2.0-only > > + > > +#include > > +#include > > +#include > > + > > +#include > > +#include > > + > > +#include > > +#include > > + > > +void hwprobe_isa_vendor_ext_thead_0(struct riscv_hwprobe *pair, const struct cpumask *cpus) > > +{ > > + /* > > + * Loop through and record extensions that 1) anyone has, and 2) anyone > > + * doesn't have. > > + */ > > + > > + struct riscv_isainfo *per_hart_thead_bitmap = riscv_isa_vendor_ext_list_thead.per_hart_vendor_bitmap; > > + int cpu; > > + u64 missing; > > + > > + for_each_cpu(cpu, cpus) { > > + struct riscv_isainfo *isainfo = &per_hart_thead_bitmap[cpu]; > > + > > +#define EXT_KEY(ext) \ > > + do { \ > > + if (__riscv_isa_extension_available(isainfo->isa, RISCV_ISA_VENDOR_EXT_##ext)) \ > > + pair->value |= RISCV_HWPROBE_VENDOR_EXT_##ext; \ > > + else \ > > + missing |= RISCV_HWPROBE_VENDOR_EXT_##ext; \ > > + } while (false) > > + > > + EXT_KEY(XTHEADVECTOR); > > + > > +#undef EXT_KEY > > + } > > + > > + /* Now turn off reporting features if any CPU is missing it. */> + pair->value &= ~missing; > > +} > > Something to consider, perhaps when there's a second vendor, is how we > might reduce this boilerplate on the second vendor. Probably best to > wait though until we know exactly what the commonalities are. This > looks good for now. > > > > > > -- > > 2.44.0 > > 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 C3440C4345F for ; Wed, 1 May 2024 19:50:11 +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=wHd6ObsRcy5VpYquCi4myZNT7/V/8MkkHwPaPLQgK1o=; b=3EDlSLVy/tHQkQ VOSfVzt8eBsfXWuc1qPRivx0Xtlm+WEZd165tZDqJV3zMBmlV6deoxQqNgLGHl/hG0iYYsLL8DCUp kbFMgBW7gI6YLJZP/xm8WVHMpMcJzg6oQORZwEtVQtTyuWdb9JOrEknpRAg9ZPL4NZPC8OTPfp7wq OTL8sN8lwfxMuBJDf9+w9NuWvTddqs+4zB1m/sFTE8WIGtPg06nSahg9KhrI5vKF0LecaTvklvLUe uhLVVylpUFgJwparlfROgPmsjmwEKwPdDyqI5HgsBBBUwtxbwHCtwnAi5OdCssRlngO9ILFbPAQl/ yA1xtoFTXZR/WMvUed4g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s2Fxv-0000000AZ6B-2Wfv; Wed, 01 May 2024 19:50:07 +0000 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s2Fxs-0000000AZ4Y-3o9P for linux-riscv@lists.infradead.org; Wed, 01 May 2024 19:50:06 +0000 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-1e86d56b3bcso65659975ad.1 for ; Wed, 01 May 2024 12:50:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1714593004; x=1715197804; 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=kM7igPbGNIJ+0fwn0lbbaNAmJqgtIXaZke4GyfyWn/8=; b=Euk9MHNK5sQQ/C7GGoPOyrw2wnGIYkWK2/jpMX5XhR8ncNc/3/8UzSCwb3Y3gk10pA lNadfSIgWwHD63zVA3cEdLthRyaxkmJUmPcbNaF01RHh3QnswGHm+HauisrYW4Eqh1fw t0nCeO4PiRLuOqS9NU2DXnbLu2yVddFmfFrDwZxd6XmimqXA6km/ERviwA5W1D70vaBD UT5uThKHil3SYeCdpmmIAEEbKAuDtpooC36zrJQhIH96f3ddLtSKVHNTlIBVDtFa/6nv aS7mBlH4MBbuXmVGRU0r57Jwwuzo9kE+Xs5KHKAoJkJdzGgJtIZT6fd6EC7DuIUty5UM vQ5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714593004; x=1715197804; 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=kM7igPbGNIJ+0fwn0lbbaNAmJqgtIXaZke4GyfyWn/8=; b=uVxwlRVr+V9V42kemcG7Na00zRRS2OYOypaMgpkQubZsT3UEu3VmgqU8QgdvcNs4Y2 YqPGLn+Z+ErDWASDbDyGMWECVZZdcMWxqD9vFghbcssu9AwWjxDrEOmurqETm6CtM9qG Q3njZsxSXm901F87uHsx5dshEZyggfT1bPP3dvPwVURBQSZG5dLscZ34ausQ2ngSIHoP SLhyFBjxG9xWt1X8PSLZXj675+IDyPBKrtbNIT+Ykdk++07W/4I8tnKWAl9psmiIPFdv JeNXZ9GqufyUbtDzILqjsv7epKeInRrz7WyID1KumdwjvZ2wLdvbiJhhvYOT37/vn3KU Zn+A== X-Forwarded-Encrypted: i=1; AJvYcCVy2I/poSxfbKXhmP65PTVyCP1AbRsV2hDzgSX/ccKPdaNlj+w2s6rLMohuf24DpJnnE/TUrkevtMKSQtLQ4yYGrBaRnvtdBSLPC5QcfPGQ X-Gm-Message-State: AOJu0Yzd4fcM5SBTkYa0DgyW/anJ/uc7Az81kzVCbUPZGNNHINWl/4M5 zdpCvzfs9JckygWNFpIAQ4vnA8bWF0q5YShM3yT1MEJJUyHL9u/gmdXekAYyCIs= X-Google-Smtp-Source: AGHT+IEM9fmEb38/w0za+GhL/Bs4gNsrL8TDtcaUQyFaus75t0OZHyuBFHHkotx6pRktXL7bXsD+Pw== X-Received: by 2002:a17:902:7447:b0:1e9:668d:a446 with SMTP id e7-20020a170902744700b001e9668da446mr2993950plt.20.1714593003680; Wed, 01 May 2024 12:50:03 -0700 (PDT) Received: from ghost ([2601:647:5700:6860:1dcc:e03e:dc61:895d]) by smtp.gmail.com with ESMTPSA id d10-20020a170902728a00b001ecd65e58d2sm220881pll.85.2024.05.01.12.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 May 2024 12:50:03 -0700 (PDT) Date: Wed, 1 May 2024 12:50:00 -0700 From: Charlie Jenkins To: Evan Green Cc: Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Guo Ren , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Conor Dooley , =?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 v4 13/16] riscv: hwprobe: Add thead vendor extension probing Message-ID: References: <20240426-dev-charlie-support_thead_vector_6_9-v4-0-5cf53b5bc492@rivosinc.com> <20240426-dev-charlie-support_thead_vector_6_9-v4-13-5cf53b5bc492@rivosinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240501_125004_994715_DFB901AE X-CRM114-Status: GOOD ( 37.61 ) 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 T24gV2VkLCBNYXkgMDEsIDIwMjQgYXQgMDk6NDY6MDBBTSAtMDcwMCwgRXZhbiBHcmVlbiB3cm90 ZToKPiBPbiBGcmksIEFwciAyNiwgMjAyNCBhdCAyOjM34oCvUE0gQ2hhcmxpZSBKZW5raW5zIDxj aGFybGllQHJpdm9zaW5jLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQWRkIGEgbmV3IGh3cHJvYmUga2V5 ICJSSVNDVl9IV1BST0JFX0tFWV9WRU5ET1JfRVhUX1RIRUFEXzAiIHdoaWNoCj4gPiBhbGxvd3Mg dXNlcnNwYWNlIHRvIHByb2JlIGZvciB0aGUgbmV3IFJJU0NWX0lTQV9WRU5ET1JfRVhUX1hUSEVB RFZFQ1RPUgo+ID4gdmVuZG9yIGV4dGVuc2lvbi4KPiA+Cj4gPiBUaGlzIG5ldyBrZXkgd2lsbCBh bGxvdyB1c2Vyc3BhY2UgY29kZSB0byBwcm9iZSBmb3Igd2hpY2ggdGhlYWQgdmVuZG9yCj4gPiBl eHRlbnNpb25zIGFyZSBzdXBwb3J0ZWQuIFRoaXMgQVBJIGlzIG1vZGVsZWQgdG8gYmUgY29uc2lz dGVudCB3aXRoCj4gPiBSSVNDVl9IV1BST0JFX0tFWV9JTUFfRVhUXzAuIFRoZSBiaXRtYXNrIHJl dHVybmVkIHdpbGwgaGF2ZSBlYWNoIGJpdAo+ID4gY29ycmVzcG9uZGluZyB0byBhIHN1cHBvcnRl ZCB0aGVhZCB2ZW5kb3IgZXh0ZW5zaW9uIG9mIHRoZSBjcHVtYXNrIHNldC4KPiA+IEp1c3QgbGlr ZSBSSVNDVl9IV1BST0JFX0tFWV9JTUFfRVhUXzAsIHRoaXMgYWxsb3dzIGEgdXNlcnNwYWNlIHBy b2dyYW0KPiA+IHRvIGRldGVybWluZSBhbGwgb2YgdGhlIHN1cHBvcnRlZCB0aGVhZCB2ZW5kb3Ig ZXh0ZW5zaW9ucyBpbiBvbmUgY2FsbC4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFybGllIEpl bmtpbnMgPGNoYXJsaWVAcml2b3NpbmMuY29tPgo+ID4gLS0tCj4gPiAgYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9od3Byb2JlLmggICAgICAgICAgICAgICAgICAgfCAgNCArLS0KPiA+ICAuLi4vaW5j bHVkZS9hc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5oICB8IDExICsrKysrKwo+ ID4gIGFyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmggICAgICAgICAgICAgIHwg IDMgKy0KPiA+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vdmVuZG9yL3RoZWFkLmggICAg ICAgICB8ICAzICsrCj4gPiAgYXJjaC9yaXNjdi9rZXJuZWwvc3lzX2h3cHJvYmUuYyAgICAgICAg ICAgICAgICAgICAgfCAgOSArKysrKwo+ID4gIGFyY2gvcmlzY3Yva2VybmVsL3ZlbmRvcl9leHRl bnNpb25zL01ha2VmaWxlICAgICAgIHwgIDEgKwo+ID4gIC4uLi9yaXNjdi9rZXJuZWwvdmVuZG9y X2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5jIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKwo+ ID4gIDcgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+ Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od3Byb2JlLmggYi9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUuaAo+ID4gaW5kZXggNjMwNTA3ZGZmNWVhLi5lNjg0 OTZiNGY4ZGUgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUu aAo+ID4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od3Byb2JlLmgKPiA+IEBAIC0xLDYg KzEsNiBAQAo+ID4gIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGlu dXgtc3lzY2FsbC1ub3RlICovCj4gPiAgLyoKPiA+IC0gKiBDb3B5cmlnaHQgMjAyMyBSaXZvcywg SW5jCj4gPiArICogQ29weXJpZ2h0IDIwMjMtMjAyNCBSaXZvcywgSW5jCj4gPiAgICovCj4gPgo+ ID4gICNpZm5kZWYgX0FTTV9IV1BST0JFX0gKPiA+IEBAIC04LDcgKzgsNyBAQAo+ID4KPiA+ICAj aW5jbHVkZSA8dWFwaS9hc20vaHdwcm9iZS5oPgo+ID4KPiA+IC0jZGVmaW5lIFJJU0NWX0hXUFJP QkVfTUFYX0tFWSA2Cj4gPiArI2RlZmluZSBSSVNDVl9IV1BST0JFX01BWF9LRVkgNwo+ID4KPiA+ ICBzdGF0aWMgaW5saW5lIGJvb2wgcmlzY3ZfaHdwcm9iZV9rZXlfaXNfdmFsaWQoX19zNjQga2V5 KQo+ID4gIHsKPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3ZlbmRvcl9l eHRlbnNpb25zL3RoZWFkX2h3cHJvYmUuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdmVuZG9y X2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5oCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4g aW5kZXggMDAwMDAwMDAwMDAwLi45MDdjZmM0ZWI0ZGMKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsr KyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9i ZS5oCj4gPiBAQCAtMCwwICsxLDExIEBACj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAgKi8KPiA+ICsjaWZuZGVmIF9BU01fUklTQ1ZfVkVORE9SX0VYVEVOU0lPTlNfVEhF QURfSFdQUk9CRV9ICj4gPiArI2RlZmluZSBfQVNNX1JJU0NWX1ZFTkRPUl9FWFRFTlNJT05TX1RI RUFEX0hXUFJPQkVfSAo+ID4gKwo+ID4gKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Cj4gPiAr Cj4gPiArI2luY2x1ZGUgPHVhcGkvYXNtL2h3cHJvYmUuaD4KPiA+ICsKPiA+ICt2b2lkIGh3cHJv YmVfaXNhX3ZlbmRvcl9leHRfdGhlYWRfMChzdHJ1Y3QgcmlzY3ZfaHdwcm9iZSAqcGFpciwgY29u c3Qgc3RydWN0IGNwdW1hc2sgKmNwdXMpOwo+ID4gKwo+ID4gKyNlbmRpZgo+ID4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmggYi9hcmNoL3Jpc2N2L2lu Y2x1ZGUvdWFwaS9hc20vaHdwcm9iZS5oCj4gPiBpbmRleCA5ZjJhOGUzZmYyMDQuLjIxZTk2YTYz ZjllYSAxMDA2NDQKPiA+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2Jl LmgKPiA+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmgKPiA+IEBA IC0xLDYgKzEsNiBAQAo+ID4gIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJ VEggTGludXgtc3lzY2FsbC1ub3RlICovCj4gPiAgLyoKPiA+IC0gKiBDb3B5cmlnaHQgMjAyMyBS aXZvcywgSW5jCj4gPiArICogQ29weXJpZ2h0IDIwMjMtMjAyNCBSaXZvcywgSW5jCj4gPiAgICov Cj4gPgo+ID4gICNpZm5kZWYgX1VBUElfQVNNX0hXUFJPQkVfSAo+ID4gQEAgLTY3LDYgKzY3LDcg QEAgc3RydWN0IHJpc2N2X2h3cHJvYmUgewo+ID4gICNkZWZpbmUgICAgICAgICAgICAgICAgUklT Q1ZfSFdQUk9CRV9NSVNBTElHTkVEX1VOU1VQUE9SVEVEICAgICg0IDw8IDApCj4gPiAgI2RlZmlu ZSAgICAgICAgICAgICAgICBSSVNDVl9IV1BST0JFX01JU0FMSUdORURfTUFTSyAgICAgICAgICAg KDcgPDwgMCkKPiA+ICAjZGVmaW5lIFJJU0NWX0hXUFJPQkVfS0VZX1pJQ0JPWl9CTE9DS19TSVpF ICAgIDYKPiA+ICsjZGVmaW5lIFJJU0NWX0hXUFJPQkVfS0VZX1ZFTkRPUl9FWFRfVEhFQURfMCAg IDcKPiA+ICAvKiBJbmNyZWFzZSBSSVNDVl9IV1BST0JFX01BWF9LRVkgd2hlbiBhZGRpbmcgaXRl bXMuICovCj4gPgo+ID4gIC8qIEZsYWdzICovCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9p bmNsdWRlL3VhcGkvYXNtL3ZlbmRvci90aGVhZC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkv YXNtL3ZlbmRvci90aGVhZC5oCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAw MDAwMDAwMDAwLi40Mzc5MGViZTVmYWYKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2FyY2gv cmlzY3YvaW5jbHVkZS91YXBpL2FzbS92ZW5kb3IvdGhlYWQuaAo+ID4gQEAgLTAsMCArMSwzIEBA Cj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNj YWxsLW5vdGUgKi8KPiA+ICsKPiA+ICsjZGVmaW5lICAgICAgICAgICAgICAgIFJJU0NWX0hXUFJP QkVfVkVORE9SX0VYVF9YVEhFQURWRUNUT1IgICAoMSA8PCAwKQo+ID4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3Yva2VybmVsL3N5c19od3Byb2JlLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdw cm9iZS5jCj4gPiBpbmRleCA4Y2FlNDFhNTAyZGQuLmU1OWNhYzU0NWRmNSAxMDA2NDQKPiA+IC0t LSBhL2FyY2gvcmlzY3Yva2VybmVsL3N5c19od3Byb2JlLmMKPiA+ICsrKyBiL2FyY2gvcmlzY3Yv a2VybmVsL3N5c19od3Byb2JlLmMKPiA+IEBAIC0xMyw2ICsxMyw3IEBACj4gPiAgI2luY2x1ZGUg PGFzbS91YWNjZXNzLmg+Cj4gPiAgI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KPiA+ICAjaW5jbHVk ZSA8YXNtL3ZlY3Rvci5oPgo+ID4gKyNpbmNsdWRlIDxhc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhl YWRfaHdwcm9iZS5oPgo+ID4gICNpbmNsdWRlIDx2ZHNvL3ZzeXNjYWxsLmg+Cj4gPgo+ID4KPiA+ IEBAIC0yMTYsNiArMjE3LDE0IEBAIHN0YXRpYyB2b2lkIGh3cHJvYmVfb25lX3BhaXIoc3RydWN0 IHJpc2N2X2h3cHJvYmUgKnBhaXIsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyLT52 YWx1ZSA9IHJpc2N2X2Nib3pfYmxvY2tfc2l6ZTsKPiA+ICAgICAgICAgICAgICAgICBicmVhazsK PiA+Cj4gPiArICAgICAgIGNhc2UgUklTQ1ZfSFdQUk9CRV9LRVlfVkVORE9SX0VYVF9USEVBRF8w Ogo+ID4gKyNpZmRlZiBDT05GSUdfUklTQ1ZfSVNBX1ZFTkRPUl9FWFRfVEhFQUQKPiA+ICsgICAg ICAgICAgICAgICBod3Byb2JlX2lzYV92ZW5kb3JfZXh0X3RoZWFkXzAocGFpciwgY3B1cyk7Cj4g PiArI2Vsc2UKPiA+ICsgICAgICAgICAgICAgICBwYWlyLT52YWx1ZSA9IDA7Cj4gPiArI2VuZGlm Cj4gCj4gQ291bGQgd2UgbW92ZSB0aGlzIGlmZGVmIGludG8gdGhlIGhlYWRlciBieSBkZWNsYXJp bmcgYSBkdW1teQo+IGh3cHJvYmVfaXNhX3ZlbmRvcl9leHRfdGhlYWRfMCgpIGluIHRoZSBoZWFk ZXIgZm9yIHRoZSAhRU5BQkxFRCBjYXNlPwoKV2hvb3BzIEkgZGlkbid0IHJlc3BvbmQgdG8gdGhp cyBpbiBteSBsYXN0IG1lc3NhZ2UsIHRoaXMgaXMgYSBnb29kIGlkZWEsCnRoYW5rcyEKCi0gQ2hh cmxpZQoKPiAKPiA+ICsgICAgICAgICAgICAgICBicmVhazsKPiA+ICsKPiA+ICAgICAgICAgLyoK PiA+ICAgICAgICAgICogRm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eSwgdW5rbm93biBrZXlzIGRv bid0IGZhaWwgdGhlIHdob2xlCj4gPiAgICAgICAgICAqIGNhbGwsIGJ1dCBnZXQgdGhlaXIgZWxl bWVudCBrZXkgc2V0IHRvIC0xIGFuZCB2YWx1ZSBzZXQgdG8gMAo+ID4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3Yva2VybmVsL3ZlbmRvcl9leHRlbnNpb25zL01ha2VmaWxlIGIvYXJjaC9yaXNjdi9r ZXJuZWwvdmVuZG9yX2V4dGVuc2lvbnMvTWFrZWZpbGUKPiA+IGluZGV4IDhmMWM1YTRkYzM4Zi4u ZjUxMWZkMjY5ZThhIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvdmVuZG9yX2V4 dGVuc2lvbnMvTWFrZWZpbGUKPiA+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3ZlbmRvcl9leHRl bnNpb25zL01ha2VmaWxlCj4gPiBAQCAtMSw0ICsxLDUgQEAKPiA+ICAjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPiA+Cj4gPiAgb2JqLSQoQ09ORklHX1JJU0NWX0lTQV9W RU5ET1JfRVhUX1RIRUFEKSAgICAgICArPSB0aGVhZC5vCj4gPiArb2JqLSQoQ09ORklHX1JJU0NW X0lTQV9WRU5ET1JfRVhUX1RIRUFEKSAgICAgICArPSB0aGVhZF9od3Byb2JlLm8KPiA+ICBvYmot JChDT05GSUdfUklTQ1ZfSVNBX1ZFTkRPUl9FWFRfQU5ERVMpICAgICAgICs9IGFuZGVzLm8KPiA+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC92ZW5kb3JfZXh0ZW5zaW9ucy90aGVhZF9o d3Byb2JlLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC92ZW5kb3JfZXh0ZW5zaW9ucy90aGVhZF9od3By b2JlLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmU4 ZTJkZTI5MjAzMgo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwv dmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5jCj4gPiBAQCAtMCwwICsxLDQyIEBACj4g PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ID4gKwo+ID4gKyNp bmNsdWRlIDxhc20vdmVjdG9yLmg+Cj4gPiArI2luY2x1ZGUgPGFzbS92ZW5kb3JfZXh0ZW5zaW9u cy90aGVhZC5oPgo+ID4gKyNpbmNsdWRlIDxhc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdw cm9iZS5oPgo+ID4gKwo+ID4gKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Cj4gPiArI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgPHVhcGkvYXNtL2h3cHJvYmUu aD4KPiA+ICsjaW5jbHVkZSA8dWFwaS9hc20vdmVuZG9yL3RoZWFkLmg+Cj4gPiArCj4gPiArdm9p ZCBod3Byb2JlX2lzYV92ZW5kb3JfZXh0X3RoZWFkXzAoc3RydWN0IHJpc2N2X2h3cHJvYmUgKnBh aXIsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVzKQo+ID4gK3sKPiA+ICsgICAgICAgLyoKPiA+ ICsgICAgICAgICogTG9vcCB0aHJvdWdoIGFuZCByZWNvcmQgZXh0ZW5zaW9ucyB0aGF0IDEpIGFu eW9uZSBoYXMsIGFuZCAyKSBhbnlvbmUKPiA+ICsgICAgICAgICogZG9lc24ndCBoYXZlLgo+ID4g KyAgICAgICAgKi8KPiA+ICsKPiA+ICsgICAgICAgc3RydWN0IHJpc2N2X2lzYWluZm8gKnBlcl9o YXJ0X3RoZWFkX2JpdG1hcCA9IHJpc2N2X2lzYV92ZW5kb3JfZXh0X2xpc3RfdGhlYWQucGVyX2hh cnRfdmVuZG9yX2JpdG1hcDsKPiA+ICsgICAgICAgaW50IGNwdTsKPiA+ICsgICAgICAgdTY0IG1p c3Npbmc7Cj4gPiArCj4gPiArICAgICAgIGZvcl9lYWNoX2NwdShjcHUsIGNwdXMpIHsKPiA+ICsg ICAgICAgICAgICAgICBzdHJ1Y3QgcmlzY3ZfaXNhaW5mbyAqaXNhaW5mbyA9ICZwZXJfaGFydF90 aGVhZF9iaXRtYXBbY3B1XTsKPiA+ICsKPiA+ICsjZGVmaW5lIEVYVF9LRVkoZXh0KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gPiArICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAg ICAgIGlmIChfX3Jpc2N2X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKGlzYWluZm8tPmlzYSwgUklT Q1ZfSVNBX1ZFTkRPUl9FWFRfIyNleHQpKSBcCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBw YWlyLT52YWx1ZSB8PSBSSVNDVl9IV1BST0JFX1ZFTkRPUl9FWFRfIyNleHQ7ICAgICAgICAgICAg ICAgICAgXAo+ID4gKyAgICAgICAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIG1pc3NpbmcgfD0gUklTQ1ZfSFdQUk9CRV9WRU5ET1JfRVhUXyMjZXh0 OyAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgIH0gd2hpbGUgKGZhbHNlKQo+ID4g Kwo+ID4gKyAgICAgICBFWFRfS0VZKFhUSEVBRFZFQ1RPUik7Cj4gPiArCj4gPiArI3VuZGVmIEVY VF9LRVkKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAvKiBOb3cgdHVybiBvZmYgcmVw b3J0aW5nIGZlYXR1cmVzIGlmIGFueSBDUFUgaXMgbWlzc2luZyBpdC4gKi8+ICsgICAgICAgcGFp ci0+dmFsdWUgJj0gfm1pc3Npbmc7Cj4gPiArfQo+IAo+IFNvbWV0aGluZyB0byBjb25zaWRlciwg cGVyaGFwcyB3aGVuIHRoZXJlJ3MgYSBzZWNvbmQgdmVuZG9yLCBpcyBob3cgd2UKPiBtaWdodCBy ZWR1Y2UgdGhpcyBib2lsZXJwbGF0ZSBvbiB0aGUgc2Vjb25kIHZlbmRvci4gUHJvYmFibHkgYmVz dCB0bwo+IHdhaXQgdGhvdWdoIHVudGlsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRoZSBjb21tb25h bGl0aWVzIGFyZS4gVGhpcwo+IGxvb2tzIGdvb2QgZm9yIG5vdy4KPiAKPiAKPiA+Cj4gPiAtLQo+ ID4gMi40NC4wCj4gPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1y aXNjdgo= 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 1CB99C10F1A for ; Wed, 1 May 2024 19:50:18 +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=f25RyoPjuu2HyKja4U2D8FYtxlnI0v2pQabWHCSPecA=; b=Yj19RAc+Q2QEMr Un0Gr04lU1sRmwbiB3ZSoWMfu6KXF57PQI7BAyNvZYRD2qa41w9LnkQG/LnttdQs5m/u2181UApx4 Y+Gs+uCWxAh+kf9xEjiukkR7k+AqBnZLAkasSB6YAm0W6IxCoSOgm6lROesQJjtMtlgXx1GmTVgri FmedzS7xPQAuXCexJVCswAWanVQYJlyhWsWa6sttC1/KbfIFaPYcTZkTUkm9BsHRwLgGPMvWgb435 nOmum2hjGrzA+likSNNRtoG4TcbNt3i2cVD6a8/TzznY6LLVq/kT0qrgl0N1MYX0tN1z4no3OQZP9 ve4aSWJHXfVdwOlsPvKA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s2Fxw-0000000AZ6R-1NhX; Wed, 01 May 2024 19:50:08 +0000 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s2Fxt-0000000AZ4Z-02kj for linux-arm-kernel@lists.infradead.org; Wed, 01 May 2024 19:50:06 +0000 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1eb66b6953cso39194945ad.2 for ; Wed, 01 May 2024 12:50:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1714593004; x=1715197804; 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=kM7igPbGNIJ+0fwn0lbbaNAmJqgtIXaZke4GyfyWn/8=; b=Euk9MHNK5sQQ/C7GGoPOyrw2wnGIYkWK2/jpMX5XhR8ncNc/3/8UzSCwb3Y3gk10pA lNadfSIgWwHD63zVA3cEdLthRyaxkmJUmPcbNaF01RHh3QnswGHm+HauisrYW4Eqh1fw t0nCeO4PiRLuOqS9NU2DXnbLu2yVddFmfFrDwZxd6XmimqXA6km/ERviwA5W1D70vaBD UT5uThKHil3SYeCdpmmIAEEbKAuDtpooC36zrJQhIH96f3ddLtSKVHNTlIBVDtFa/6nv aS7mBlH4MBbuXmVGRU0r57Jwwuzo9kE+Xs5KHKAoJkJdzGgJtIZT6fd6EC7DuIUty5UM vQ5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714593004; x=1715197804; 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=kM7igPbGNIJ+0fwn0lbbaNAmJqgtIXaZke4GyfyWn/8=; b=Q1EeqmCwcUk2HVku9nOswQZSEy5hq2/Q6PaLAOJKrWPw+ekyYe5XQ5nk/OqJdRI7Of jZVUz3cvsgDNXGp3YZRT6yA98FUkKGRZEt9Hi6DUKR+mJEqSvksfmZ6DDjAt+4frM4ZL XncmdMTBA3MWEuud02G36kG80cfKOau/dlAahV5ebaXNIwkdc+ALqNy5M3TeVjLdf1sj tfhjP9v0gNVXiT0LDZiNF0s/ABS5y6yOMlmlIILE17N9HkB0IXDHOB3uvfiG7Pd8CWl+ BLSCm1VPUo91gYHkJ3bcyw8TQXJ5SDvoskAwV0mCOV6kfqK8pUWkZKfBkjQSj3HbiE3S 8FpQ== X-Forwarded-Encrypted: i=1; AJvYcCVCsOR1zzY9+iOfmAY7sRgpQDA7F4/JVM/kdMJQ9PSZ+tiruEDJSdt+iQhJ8RypAhBE92VcipFqg1/yJ9cwM3d/pwC+1UhfnCE6B6295y9RK/bnWpg= X-Gm-Message-State: AOJu0YxKCJ4aC4zeHpPTSWYLtDyxrGopM/mn9SuUsFMqlxmpTfPRg96b AkgeGS9kj6/rFFhHKWu8/MD9XnMIhnUdNXhZ35w8yBJVs4JdTAGmp7GDBfc5NPA= X-Google-Smtp-Source: AGHT+IEM9fmEb38/w0za+GhL/Bs4gNsrL8TDtcaUQyFaus75t0OZHyuBFHHkotx6pRktXL7bXsD+Pw== X-Received: by 2002:a17:902:7447:b0:1e9:668d:a446 with SMTP id e7-20020a170902744700b001e9668da446mr2993950plt.20.1714593003680; Wed, 01 May 2024 12:50:03 -0700 (PDT) Received: from ghost ([2601:647:5700:6860:1dcc:e03e:dc61:895d]) by smtp.gmail.com with ESMTPSA id d10-20020a170902728a00b001ecd65e58d2sm220881pll.85.2024.05.01.12.50.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 May 2024 12:50:03 -0700 (PDT) Date: Wed, 1 May 2024 12:50:00 -0700 From: Charlie Jenkins To: Evan Green Cc: Conor Dooley , Rob Herring , Krzysztof Kozlowski , Paul Walmsley , Palmer Dabbelt , Albert Ou , Guo Ren , Conor Dooley , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , Conor Dooley , =?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 v4 13/16] riscv: hwprobe: Add thead vendor extension probing Message-ID: References: <20240426-dev-charlie-support_thead_vector_6_9-v4-0-5cf53b5bc492@rivosinc.com> <20240426-dev-charlie-support_thead_vector_6_9-v4-13-5cf53b5bc492@rivosinc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240501_125005_086330_CB6DB533 X-CRM114-Status: GOOD ( 39.24 ) 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 T24gV2VkLCBNYXkgMDEsIDIwMjQgYXQgMDk6NDY6MDBBTSAtMDcwMCwgRXZhbiBHcmVlbiB3cm90 ZToKPiBPbiBGcmksIEFwciAyNiwgMjAyNCBhdCAyOjM34oCvUE0gQ2hhcmxpZSBKZW5raW5zIDxj aGFybGllQHJpdm9zaW5jLmNvbT4gd3JvdGU6Cj4gPgo+ID4gQWRkIGEgbmV3IGh3cHJvYmUga2V5 ICJSSVNDVl9IV1BST0JFX0tFWV9WRU5ET1JfRVhUX1RIRUFEXzAiIHdoaWNoCj4gPiBhbGxvd3Mg dXNlcnNwYWNlIHRvIHByb2JlIGZvciB0aGUgbmV3IFJJU0NWX0lTQV9WRU5ET1JfRVhUX1hUSEVB RFZFQ1RPUgo+ID4gdmVuZG9yIGV4dGVuc2lvbi4KPiA+Cj4gPiBUaGlzIG5ldyBrZXkgd2lsbCBh bGxvdyB1c2Vyc3BhY2UgY29kZSB0byBwcm9iZSBmb3Igd2hpY2ggdGhlYWQgdmVuZG9yCj4gPiBl eHRlbnNpb25zIGFyZSBzdXBwb3J0ZWQuIFRoaXMgQVBJIGlzIG1vZGVsZWQgdG8gYmUgY29uc2lz dGVudCB3aXRoCj4gPiBSSVNDVl9IV1BST0JFX0tFWV9JTUFfRVhUXzAuIFRoZSBiaXRtYXNrIHJl dHVybmVkIHdpbGwgaGF2ZSBlYWNoIGJpdAo+ID4gY29ycmVzcG9uZGluZyB0byBhIHN1cHBvcnRl ZCB0aGVhZCB2ZW5kb3IgZXh0ZW5zaW9uIG9mIHRoZSBjcHVtYXNrIHNldC4KPiA+IEp1c3QgbGlr ZSBSSVNDVl9IV1BST0JFX0tFWV9JTUFfRVhUXzAsIHRoaXMgYWxsb3dzIGEgdXNlcnNwYWNlIHBy b2dyYW0KPiA+IHRvIGRldGVybWluZSBhbGwgb2YgdGhlIHN1cHBvcnRlZCB0aGVhZCB2ZW5kb3Ig ZXh0ZW5zaW9ucyBpbiBvbmUgY2FsbC4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFybGllIEpl bmtpbnMgPGNoYXJsaWVAcml2b3NpbmMuY29tPgo+ID4gLS0tCj4gPiAgYXJjaC9yaXNjdi9pbmNs dWRlL2FzbS9od3Byb2JlLmggICAgICAgICAgICAgICAgICAgfCAgNCArLS0KPiA+ICAuLi4vaW5j bHVkZS9hc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5oICB8IDExICsrKysrKwo+ ID4gIGFyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmggICAgICAgICAgICAgIHwg IDMgKy0KPiA+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvdWFwaS9hc20vdmVuZG9yL3RoZWFkLmggICAg ICAgICB8ICAzICsrCj4gPiAgYXJjaC9yaXNjdi9rZXJuZWwvc3lzX2h3cHJvYmUuYyAgICAgICAg ICAgICAgICAgICAgfCAgOSArKysrKwo+ID4gIGFyY2gvcmlzY3Yva2VybmVsL3ZlbmRvcl9leHRl bnNpb25zL01ha2VmaWxlICAgICAgIHwgIDEgKwo+ID4gIC4uLi9yaXNjdi9rZXJuZWwvdmVuZG9y X2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5jIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKwo+ ID4gIDcgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+ Cj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od3Byb2JlLmggYi9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUuaAo+ID4gaW5kZXggNjMwNTA3ZGZmNWVhLi5lNjg0 OTZiNGY4ZGUgMTAwNjQ0Cj4gPiAtLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL2h3cHJvYmUu aAo+ID4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9od3Byb2JlLmgKPiA+IEBAIC0xLDYg KzEsNiBAQAo+ID4gIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJVEggTGlu dXgtc3lzY2FsbC1ub3RlICovCj4gPiAgLyoKPiA+IC0gKiBDb3B5cmlnaHQgMjAyMyBSaXZvcywg SW5jCj4gPiArICogQ29weXJpZ2h0IDIwMjMtMjAyNCBSaXZvcywgSW5jCj4gPiAgICovCj4gPgo+ ID4gICNpZm5kZWYgX0FTTV9IV1BST0JFX0gKPiA+IEBAIC04LDcgKzgsNyBAQAo+ID4KPiA+ICAj aW5jbHVkZSA8dWFwaS9hc20vaHdwcm9iZS5oPgo+ID4KPiA+IC0jZGVmaW5lIFJJU0NWX0hXUFJP QkVfTUFYX0tFWSA2Cj4gPiArI2RlZmluZSBSSVNDVl9IV1BST0JFX01BWF9LRVkgNwo+ID4KPiA+ ICBzdGF0aWMgaW5saW5lIGJvb2wgcmlzY3ZfaHdwcm9iZV9rZXlfaXNfdmFsaWQoX19zNjQga2V5 KQo+ID4gIHsKPiA+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3ZlbmRvcl9l eHRlbnNpb25zL3RoZWFkX2h3cHJvYmUuaCBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdmVuZG9y X2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5oCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4g aW5kZXggMDAwMDAwMDAwMDAwLi45MDdjZmM0ZWI0ZGMKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsr KyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9i ZS5oCj4gPiBAQCAtMCwwICsxLDExIEBACj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEdQTC0yLjAgKi8KPiA+ICsjaWZuZGVmIF9BU01fUklTQ1ZfVkVORE9SX0VYVEVOU0lPTlNfVEhF QURfSFdQUk9CRV9ICj4gPiArI2RlZmluZSBfQVNNX1JJU0NWX1ZFTkRPUl9FWFRFTlNJT05TX1RI RUFEX0hXUFJPQkVfSAo+ID4gKwo+ID4gKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Cj4gPiAr Cj4gPiArI2luY2x1ZGUgPHVhcGkvYXNtL2h3cHJvYmUuaD4KPiA+ICsKPiA+ICt2b2lkIGh3cHJv YmVfaXNhX3ZlbmRvcl9leHRfdGhlYWRfMChzdHJ1Y3QgcmlzY3ZfaHdwcm9iZSAqcGFpciwgY29u c3Qgc3RydWN0IGNwdW1hc2sgKmNwdXMpOwo+ID4gKwo+ID4gKyNlbmRpZgo+ID4gZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmggYi9hcmNoL3Jpc2N2L2lu Y2x1ZGUvdWFwaS9hc20vaHdwcm9iZS5oCj4gPiBpbmRleCA5ZjJhOGUzZmYyMDQuLjIxZTk2YTYz ZjllYSAxMDA2NDQKPiA+IC0tLSBhL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2Jl LmgKPiA+ICsrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS91YXBpL2FzbS9od3Byb2JlLmgKPiA+IEBA IC0xLDYgKzEsNiBAQAo+ID4gIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIFdJ VEggTGludXgtc3lzY2FsbC1ub3RlICovCj4gPiAgLyoKPiA+IC0gKiBDb3B5cmlnaHQgMjAyMyBS aXZvcywgSW5jCj4gPiArICogQ29weXJpZ2h0IDIwMjMtMjAyNCBSaXZvcywgSW5jCj4gPiAgICov Cj4gPgo+ID4gICNpZm5kZWYgX1VBUElfQVNNX0hXUFJPQkVfSAo+ID4gQEAgLTY3LDYgKzY3LDcg QEAgc3RydWN0IHJpc2N2X2h3cHJvYmUgewo+ID4gICNkZWZpbmUgICAgICAgICAgICAgICAgUklT Q1ZfSFdQUk9CRV9NSVNBTElHTkVEX1VOU1VQUE9SVEVEICAgICg0IDw8IDApCj4gPiAgI2RlZmlu ZSAgICAgICAgICAgICAgICBSSVNDVl9IV1BST0JFX01JU0FMSUdORURfTUFTSyAgICAgICAgICAg KDcgPDwgMCkKPiA+ICAjZGVmaW5lIFJJU0NWX0hXUFJPQkVfS0VZX1pJQ0JPWl9CTE9DS19TSVpF ICAgIDYKPiA+ICsjZGVmaW5lIFJJU0NWX0hXUFJPQkVfS0VZX1ZFTkRPUl9FWFRfVEhFQURfMCAg IDcKPiA+ICAvKiBJbmNyZWFzZSBSSVNDVl9IV1BST0JFX01BWF9LRVkgd2hlbiBhZGRpbmcgaXRl bXMuICovCj4gPgo+ID4gIC8qIEZsYWdzICovCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9p bmNsdWRlL3VhcGkvYXNtL3ZlbmRvci90aGVhZC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL3VhcGkv YXNtL3ZlbmRvci90aGVhZC5oCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAw MDAwMDAwMDAwLi40Mzc5MGViZTVmYWYKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2FyY2gv cmlzY3YvaW5jbHVkZS91YXBpL2FzbS92ZW5kb3IvdGhlYWQuaAo+ID4gQEAgLTAsMCArMSwzIEBA Cj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgV0lUSCBMaW51eC1zeXNj YWxsLW5vdGUgKi8KPiA+ICsKPiA+ICsjZGVmaW5lICAgICAgICAgICAgICAgIFJJU0NWX0hXUFJP QkVfVkVORE9SX0VYVF9YVEhFQURWRUNUT1IgICAoMSA8PCAwKQo+ID4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3Yva2VybmVsL3N5c19od3Byb2JlLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zeXNfaHdw cm9iZS5jCj4gPiBpbmRleCA4Y2FlNDFhNTAyZGQuLmU1OWNhYzU0NWRmNSAxMDA2NDQKPiA+IC0t LSBhL2FyY2gvcmlzY3Yva2VybmVsL3N5c19od3Byb2JlLmMKPiA+ICsrKyBiL2FyY2gvcmlzY3Yv a2VybmVsL3N5c19od3Byb2JlLmMKPiA+IEBAIC0xMyw2ICsxMyw3IEBACj4gPiAgI2luY2x1ZGUg PGFzbS91YWNjZXNzLmg+Cj4gPiAgI2luY2x1ZGUgPGFzbS91bmlzdGQuaD4KPiA+ICAjaW5jbHVk ZSA8YXNtL3ZlY3Rvci5oPgo+ID4gKyNpbmNsdWRlIDxhc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhl YWRfaHdwcm9iZS5oPgo+ID4gICNpbmNsdWRlIDx2ZHNvL3ZzeXNjYWxsLmg+Cj4gPgo+ID4KPiA+ IEBAIC0yMTYsNiArMjE3LDE0IEBAIHN0YXRpYyB2b2lkIGh3cHJvYmVfb25lX3BhaXIoc3RydWN0 IHJpc2N2X2h3cHJvYmUgKnBhaXIsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBwYWlyLT52 YWx1ZSA9IHJpc2N2X2Nib3pfYmxvY2tfc2l6ZTsKPiA+ICAgICAgICAgICAgICAgICBicmVhazsK PiA+Cj4gPiArICAgICAgIGNhc2UgUklTQ1ZfSFdQUk9CRV9LRVlfVkVORE9SX0VYVF9USEVBRF8w Ogo+ID4gKyNpZmRlZiBDT05GSUdfUklTQ1ZfSVNBX1ZFTkRPUl9FWFRfVEhFQUQKPiA+ICsgICAg ICAgICAgICAgICBod3Byb2JlX2lzYV92ZW5kb3JfZXh0X3RoZWFkXzAocGFpciwgY3B1cyk7Cj4g PiArI2Vsc2UKPiA+ICsgICAgICAgICAgICAgICBwYWlyLT52YWx1ZSA9IDA7Cj4gPiArI2VuZGlm Cj4gCj4gQ291bGQgd2UgbW92ZSB0aGlzIGlmZGVmIGludG8gdGhlIGhlYWRlciBieSBkZWNsYXJp bmcgYSBkdW1teQo+IGh3cHJvYmVfaXNhX3ZlbmRvcl9leHRfdGhlYWRfMCgpIGluIHRoZSBoZWFk ZXIgZm9yIHRoZSAhRU5BQkxFRCBjYXNlPwoKV2hvb3BzIEkgZGlkbid0IHJlc3BvbmQgdG8gdGhp cyBpbiBteSBsYXN0IG1lc3NhZ2UsIHRoaXMgaXMgYSBnb29kIGlkZWEsCnRoYW5rcyEKCi0gQ2hh cmxpZQoKPiAKPiA+ICsgICAgICAgICAgICAgICBicmVhazsKPiA+ICsKPiA+ICAgICAgICAgLyoK PiA+ICAgICAgICAgICogRm9yIGZvcndhcmQgY29tcGF0aWJpbGl0eSwgdW5rbm93biBrZXlzIGRv bid0IGZhaWwgdGhlIHdob2xlCj4gPiAgICAgICAgICAqIGNhbGwsIGJ1dCBnZXQgdGhlaXIgZWxl bWVudCBrZXkgc2V0IHRvIC0xIGFuZCB2YWx1ZSBzZXQgdG8gMAo+ID4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3Yva2VybmVsL3ZlbmRvcl9leHRlbnNpb25zL01ha2VmaWxlIGIvYXJjaC9yaXNjdi9r ZXJuZWwvdmVuZG9yX2V4dGVuc2lvbnMvTWFrZWZpbGUKPiA+IGluZGV4IDhmMWM1YTRkYzM4Zi4u ZjUxMWZkMjY5ZThhIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvdmVuZG9yX2V4 dGVuc2lvbnMvTWFrZWZpbGUKPiA+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3ZlbmRvcl9leHRl bnNpb25zL01ha2VmaWxlCj4gPiBAQCAtMSw0ICsxLDUgQEAKPiA+ICAjIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkKPiA+Cj4gPiAgb2JqLSQoQ09ORklHX1JJU0NWX0lTQV9W RU5ET1JfRVhUX1RIRUFEKSAgICAgICArPSB0aGVhZC5vCj4gPiArb2JqLSQoQ09ORklHX1JJU0NW X0lTQV9WRU5ET1JfRVhUX1RIRUFEKSAgICAgICArPSB0aGVhZF9od3Byb2JlLm8KPiA+ICBvYmot JChDT05GSUdfUklTQ1ZfSVNBX1ZFTkRPUl9FWFRfQU5ERVMpICAgICAgICs9IGFuZGVzLm8KPiA+ IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC92ZW5kb3JfZXh0ZW5zaW9ucy90aGVhZF9o d3Byb2JlLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC92ZW5kb3JfZXh0ZW5zaW9ucy90aGVhZF9od3By b2JlLmMKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmU4 ZTJkZTI5MjAzMgo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvYXJjaC9yaXNjdi9rZXJuZWwv dmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdwcm9iZS5jCj4gPiBAQCAtMCwwICsxLDQyIEBACj4g PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seQo+ID4gKwo+ID4gKyNp bmNsdWRlIDxhc20vdmVjdG9yLmg+Cj4gPiArI2luY2x1ZGUgPGFzbS92ZW5kb3JfZXh0ZW5zaW9u cy90aGVhZC5oPgo+ID4gKyNpbmNsdWRlIDxhc20vdmVuZG9yX2V4dGVuc2lvbnMvdGhlYWRfaHdw cm9iZS5oPgo+ID4gKwo+ID4gKyNpbmNsdWRlIDxsaW51eC9jcHVtYXNrLmg+Cj4gPiArI2luY2x1 ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgPHVhcGkvYXNtL2h3cHJvYmUu aD4KPiA+ICsjaW5jbHVkZSA8dWFwaS9hc20vdmVuZG9yL3RoZWFkLmg+Cj4gPiArCj4gPiArdm9p ZCBod3Byb2JlX2lzYV92ZW5kb3JfZXh0X3RoZWFkXzAoc3RydWN0IHJpc2N2X2h3cHJvYmUgKnBh aXIsIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVzKQo+ID4gK3sKPiA+ICsgICAgICAgLyoKPiA+ ICsgICAgICAgICogTG9vcCB0aHJvdWdoIGFuZCByZWNvcmQgZXh0ZW5zaW9ucyB0aGF0IDEpIGFu eW9uZSBoYXMsIGFuZCAyKSBhbnlvbmUKPiA+ICsgICAgICAgICogZG9lc24ndCBoYXZlLgo+ID4g KyAgICAgICAgKi8KPiA+ICsKPiA+ICsgICAgICAgc3RydWN0IHJpc2N2X2lzYWluZm8gKnBlcl9o YXJ0X3RoZWFkX2JpdG1hcCA9IHJpc2N2X2lzYV92ZW5kb3JfZXh0X2xpc3RfdGhlYWQucGVyX2hh cnRfdmVuZG9yX2JpdG1hcDsKPiA+ICsgICAgICAgaW50IGNwdTsKPiA+ICsgICAgICAgdTY0IG1p c3Npbmc7Cj4gPiArCj4gPiArICAgICAgIGZvcl9lYWNoX2NwdShjcHUsIGNwdXMpIHsKPiA+ICsg ICAgICAgICAgICAgICBzdHJ1Y3QgcmlzY3ZfaXNhaW5mbyAqaXNhaW5mbyA9ICZwZXJfaGFydF90 aGVhZF9iaXRtYXBbY3B1XTsKPiA+ICsKPiA+ICsjZGVmaW5lIEVYVF9LRVkoZXh0KSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gPiArICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICAgICAgICAg ICAgIGlmIChfX3Jpc2N2X2lzYV9leHRlbnNpb25fYXZhaWxhYmxlKGlzYWluZm8tPmlzYSwgUklT Q1ZfSVNBX1ZFTkRPUl9FWFRfIyNleHQpKSBcCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBw YWlyLT52YWx1ZSB8PSBSSVNDVl9IV1BST0JFX1ZFTkRPUl9FWFRfIyNleHQ7ICAgICAgICAgICAg ICAgICAgXAo+ID4gKyAgICAgICAgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIG1pc3NpbmcgfD0gUklTQ1ZfSFdQUk9CRV9WRU5ET1JfRVhUXyMjZXh0 OyAgICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgIH0gd2hpbGUgKGZhbHNlKQo+ID4g Kwo+ID4gKyAgICAgICBFWFRfS0VZKFhUSEVBRFZFQ1RPUik7Cj4gPiArCj4gPiArI3VuZGVmIEVY VF9LRVkKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAvKiBOb3cgdHVybiBvZmYgcmVw b3J0aW5nIGZlYXR1cmVzIGlmIGFueSBDUFUgaXMgbWlzc2luZyBpdC4gKi8+ICsgICAgICAgcGFp ci0+dmFsdWUgJj0gfm1pc3Npbmc7Cj4gPiArfQo+IAo+IFNvbWV0aGluZyB0byBjb25zaWRlciwg cGVyaGFwcyB3aGVuIHRoZXJlJ3MgYSBzZWNvbmQgdmVuZG9yLCBpcyBob3cgd2UKPiBtaWdodCBy ZWR1Y2UgdGhpcyBib2lsZXJwbGF0ZSBvbiB0aGUgc2Vjb25kIHZlbmRvci4gUHJvYmFibHkgYmVz dCB0bwo+IHdhaXQgdGhvdWdoIHVudGlsIHdlIGtub3cgZXhhY3RseSB3aGF0IHRoZSBjb21tb25h bGl0aWVzIGFyZS4gVGhpcwo+IGxvb2tzIGdvb2QgZm9yIG5vdy4KPiAKPiAKPiA+Cj4gPiAtLQo+ ID4gMi40NC4wCj4gPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=