From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 514492AD31 for ; Thu, 9 Jan 2025 02:29:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736389767; cv=none; b=TUuW+bc0ghLrPSfxYov9yUXyKkwsgQTVt2B1y0ZceQkKyGgk/nkb6pUeK72L2LUzebOdFelaLG+lowUmtwaCIItwbqL1sLHLKkS7ls5SVIJH2tH96pX36LYlszb9Hn69kjg8YuyMaQ9JnES8oNImTCa0sF5dtd+fhf/KuPd8zlk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736389767; c=relaxed/simple; bh=8+qyBcO8apxheZk8Ce9xa2+qlvFR3OyMr82XXfWcAZ8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Nt+dx0SbAWl/Z1DkNoHwciYVEOnP5OACHfN3gW7aUGUCSpnmb1yYGNWrMO5uZ/bkBy5dBnRx4JfTBeVS+btoaheC5kruRL59k2eTxAbSUVv/Ojxvms0OH5qJjbODAXpYuz1SIJYuFpkBwHu2cPJBlL+9HVb01AYwaaR97TiCiKE= 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=Gv5Peo3u; arc=none smtp.client-ip=209.85.214.177 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="Gv5Peo3u" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2166022c5caso5566905ad.2 for ; Wed, 08 Jan 2025 18:29:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736389764; x=1736994564; 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=tuHlyCZ2v8Z/UOiT+zevmWuAaJTETQXAMxBjxTo/5Xo=; b=Gv5Peo3u4Ohdbw8NnuFYZI6AbOfW2iNkNmeQAM4mPxbLHQahsR1TlyUtAY4lMfU/zE 6fGu9bMim87xmRHXepDITyJg5/iYC+enlXS9hsrzTf8hEPylETnWOUGzy9UQa2E+RGiZ DvwBExJ6oWqV3CSE5xXEeS/g5stsqhSBPF7U5hDhjur88U5I1er04P8Hy1Wdr+CSvI4Y YveYF7WHciO6CoIODJwK07UQsByydBf4abz0yViY8MAHjRT1ydJAGRiNdJEvShHWvw7S TLDQoIiO6uv0YoG3MWkELUzONcmiTXlqFad6HMyOebHwqKnfxr9sBoyra0K1tFNsfa9L xk0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736389764; x=1736994564; 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=tuHlyCZ2v8Z/UOiT+zevmWuAaJTETQXAMxBjxTo/5Xo=; b=s1LkXFxdEDCcWQLyHz9EXI9f6k3lVPqheHTcH5uYf7izJJKjeIUrHfmqliX5giAZMm gFY6efTCcfj5seHqF0QBS5ctVQ70s7HySpRKzkDaSMRUGBKBx89+5yPBdIv4QY5o2d1S ln3mDkkTbvdOukgxt2cRH4bibqPTgQGXoDmj//PG/3XqTvrqD9vETHv9wV/HwEB7w1Cs ELfuALLOVrYBTnLiy1FTNEQg4lr1hhku3x1vBoHxzN++LHwgo8BK4Qgg28P1AQxo9gnN QfPZ6gbV21mI97/WeFSb1XdUTQbAWXt0CNkCvyDuE9VoiWDbP+D5beiX1XKDAWhReLtW 0S5g== X-Forwarded-Encrypted: i=1; AJvYcCVLygfC11cULUaKdhwnwITigca+p0ayCEIxxkRLCrWQZf6tvk93EZVepUiWuZs3ovuhnFM=@vger.kernel.org X-Gm-Message-State: AOJu0Yx5TUaaJkwgzhsIIPvleaPAPNRvWIqXjxj7eIanZmtn825/aa6J CzYBj53XuHY24LZUdBd7CmhzywINUc0rvFKs7ZR1f5eGG3+2kYR1SsH5r5XgIiQ= X-Gm-Gg: ASbGncvKogYgDfuc84iKSlAHdsU/qwPQEnSxF2tOGbpwAsqgrEyBQGVmtsZ7eEkQeer LV1B6tZbuPf6oSx4svR0OCNTLsjBcG04PoT2EmuRXkydXP68+FZBXSZ3gfztbLaVp0xSNZHOM9f NPb69ZFdbrGjPgYVHR2sIfJKD4KZCXuxyAbiLcYFnbX3vurseF2uTuNNBk6f0fH6G4jb/dFTv9W dCtXN/rPDNavMOBlyNdhd4dDvxcMpfPezTmBFuF95khaxc= X-Google-Smtp-Source: AGHT+IEiW0hQMlynZLTeSqEG8t5Hx4KJYijsRSL5BopHzTcxKBDRtDH+iOQvqvSzplZg51yWB1kRWw== X-Received: by 2002:a05:6a00:e8e:b0:72a:bc6a:3a87 with SMTP id d2e1a72fcca58-72d21df17bfmr7052394b3a.0.1736389764464; Wed, 08 Jan 2025 18:29:24 -0800 (PST) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31d4d6b477sm161833a12.61.2025.01.08.18.29.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jan 2025 18:29:23 -0800 (PST) Date: Wed, 8 Jan 2025 18:29:20 -0800 From: Charlie Jenkins To: Arnaldo Carvalho de Melo Cc: Namhyung Kim , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , =?iso-8859-1?Q?G=FCnther?= Noack , Christian Brauner , Guo Ren , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Jonathan Corbet , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linux-csky@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org Subject: Re: [PATCH v5 00/16] perf tools: Use generic syscall scripts for all archs Message-ID: References: <20250107-perf_syscalltbl-v5-0-935de46d3175@rivosinc.com> Precedence: bulk X-Mailing-List: bpf@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, Jan 08, 2025 at 07:39:51PM -0300, Arnaldo Carvalho de Melo wrote: > On Wed, Jan 08, 2025 at 09:57:44AM -0800, Namhyung Kim wrote: > > Hello, > > > > On Tue, Jan 07, 2025 at 06:07:48PM -0800, Charlie Jenkins wrote: > > > Standardize the generation of syscall headers around syscall tables. > > > Previously each architecture independently selected how syscall headers > > > would be generated, or would not define a way and fallback onto > > > libaudit. Convert all architectures to use a standard syscall header > > > generation script and allow each architecture to override the syscall > > > table to use if they do not use the generic table. > > > > > > As a result of these changes, no architecture will require libaudit, and > > > so the fallback case of using libaudit is removed by this series. > > > > > > Testing: > > > > > > I have tested that the syscall mappings of id to name generation works > > > as expected for every architecture, but I have only validated that perf > > > trace compiles and runs as expected on riscv, arm64, and x86_64. > > > > > > Signed-off-by: Charlie Jenkins > > > Reviewed-by: Ian Rogers > > > Tested-by: Ian Rogers > > > > Acked-by: Namhyung Kim > > So, somehow the first patch of this series didn't reach my inbox, b4 > found it, and in it perf now does; > > tools/perf/scripts/Makefile.syscalls > > include $(srctree)/scripts/Kbuild.include > > I.e. it uses a file that is outside tools/ so normal devel in the kernel > community may end up breaking tools/ living code, something we decided > not to have. > > I noticed this while doing a: "make -C tools/perf build-test", the first > test creates a perf tarball and then tries to build it after > uncompressing it somewhere out of the checked out kernel source tree: > > ⬢ [acme@toolbox perf-tools-next]$ make help | grep perf > perf-tar-src-pkg - Build the perf source tarball with no compression > perf-targz-src-pkg - Build the perf source tarball with gzip compression > perf-tarbz2-src-pkg - Build the perf source tarball with bz2 compression > perf-tarxz-src-pkg - Build the perf source tarball with xz compression > perf-tarzst-src-pkg - Build the perf source tarball with zst compression > ⬢ [acme@toolbox perf-tools-next]$ make perf-tarxz-src-pkg > UPD .tmp_HEAD > COPY .tmp_perf/HEAD > GEN .tmp_perf/PERF-VERSION-FILE > PERF_VERSION = 6.13.rc2.g48d3eefaa683 > ARCHIVE perf-6.13.0-rc2.tar.xz > ⬢ [acme@toolbox perf-tools-next]$ mv perf-6.13.0-rc2.tar.xz ~ > ⬢ [acme@toolbox perf-tools-next]$ cd ~ > ⬢ [acme@toolbox ~]$ tar xvf perf-6.13.0-rc2.tar.xz | tail -5 > perf-6.13.0-rc2/tools/scripts/Makefile.include > perf-6.13.0-rc2/tools/scripts/syscall.tbl > perf-6.13.0-rc2/tools/scripts/utilities.mak > perf-6.13.0-rc2/HEAD > perf-6.13.0-rc2/PERF-VERSION-FILE > ⬢ [acme@toolbox ~]$ cd perf-6.13.0-rc2/ > ⬢ [acme@toolbox perf-6.13.0-rc2]$ make -C tools/perf > make: Entering directory '/home/acme/perf-6.13.0-rc2/tools/perf' > BUILD: Doing 'make -j28' parallel build > Warning: Skipped check-headers due to missing ../../include > > Auto-detecting system features: > ... libdw: [ on ] > ... glibc: [ on ] > ... libbfd: [ on ] > ... libbfd-buildid: [ on ] > ... libelf: [ on ] > ... libnuma: [ on ] > ... numa_num_possible_cpus: [ on ] > ... libperl: [ on ] > ... libpython: [ on ] > ... libcrypto: [ on ] > ... libunwind: [ on ] > ... libcapstone: [ on ] > ... llvm-perf: [ on ] > ... zlib: [ on ] > ... lzma: [ on ] > ... get_cpuid: [ on ] > ... bpf: [ on ] > ... libaio: [ on ] > ... libzstd: [ on ] > > /home/acme/perf-6.13.0-rc2/tools/perf/scripts/Makefile.syscalls:18: /home/acme/perf-6.13.0-rc2/scripts/Kbuild.include: No such file or directory > make[2]: *** No rule to make target '/home/acme/perf-6.13.0-rc2/scripts/Kbuild.include'. Stop. > make[1]: *** [Makefile.perf:286: sub-make] Error 2 > make: *** [Makefile:76: all] Error 2 > make: Leaving directory '/home/acme/perf-6.13.0-rc2/tools/perf' > ⬢ [acme@toolbox perf-6.13.0-rc2]$ > > This would probably (it does, just tested, but read on) make it work: > > ⬢ [acme@toolbox perf-tools-next]$ git diff > diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST > index dc42de1785cee715..83ef5d1365880929 100644 > --- a/tools/perf/MANIFEST > +++ b/tools/perf/MANIFEST > @@ -22,6 +22,7 @@ tools/lib/str_error_r.c > tools/lib/vsprintf.c > tools/lib/zalloc.c > scripts/bpf_doc.py > +scripts/Kbuild.include > tools/bpf/bpftool > kernel/bpf/disasm.c > kernel/bpf/disasm.h > ⬢ [acme@toolbox perf-tools-next]$ > > As now we would find it, but then it references some other part of the > kernel's Kbuild system: > > ⬢ [acme@toolbox perf-tools-next]$ grep -w srctree scripts/Kbuild.include > build := -f $(srctree)/scripts/Makefile.build obj > clean := -f $(srctree)/scripts/Makefile.clean obj > ⬢ [acme@toolbox perf-tools-next]$ > > And perf has: > > ⬢ [acme@toolbox perf-tools-next]$ find tools/ -name Makefile.build > tools/build/Makefile.build > ⬢ [acme@toolbox perf-tools-next]$ > > And we also have: > > ⬢ [acme@toolbox perf-tools-next]$ ls -la tools/scripts/ > total 40 > drwxr-xr-x. 1 acme acme 106 Jan 8 19:13 . > drwxr-xr-x. 1 acme acme 514 Jan 8 11:39 .. > -rw-r--r--. 1 acme acme 1224 Jan 8 11:41 Makefile.arch > -rw-r--r--. 1 acme acme 6205 Dec 20 21:48 Makefile.include > -rw-r--r--. 1 acme acme 17401 Jan 8 19:13 syscall.tbl > -rw-r--r--. 1 acme acme 6186 Dec 20 21:48 utilities.mak > ⬢ [acme@toolbox perf-tools-next]$ > > And: > > ⬢ [acme@toolbox perf-tools-next]$ grep -w build tools/build/Makefile.include > build := -f $(srctree)/tools/build/Makefile.build dir=. obj > $(SILENT_MAKE) -C $(srctree)/tools/build CFLAGS= LDFLAGS= $(OUTPUT)fixdep > $(Q)$(MAKE) -C $(srctree)/tools/build clean > ⬢ [acme@toolbox perf-tools-next]$ > > That is also in: > > ⬢ [acme@toolbox perf-tools-next]$ grep -w build scripts/Kbuild.include > # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj= > # $(Q)$(MAKE) $(build)=dir > build := -f $(srctree)/scripts/Makefile.build obj > # the interrupted recipe. So, you can safely stop the build by Ctrl-C (Make > # (1) PHONY targets are always build > # (2) No target, so we better build it > ⬢ [acme@toolbox perf-tools-next]$ > > So it seems we need to look at what we're using from the kernel's > scripts/Makefile.build to have it in a tools/build/ file. > > Its late here and I'll have to stop at this point, please take a look to > see if this can be easily resolved so that we can merge your series, I > very much like to say goodbye to one more tools/perf library dependency > :-) Thank you for pointing this out. We can use tools/build/Build.include which seems to have everything that is required. A "space" convenience variable needs to be added, but that is all. I'll send an updated version with that change. - Charlie > > Best regards, > > - Arnaldo 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 379A0E77188 for ; Thu, 9 Jan 2025 02:30:04 +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=lfYJO4EolUui4D+lRablBHNvp6HUubaELF8M2wEVyDI=; b=tdLVtY6wqXCPbj Eb6a84dqGW6WPfk0wF6vBIdmNhCmE2VkZwIMnT7Rgs+Pi3hUmXOL8SqSetUGsmz0tSikoiuYBC68z lzF6tN23PJfd5/Wy40zlTd6XmE9wJ7G0EKIOjXfUMl+GGz2jTCzgyysR2nkQLwbiiUo5vROjZDIdi aq1jNUKisLiKT2UjBNM7e7/bONSyihJSy0r40GlcGhNgEv7DzF+yeNazJswb0AeQ+iA6tUMWPivQN 1SMZnzsbPAN10/CNFc0Az4ocCg/T3YVdKr+MkwBG0MAl+IQqzcuXUGRhkfbx2kpQZQJGQWBZkAaW2 IT5VRUAU03IsR1TkHyRA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tViJ1-0000000AQBV-269I; Thu, 09 Jan 2025 02:29:55 +0000 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tViIX-0000000AQ5m-2MjG for linux-riscv@lists.infradead.org; Thu, 09 Jan 2025 02:29:27 +0000 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-2ef748105deso588339a91.1 for ; Wed, 08 Jan 2025 18:29:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1736389764; x=1736994564; 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=tuHlyCZ2v8Z/UOiT+zevmWuAaJTETQXAMxBjxTo/5Xo=; b=nmJWO0g8fby0rQDvj0aLAptKX8wvvvbVB0JC9iC8JPZ8r7uZYVtUus6g+9jljIPHvP Pznr36IX2rUmS7vixZGboETE5njGI//aGB8C+dKXpkpbY4ZLfcMb86GJFOcUjowvEqIJ sIabE4nBK2oP0MBlMd5vuQYKVo3K912pN8M0c7M6XF7VLcb4V7FSEqsCvV8hXkELn5NV P+pf7/epezkxO0SgmtxQwmmO68eAJSPiAPJ3uJTwqiMw2sj1RBBO8302SguhrE57kOWz c/hAbbelEXGw+tUen2lLI9pjk+YAVX07yGLzPIasVx8kA+E6O7zlMtlsnzDZFfILUHoY kaNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736389764; x=1736994564; 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=tuHlyCZ2v8Z/UOiT+zevmWuAaJTETQXAMxBjxTo/5Xo=; b=BblegP06p9PMijF+Ejz7zbDa3B34ZgH9LlnwzhHUrcZegLbu5n+7zr0lNxsXjTTv7Q lQbhNvGFTaZWTrBlSms+QumjRLk1qWa9Y1YXVRjByKNDcUP3vPSo/lTwboVB/1sYtARu 2aR+Kec7rK1Fxs7Mp0Ype9mXoXTR7CahRApLKdaPESr42kSL3F1383zIDA2uD6CGcPZU m1Z2JIESMPnHN9D72DkjKkxRdIuOEuSeyE+dETJNsW4azCTFrW/RHytgNLG55En+/Xlg w6CeOBWK9SNHgMu5JxidMrDXDmBim7ofqSPyZwRmq05DeL/6lKakoN+F7HgRmkoZE7yG 9clQ== X-Forwarded-Encrypted: i=1; AJvYcCWgRWOUq6ss+XxCk2FJK5zjc/QAOSr6kakgyylBhMy9HXtrzcRO7AQo2dDtsY+onlvFf4Hqt9duHSHN3Q==@lists.infradead.org X-Gm-Message-State: AOJu0YxiL6nAWUcF09P1VG13AUi5CCRkRPzSwXPbMjfwkkj4LACu1cPI BMbsEBnsHdsUEHYKCOI0n1gBQXMumkuW/fiqFLAcjFkbbVsyygzIPagQGo8HHdBFY81anEkNAxo a X-Gm-Gg: ASbGncsCCB7H1sZE5pZ8tgXJHBPt08MDBBTAknyTKAdXvQtipY4mn3uZ5W/Q7aqrKdb nPCUbKdGyDBANrMNJIkpxIolBNN4BvxkowKiFZdiokAWURzIK73unrBXXP+ekd5L33jQJQJT+NI GZDLQQzuts4LD7JA2VU8slafTiS3/nRuKdM29ZTeVZsW2M74SyHi386UiWFWff0s3/riGipPZKw kQ3JkWk98+VmYuhf/ZSE4SYGLGgnGF2YZ+FTOUNwV6ZZ90= X-Google-Smtp-Source: AGHT+IEiW0hQMlynZLTeSqEG8t5Hx4KJYijsRSL5BopHzTcxKBDRtDH+iOQvqvSzplZg51yWB1kRWw== X-Received: by 2002:a05:6a00:e8e:b0:72a:bc6a:3a87 with SMTP id d2e1a72fcca58-72d21df17bfmr7052394b3a.0.1736389764464; Wed, 08 Jan 2025 18:29:24 -0800 (PST) Received: from ghost ([50.145.13.30]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-a31d4d6b477sm161833a12.61.2025.01.08.18.29.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Jan 2025 18:29:23 -0800 (PST) Date: Wed, 8 Jan 2025 18:29:20 -0800 From: Charlie Jenkins To: Arnaldo Carvalho de Melo Cc: Namhyung Kim , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , =?iso-8859-1?Q?G=FCnther?= Noack , Christian Brauner , Guo Ren , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Jonathan Corbet , Arnd Bergmann , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-riscv@lists.infradead.org, linux-security-module@vger.kernel.org, bpf@vger.kernel.org, linux-csky@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org Subject: Re: [PATCH v5 00/16] perf tools: Use generic syscall scripts for all archs Message-ID: References: <20250107-perf_syscalltbl-v5-0-935de46d3175@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-20250108_182925_874198_37AC3CDA X-CRM114-Status: GOOD ( 40.40 ) 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 T24gV2VkLCBKYW4gMDgsIDIwMjUgYXQgMDc6Mzk6NTFQTSAtMDMwMCwgQXJuYWxkbyBDYXJ2YWxo byBkZSBNZWxvIHdyb3RlOgo+IE9uIFdlZCwgSmFuIDA4LCAyMDI1IGF0IDA5OjU3OjQ0QU0gLTA4 MDAsIE5hbWh5dW5nIEtpbSB3cm90ZToKPiA+IEhlbGxvLAo+ID4gCj4gPiBPbiBUdWUsIEphbiAw NywgMjAyNSBhdCAwNjowNzo0OFBNIC0wODAwLCBDaGFybGllIEplbmtpbnMgd3JvdGU6Cj4gPiA+ IFN0YW5kYXJkaXplIHRoZSBnZW5lcmF0aW9uIG9mIHN5c2NhbGwgaGVhZGVycyBhcm91bmQgc3lz Y2FsbCB0YWJsZXMuCj4gPiA+IFByZXZpb3VzbHkgZWFjaCBhcmNoaXRlY3R1cmUgaW5kZXBlbmRl bnRseSBzZWxlY3RlZCBob3cgc3lzY2FsbCBoZWFkZXJzCj4gPiA+IHdvdWxkIGJlIGdlbmVyYXRl ZCwgb3Igd291bGQgbm90IGRlZmluZSBhIHdheSBhbmQgZmFsbGJhY2sgb250bwo+ID4gPiBsaWJh dWRpdC4gQ29udmVydCBhbGwgYXJjaGl0ZWN0dXJlcyB0byB1c2UgYSBzdGFuZGFyZCBzeXNjYWxs IGhlYWRlcgo+ID4gPiBnZW5lcmF0aW9uIHNjcmlwdCBhbmQgYWxsb3cgZWFjaCBhcmNoaXRlY3R1 cmUgdG8gb3ZlcnJpZGUgdGhlIHN5c2NhbGwKPiA+ID4gdGFibGUgdG8gdXNlIGlmIHRoZXkgZG8g bm90IHVzZSB0aGUgZ2VuZXJpYyB0YWJsZS4KPiA+ID4gCj4gPiA+IEFzIGEgcmVzdWx0IG9mIHRo ZXNlIGNoYW5nZXMsIG5vIGFyY2hpdGVjdHVyZSB3aWxsIHJlcXVpcmUgbGliYXVkaXQsIGFuZAo+ ID4gPiBzbyB0aGUgZmFsbGJhY2sgY2FzZSBvZiB1c2luZyBsaWJhdWRpdCBpcyByZW1vdmVkIGJ5 IHRoaXMgc2VyaWVzLgo+ID4gPiAKPiA+ID4gVGVzdGluZzoKPiA+ID4gCj4gPiA+IEkgaGF2ZSB0 ZXN0ZWQgdGhhdCB0aGUgc3lzY2FsbCBtYXBwaW5ncyBvZiBpZCB0byBuYW1lIGdlbmVyYXRpb24g d29ya3MKPiA+ID4gYXMgZXhwZWN0ZWQgZm9yIGV2ZXJ5IGFyY2hpdGVjdHVyZSwgYnV0IEkgaGF2 ZSBvbmx5IHZhbGlkYXRlZCB0aGF0IHBlcmYKPiA+ID4gdHJhY2UgY29tcGlsZXMgYW5kIHJ1bnMg YXMgZXhwZWN0ZWQgb24gcmlzY3YsIGFybTY0LCBhbmQgeDg2XzY0Lgo+ID4gPiAKPiA+ID4gU2ln bmVkLW9mZi1ieTogQ2hhcmxpZSBKZW5raW5zIDxjaGFybGllQHJpdm9zaW5jLmNvbT4KPiA+ID4g UmV2aWV3ZWQtYnk6IElhbiBSb2dlcnMgPGlyb2dlcnNAZ29vZ2xlLmNvbT4KPiA+ID4gVGVzdGVk LWJ5OiBJYW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gPiAKPiA+IEFja2VkLWJ5OiBO YW1oeXVuZyBLaW0gPG5hbWh5dW5nQGtlcm5lbC5vcmc+Cj4gCj4gU28sIHNvbWVob3cgdGhlIGZp cnN0IHBhdGNoIG9mIHRoaXMgc2VyaWVzIGRpZG4ndCByZWFjaCBteSBpbmJveCwgYjQKPiBmb3Vu ZCBpdCwgYW5kIGluIGl0IHBlcmYgbm93IGRvZXM7Cj4gCj4gdG9vbHMvcGVyZi9zY3JpcHRzL01h a2VmaWxlLnN5c2NhbGxzCj4gCj4gICBpbmNsdWRlICQoc3JjdHJlZSkvc2NyaXB0cy9LYnVpbGQu aW5jbHVkZQo+IAo+IEkuZS4gaXQgdXNlcyBhIGZpbGUgdGhhdCBpcyBvdXRzaWRlIHRvb2xzLyBz byBub3JtYWwgZGV2ZWwgaW4gdGhlIGtlcm5lbAo+IGNvbW11bml0eSBtYXkgZW5kIHVwIGJyZWFr aW5nIHRvb2xzLyBsaXZpbmcgY29kZSwgc29tZXRoaW5nIHdlIGRlY2lkZWQKPiBub3QgdG8gaGF2 ZS4KPiAKPiBJIG5vdGljZWQgdGhpcyB3aGlsZSBkb2luZyBhOiAibWFrZSAtQyB0b29scy9wZXJm IGJ1aWxkLXRlc3QiLCB0aGUgZmlyc3QKPiB0ZXN0IGNyZWF0ZXMgYSBwZXJmIHRhcmJhbGwgYW5k IHRoZW4gdHJpZXMgdG8gYnVpbGQgaXQgYWZ0ZXIKPiB1bmNvbXByZXNzaW5nIGl0IHNvbWV3aGVy ZSBvdXQgb2YgdGhlIGNoZWNrZWQgb3V0IGtlcm5lbCBzb3VyY2UgdHJlZToKPiAKPiDirKIgW2Fj bWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJCBtYWtlIGhlbHAgfCBncmVwIHBlcmYKPiAgIHBl cmYtdGFyLXNyYy1wa2cgICAgLSBCdWlsZCB0aGUgcGVyZiBzb3VyY2UgdGFyYmFsbCB3aXRoIG5v IGNvbXByZXNzaW9uCj4gICBwZXJmLXRhcmd6LXNyYy1wa2cgIC0gQnVpbGQgdGhlIHBlcmYgc291 cmNlIHRhcmJhbGwgd2l0aCBnemlwIGNvbXByZXNzaW9uCj4gICBwZXJmLXRhcmJ6Mi1zcmMtcGtn IC0gQnVpbGQgdGhlIHBlcmYgc291cmNlIHRhcmJhbGwgd2l0aCBiejIgY29tcHJlc3Npb24KPiAg IHBlcmYtdGFyeHotc3JjLXBrZyAgLSBCdWlsZCB0aGUgcGVyZiBzb3VyY2UgdGFyYmFsbCB3aXRo IHh6IGNvbXByZXNzaW9uCj4gICBwZXJmLXRhcnpzdC1zcmMtcGtnIC0gQnVpbGQgdGhlIHBlcmYg c291cmNlIHRhcmJhbGwgd2l0aCB6c3QgY29tcHJlc3Npb24KPiDirKIgW2FjbWVAdG9vbGJveCBw ZXJmLXRvb2xzLW5leHRdJCBtYWtlIHBlcmYtdGFyeHotc3JjLXBrZwo+ICAgVVBEICAgICAudG1w X0hFQUQKPiAgIENPUFkgICAgLnRtcF9wZXJmL0hFQUQKPiAgIEdFTiAgICAgLnRtcF9wZXJmL1BF UkYtVkVSU0lPTi1GSUxFCj4gICBQRVJGX1ZFUlNJT04gPSA2LjEzLnJjMi5nNDhkM2VlZmFhNjgz Cj4gICBBUkNISVZFIHBlcmYtNi4xMy4wLXJjMi50YXIueHoKPiDirKIgW2FjbWVAdG9vbGJveCBw ZXJmLXRvb2xzLW5leHRdJCBtdiBwZXJmLTYuMTMuMC1yYzIudGFyLnh6IH4KPiDirKIgW2FjbWVA dG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJCBjZCB+Cj4g4qyiIFthY21lQHRvb2xib3ggfl0kIHRh ciB4dmYgcGVyZi02LjEzLjAtcmMyLnRhci54eiB8IHRhaWwgLTUKPiBwZXJmLTYuMTMuMC1yYzIv dG9vbHMvc2NyaXB0cy9NYWtlZmlsZS5pbmNsdWRlCj4gcGVyZi02LjEzLjAtcmMyL3Rvb2xzL3Nj cmlwdHMvc3lzY2FsbC50YmwKPiBwZXJmLTYuMTMuMC1yYzIvdG9vbHMvc2NyaXB0cy91dGlsaXRp ZXMubWFrCj4gcGVyZi02LjEzLjAtcmMyL0hFQUQKPiBwZXJmLTYuMTMuMC1yYzIvUEVSRi1WRVJT SU9OLUZJTEUKPiDirKIgW2FjbWVAdG9vbGJveCB+XSQgY2QgcGVyZi02LjEzLjAtcmMyLwo+IOKs oiBbYWNtZUB0b29sYm94IHBlcmYtNi4xMy4wLXJjMl0kIG1ha2UgLUMgdG9vbHMvcGVyZgo+IG1h a2U6IEVudGVyaW5nIGRpcmVjdG9yeSAnL2hvbWUvYWNtZS9wZXJmLTYuMTMuMC1yYzIvdG9vbHMv cGVyZicKPiAgIEJVSUxEOiAgIERvaW5nICdtYWtlIC1qMjgnIHBhcmFsbGVsIGJ1aWxkCj4gV2Fy bmluZzogU2tpcHBlZCBjaGVjay1oZWFkZXJzIGR1ZSB0byBtaXNzaW5nIC4uLy4uL2luY2x1ZGUK PiAKPiBBdXRvLWRldGVjdGluZyBzeXN0ZW0gZmVhdHVyZXM6Cj4gLi4uICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJkdzogWyBvbiAgXQo+IC4uLiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2xpYmM6IFsgb24gIF0KPiAuLi4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGliYmZkOiBbIG9uICBdCj4gLi4uICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJiZmQtYnVpbGRpZDogWyBvbiAgXQo+IC4uLiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJlbGY6IFsgb24gIF0KPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsaWJudW1hOiBbIG9uICBdCj4gLi4uICAgICAgICAgICAgICAgICAgbnVtYV9udW1f cG9zc2libGVfY3B1czogWyBvbiAgXQo+IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnBlcmw6IFsgb24gIF0KPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlicHl0aG9uOiBbIG9uICBdCj4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp YmNyeXB0bzogWyBvbiAgXQo+IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ1 bndpbmQ6IFsgb24gIF0KPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYmNhcHN0 b25lOiBbIG9uICBdCj4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxsdm0tcGVy ZjogWyBvbiAgXQo+IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpsaWI6 IFsgb24gIF0KPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsem1hOiBb IG9uICBdCj4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9jcHVpZDogWyBv biAgXQo+IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicGY6IFsgb24g IF0KPiAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliYWlvOiBbIG9uICBd Cj4gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlienN0ZDogWyBvbiAgXQo+ IAo+IC9ob21lL2FjbWUvcGVyZi02LjEzLjAtcmMyL3Rvb2xzL3BlcmYvc2NyaXB0cy9NYWtlZmls ZS5zeXNjYWxsczoxODogL2hvbWUvYWNtZS9wZXJmLTYuMTMuMC1yYzIvc2NyaXB0cy9LYnVpbGQu aW5jbHVkZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQo+IG1ha2VbMl06ICoqKiBObyBydWxl IHRvIG1ha2UgdGFyZ2V0ICcvaG9tZS9hY21lL3BlcmYtNi4xMy4wLXJjMi9zY3JpcHRzL0tidWls ZC5pbmNsdWRlJy4gIFN0b3AuCj4gbWFrZVsxXTogKioqIFtNYWtlZmlsZS5wZXJmOjI4Njogc3Vi LW1ha2VdIEVycm9yIDIKPiBtYWtlOiAqKiogW01ha2VmaWxlOjc2OiBhbGxdIEVycm9yIDIKPiBt YWtlOiBMZWF2aW5nIGRpcmVjdG9yeSAnL2hvbWUvYWNtZS9wZXJmLTYuMTMuMC1yYzIvdG9vbHMv cGVyZicKPiDirKIgW2FjbWVAdG9vbGJveCBwZXJmLTYuMTMuMC1yYzJdJCAKPiAKPiBUaGlzIHdv dWxkIHByb2JhYmx5IChpdCBkb2VzLCBqdXN0IHRlc3RlZCwgYnV0IHJlYWQgb24pIG1ha2UgaXQg d29yazoKPiAKPiDirKIgW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJCBnaXQgZGlmZgo+ IGRpZmYgLS1naXQgYS90b29scy9wZXJmL01BTklGRVNUIGIvdG9vbHMvcGVyZi9NQU5JRkVTVAo+ IGluZGV4IGRjNDJkZTE3ODVjZWU3MTUuLjgzZWY1ZDEzNjU4ODA5MjkgMTAwNjQ0Cj4gLS0tIGEv dG9vbHMvcGVyZi9NQU5JRkVTVAo+ICsrKyBiL3Rvb2xzL3BlcmYvTUFOSUZFU1QKPiBAQCAtMjIs NiArMjIsNyBAQCB0b29scy9saWIvc3RyX2Vycm9yX3IuYwo+ICB0b29scy9saWIvdnNwcmludGYu Ywo+ICB0b29scy9saWIvemFsbG9jLmMKPiAgc2NyaXB0cy9icGZfZG9jLnB5Cj4gK3NjcmlwdHMv S2J1aWxkLmluY2x1ZGUKPiAgdG9vbHMvYnBmL2JwZnRvb2wKPiAga2VybmVsL2JwZi9kaXNhc20u Ywo+ICBrZXJuZWwvYnBmL2Rpc2FzbS5oCj4g4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1u ZXh0XSQKPiAKPiBBcyBub3cgd2Ugd291bGQgZmluZCBpdCwgYnV0IHRoZW4gaXQgcmVmZXJlbmNl cyBzb21lIG90aGVyIHBhcnQgb2YgdGhlCj4ga2VybmVsJ3MgS2J1aWxkIHN5c3RlbToKPiAKPiDi rKIgW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJCBncmVwIC13IHNyY3RyZWUgc2NyaXB0 cy9LYnVpbGQuaW5jbHVkZQo+IGJ1aWxkIDo9IC1mICQoc3JjdHJlZSkvc2NyaXB0cy9NYWtlZmls ZS5idWlsZCBvYmoKPiBjbGVhbiA6PSAtZiAkKHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuY2xl YW4gb2JqCj4g4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQKPiAKPiBBbmQgcGVy ZiBoYXM6Cj4gCj4g4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQgZmluZCB0b29s cy8gLW5hbWUgTWFrZWZpbGUuYnVpbGQKPiB0b29scy9idWlsZC9NYWtlZmlsZS5idWlsZAo+IOKs oiBbYWNtZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kCj4gCj4gQW5kIHdlIGFsc28gaGF2ZToK PiAKPiDirKIgW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5leHRdJCBscyAtbGEgdG9vbHMvc2Ny aXB0cy8KPiB0b3RhbCA0MAo+IGRyd3hyLXhyLXguIDEgYWNtZSBhY21lICAgMTA2IEphbiAgOCAx OToxMyAuCj4gZHJ3eHIteHIteC4gMSBhY21lIGFjbWUgICA1MTQgSmFuICA4IDExOjM5IC4uCj4g LXJ3LXItLXItLS4gMSBhY21lIGFjbWUgIDEyMjQgSmFuICA4IDExOjQxIE1ha2VmaWxlLmFyY2gK PiAtcnctci0tci0tLiAxIGFjbWUgYWNtZSAgNjIwNSBEZWMgMjAgMjE6NDggTWFrZWZpbGUuaW5j bHVkZQo+IC1ydy1yLS1yLS0uIDEgYWNtZSBhY21lIDE3NDAxIEphbiAgOCAxOToxMyBzeXNjYWxs LnRibAo+IC1ydy1yLS1yLS0uIDEgYWNtZSBhY21lICA2MTg2IERlYyAyMCAyMTo0OCB1dGlsaXRp ZXMubWFrCj4g4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQKPiAKPiBBbmQ6Cj4g Cj4g4qyiIFthY21lQHRvb2xib3ggcGVyZi10b29scy1uZXh0XSQgZ3JlcCAtdyBidWlsZCB0b29s cy9idWlsZC9NYWtlZmlsZS5pbmNsdWRlIAo+IGJ1aWxkIDo9IC1mICQoc3JjdHJlZSkvdG9vbHMv YnVpbGQvTWFrZWZpbGUuYnVpbGQgZGlyPS4gb2JqCj4gCSQoU0lMRU5UX01BS0UpIC1DICQoc3Jj dHJlZSkvdG9vbHMvYnVpbGQgQ0ZMQUdTPSBMREZMQUdTPSAkKE9VVFBVVClmaXhkZXAKPiAJJChR KSQoTUFLRSkgLUMgJChzcmN0cmVlKS90b29scy9idWlsZCBjbGVhbgo+IOKsoiBbYWNtZUB0b29s Ym94IHBlcmYtdG9vbHMtbmV4dF0kCj4gCj4gVGhhdCBpcyBhbHNvIGluOgo+IAo+IOKsoiBbYWNt ZUB0b29sYm94IHBlcmYtdG9vbHMtbmV4dF0kIGdyZXAgLXcgYnVpbGQgc2NyaXB0cy9LYnVpbGQu aW5jbHVkZSAKPiAjIFNob3J0aGFuZCBmb3IgJChRKSQoTUFLRSkgLWYgc2NyaXB0cy9NYWtlZmls ZS5idWlsZCBvYmo9Cj4gIyAkKFEpJChNQUtFKSAkKGJ1aWxkKT1kaXIKPiBidWlsZCA6PSAtZiAk KHNyY3RyZWUpL3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQgb2JqCj4gIyB0aGUgaW50ZXJydXB0ZWQg cmVjaXBlLiBTbywgeW91IGNhbiBzYWZlbHkgc3RvcCB0aGUgYnVpbGQgYnkgQ3RybC1DIChNYWtl Cj4gIyAoMSkgUEhPTlkgdGFyZ2V0cyBhcmUgYWx3YXlzIGJ1aWxkCj4gIyAoMikgTm8gdGFyZ2V0 LCBzbyB3ZSBiZXR0ZXIgYnVpbGQgaXQKPiDirKIgW2FjbWVAdG9vbGJveCBwZXJmLXRvb2xzLW5l eHRdJAo+IAo+IFNvIGl0IHNlZW1zIHdlIG5lZWQgdG8gbG9vayBhdCB3aGF0IHdlJ3JlIHVzaW5n IGZyb20gdGhlIGtlcm5lbCdzCj4gc2NyaXB0cy9NYWtlZmlsZS5idWlsZCB0byBoYXZlIGl0IGlu IGEgdG9vbHMvYnVpbGQvIGZpbGUuCj4gCj4gSXRzIGxhdGUgaGVyZSBhbmQgSSdsbCBoYXZlIHRv IHN0b3AgYXQgdGhpcyBwb2ludCwgcGxlYXNlIHRha2UgYSBsb29rIHRvCj4gc2VlIGlmIHRoaXMg Y2FuIGJlIGVhc2lseSByZXNvbHZlZCBzbyB0aGF0IHdlIGNhbiBtZXJnZSB5b3VyIHNlcmllcywg SQo+IHZlcnkgbXVjaCBsaWtlIHRvIHNheSBnb29kYnllIHRvIG9uZSBtb3JlIHRvb2xzL3BlcmYg bGlicmFyeSBkZXBlbmRlbmN5Cj4gOi0pCgpUaGFuayB5b3UgZm9yIHBvaW50aW5nIHRoaXMgb3V0 LiBXZSBjYW4gdXNlIHRvb2xzL2J1aWxkL0J1aWxkLmluY2x1ZGUKd2hpY2ggc2VlbXMgdG8gaGF2 ZSBldmVyeXRoaW5nIHRoYXQgaXMgcmVxdWlyZWQuICBBICJzcGFjZSIgY29udmVuaWVuY2UKdmFy aWFibGUgbmVlZHMgdG8gYmUgYWRkZWQsIGJ1dCB0aGF0IGlzIGFsbC4gSSdsbCBzZW5kIGFuIHVw ZGF0ZWQKdmVyc2lvbiB3aXRoIHRoYXQgY2hhbmdlLgoKLSBDaGFybGllCgo+IAo+IEJlc3QgcmVn YXJkcywKPiAKPiAtIEFybmFsZG8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtcmlzY3YK