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 9AE3BC19F32 for ; Wed, 26 Feb 2025 23:49:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type: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=dWT+sIHxongR39EJz+3TGOc+Qy+Ujo1dooiHraJ6FqY=; b=HBgErFk/ewm7sh2f6iw+bGEXoI QXtOcFekjMTc3ED4RfT/Y9lgCzcPSJMKzCf59XXIuFngF4IK3yWSN0izVkj3N1rvBxmth7VFCSsIv c3gL3tZ+cOisXzpdHq7E3qMJn28CKZ9X+ly4gu/SdzZbFDMo4mIUa5zZZhuhUIlOCU+9UfLZJXAJj gkzWy8JVPTajzUq//YeJdkfx4o8j0mpwPUHH+cEJds61255B905xLiYX+lwPPOrSE3MDQVUg1Q27p CN8YBLCtFhjkTeAG1n8ScW0EGxH4fQUrvpzeHlv6CD1MgwNy2m/ubpqczL78hFi+0mk5sIGWs59Rc tayLoHiA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tnR9I-00000005k9n-0syk; Wed, 26 Feb 2025 23:49:08 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tnR7j-00000005jyy-2mOx; Wed, 26 Feb 2025 23:47:33 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id CC6995C71CF; Wed, 26 Feb 2025 23:46:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41D2CC4CED6; Wed, 26 Feb 2025 23:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740613650; bh=9gh38cLMFslMKg9mxXqa/8TIiaIyScOmY7iBmk/7J+A=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ccLwNz0JqSL2cY/6ZgKbo3RBuAAjgne4TJXxfOD7rihL/L9trPi1YF8vosAn0jhY0 PXxM8QfCKDAAl4VBg4GmwRKOnFf/mTkfVTC/oLVg+2nEAqsisSf828LAX0nMZcaRiM eP9wpZcxP2SoknA3ClZbZvCNLQZrHJdpV2CD3U4Ro7URpToeVFR9/N3FcZKAJOMvny oot69foyQLUf3qYNRMBiFdJT6K2Fxa2u409gSm+pGSSA9Gr/sJ7NoeiFbmjwswHcjr EKKcuhXwmQlbrGhNbVBviIFmfAbJ52s/Kqj+Efh6SoifMX47/veK/or6DFrSigNlpy lhKE8RMM7deXQ== Date: Wed, 26 Feb 2025 15:47:27 -0800 From: Namhyung Kim To: Ian Rogers Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , guoren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Charlie Jenkins , Bibo Mao , Huacai Chen , Catalin Marinas , Jiri Slaby , =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= , Howard Chu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "linux-csky@vger.kernel.org" , linux-riscv@lists.infradead.org, linux-mips@vger.kernel.org, Arnd Bergmann Subject: Re: [PATCH v3 0/8] perf: Support multiple system call tables in the build Message-ID: References: <20250219185657.280286-1-irogers@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250226_154731_782880_4DF6A008 X-CRM114-Status: GOOD ( 37.58 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Feb 25, 2025 at 06:47:58PM -0800, Namhyung Kim wrote: > On Mon, Feb 24, 2025 at 09:40:55PM -0800, Namhyung Kim wrote: > > On Mon, Feb 24, 2025 at 08:37:01PM -0800, Ian Rogers wrote: > > > On Mon, Feb 24, 2025 at 7:05 PM Namhyung Kim wrote: > > > > > > > > On Wed, Feb 19, 2025 at 10:56:49AM -0800, Ian Rogers wrote: > > > > > This work builds on the clean up of system call tables and removal of > > > > > libaudit by Charlie Jenkins . > > > > > > > > > > The system call table in perf trace is used to map system call numbers > > > > > to names and vice versa. Prior to these changes, a single table > > > > > matching the perf binary's build was present. The table would be > > > > > incorrect if tracing say a 32-bit binary from a 64-bit version of > > > > > perf, the names and numbers wouldn't match. > > > > > > > > > > Change the build so that a single system call file is built and the > > > > > potentially multiple tables are identifiable from the ELF machine type > > > > > of the process being examined. To determine the ELF machine type, the > > > > > executable's header is read from /proc/pid/exe with fallbacks to using > > > > > the perf's binary type when unknown. > > > > > > > > > > Remove some runtime types used by the system call tables and make > > > > > equivalents generated at build time. > > > > > > > > So I tested this with a test program. > > > > > > > > $ cat a.c > > > > #include > > > > int main(void) > > > > { > > > > char buf[4096]; > > > > FILE *fp = fopen("a.c", "r"); > > > > size_t len; > > > > > > > > len = fread(buf, sizeof(buf), 1, fp); > > > > fwrite(buf, 1, len, stdout); > > > > fflush(stdout); > > > > fclose(fp); > > > > return 0; > > > > } > > > > > > > > $ gcc -o a64.out a.c > > > > $ gcc -o a32.out -m32 a.c > > > > > > > > $ ./perf version > > > > perf version 6.14.rc1.ge002a64f6188 > > > > > > > > $ git show > > > > commit e002a64f61882626992dd6513c0db3711c06fea7 (HEAD -> perf-check) > > > > Author: Ian Rogers > > > > Date: Wed Feb 19 10:56:57 2025 -0800 > > > > > > > > perf syscalltbl: Mask off ABI type for MIPS system calls > > > > > > > > Arnd Bergmann described that MIPS system calls don't necessarily start > > > > from 0 as an ABI prefix is applied: > > > > https://lore.kernel.org/lkml/8ed7dfb2-1e4d-4aa4-a04b-0397a89365d1@app.fastmail.com/ > > > > When decoding the "id" (aka system call number) for MIPS ignore values > > > > greater-than 1000. > > > > > > > > Signed-off-by: Ian Rogers > > > > > > > > It works well with 64bit. > > > > > > > > $ sudo ./perf trace ./a64.out |& tail > > > > 0.266 ( 0.007 ms): a64.out/858681 munmap(addr: 0x7f392723a000, len: 109058) = 0 > > > > 0.286 ( 0.002 ms): a64.out/858681 getrandom(ubuf: 0x7f3927232178, len: 8, flags: NONBLOCK) = 8 > > > > 0.289 ( 0.001 ms): a64.out/858681 brk() = 0x56419ecf7000 > > > > 0.291 ( 0.002 ms): a64.out/858681 brk(brk: 0x56419ed18000) = 0x56419ed18000 > > > > 0.299 ( 0.009 ms): a64.out/858681 openat(dfd: CWD, filename: "a.c") = 3 > > > > 0.312 ( 0.001 ms): a64.out/858681 fstat(fd: 3, statbuf: 0x7ffdfadf1eb0) = 0 > > > > 0.315 ( 0.002 ms): a64.out/858681 read(fd: 3, buf: 0x7ffdfadf2030, count: 4096) = 211 > > > > 0.318 ( 0.009 ms): a64.out/858681 read(fd: 3, buf: 0x56419ecf7480, count: 4096) = 0 > > > > 0.330 ( 0.001 ms): a64.out/858681 close(fd: 3) = 0 > > > > 0.338 ( ): a64.out/858681 exit_group() = ? > > > > > > > > But 32bit is still broken and use 64bit syscall table wrongly. > > > > > > > > $ file a32.out > > > > a32.out: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, > > > > BuildID[sha1]=6eea873c939012e6c715e8f030261642bf61cb4e, for GNU/Linux 3.2.0, not stripped > > > > > > > > $ sudo ./perf trace ./a32.out |& tail > > > > 0.296 ( 0.001 ms): a32.out/858699 getxattr(pathname: "", name: "������", value: 0xf7f6ce14, size: 1) = 0 > > > > 0.305 ( 0.007 ms): a32.out/858699 fchmod(fd: -134774784, mode: IFLNK|ISUID|ISVTX|IWOTH|0x10000) = 0 > > > > 0.333 ( 0.001 ms): a32.out/858699 recvfrom(size: 4160146964, flags: RST|0x20000, addr: 0xf7f6ce14, addr_len: 0xf7f71278) = 1481879552 > > > > 0.335 ( 0.004 ms): a32.out/858699 recvfrom(fd: 1482014720, ubuf: 0xf7f71278, size: 4160146964, flags: NOSIGNAL|MORE|WAITFORONE|BATCH|SPLICE_PAGES|CMSG_CLOEXEC|0x10500000, addr: 0xf7f6ce14, addr_len: 0xf7f71278) = 1482014720 > > > > 0.355 ( 0.002 ms): a32.out/858699 recvfrom(fd: 1482018816, ubuf: 0x5855d000, size: 4160146964, flags: RST|NOSIGNAL|MORE|WAITFORONE|BATCH|SPLICE_PAGES|CMSG_CLOEXEC|0x10500000, addr: 0xf7f6ce14, addr_len: 0xf7f71278) = 1482018816 > > > > 0.362 ( 0.010 ms): a32.out/858699 preadv(fd: 4294967196, vec: (struct iovec){.iov_base = (void *)0x1b01000000632e62,.iov_len = (__kernel_size_t)1125899909479171,}, pos_h: 4160146964) = 3 > > > > 0.385 ( 0.002 ms): a32.out/858699 close(fd: 3) = 211 > > > > 0.388 ( 0.001 ms): a32.out/858699 close(fd: 3) = 0 > > > > 0.393 ( 0.002 ms): a32.out/858699 lstat(filename: "") = 0 > > > > 0.396 ( 0.004 ms): a32.out/858699 recvfrom(fd: 1482014720, size: 4160146964, flags: NOSIGNAL|MORE|WAITFORONE|BATCH|SPLICE_PAGES|CMSG_CLOEXEC|0x10500000, addr: 0xf7f6ce14, addr_len: 0xf7f71278) = 1482014720 > > > > > > > > The last 5 should be openat, read, read, close and brk(?). > > > > > > That's strange as nearly the same test works for me: > > > ``` > > > $ git show > > > commit 7920020237af8138f7be1a21be9a2918a71ddc5e (HEAD -> ptn-syscalltbl) > > > Author: Ian Rogers > > > Date: Fri Jan 31 21:34:07 2025 -0800 > > > > > > perf syscalltbl: Mask off ABI type for MIPS system calls > > > > > > Arnd Bergmann described that MIPS system calls don't necessarily start > > > from 0 as an ABI prefix is applied: > > > https://lore.kernel.org/lkml/8ed7dfb2-1e4d-4aa4-a04b-0397a89365d1@app.fastmail.com/ > > > When decoding the "id" (aka system call number) for MIPS ignore values > > > greater-than 1000. > > > > > > Signed-off-by: Ian Rogers > > > .. > > > $ file a.out > > > a.out: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), > > > dynamically linked, interpreter /lib/ld-linux.so.2, > > > BuildID[sha1]=3fcd28f85a27a3108941661a91dbc675c06868f9, for GNU/Linux > > > 3.2.0, not stripped > > > $ sudo /tmp/perf/perf trace ./a.out > > > ... > > > ? ( ): a.out/218604 ... [continued]: execve()) > > > = 0 > > > 0.067 ( 0.003 ms): a.out/218604 brk() > > > = 0x5749e000 > > > 0.154 ( 0.007 ms): a.out/218604 access(filename: 0xf7fc7f28, > > > mode: R) = -1 ENOENT (No such file or > > > directory) > > > 0.168 ( 0.023 ms): a.out/218604 openat(dfd: CWD, filename: > > > 0xf7fc44c3, flags: RDONLY|CLOEXEC|LARGEFILE) = 3 > > > 0.193 ( 0.006 ms): a.out/218604 statx(dfd: > > > 3, filename: 0xf7fc510a, flags: > > > NO_AUTOMOUNT|EMPTY_PATH, mask: > > > TYPE|MODE|NLINK|UID|GID|ATIME|MTIME|CTIME|INO|SIZE|BLOCKS, buffer: > > > 0xffaa6b88) = 0 > > > 0.212 ( 0.002 ms): a.out/218604 close(fd: 3) > > > = 0 > > > 0.233 ( 0.019 ms): a.out/218604 openat(dfd: CWD, filename: > > > 0xf7f973e0, flags: RDONLY|CLOEXEC|LARGEFILE) = 3 > > > 0.255 ( 0.004 ms): a.out/218604 read(fd: 3, > > > buf: 0xffaa6df0, count: 512) = 512 > > > 0.262 ( 0.003 ms): a.out/218604 statx(dfd: > > > 3, filename: 0xf7fc510a, flags: > > > NO_AUTOMOUNT|EMPTY_PATH, mask: > > > TYPE|MODE|NLINK|UID|GID|ATIME|MTIME|CTIME|INO|SIZE|BLOCKS, buffer: > > > 0xffaa6b38) = 0 > > > 0.347 ( 0.002 ms): a.out/218604 close(fd: 3) > > > = 0 > > > 0.372 ( 0.002 ms): a.out/218604 set_tid_address(tidptr: > > > 0xf7f98528) = 218604 (a.out) > > > 0.376 ( 0.002 ms): a.out/218604 set_robust_list(head: 0xf7f9852c, > > > len: 12) = > > > 0.381 ( 0.002 ms): a.out/218604 rseq(rseq: 0xf7f98960, rseq_len: > > > 32, sig: 1392848979) = > > > 0.469 ( 0.010 ms): a.out/218604 mprotect(start: 0xf7f6e000, len: > > > 8192, prot: READ) = 0 > > > 0.489 ( 0.007 ms): a.out/218604 mprotect(start: 0x5661a000, len: > > > 4096, prot: READ) = 0 > > > 0.503 ( 0.007 ms): a.out/218604 mprotect(start: 0xf7fd0000, len: > > > 8192, prot: READ) = 0 > > > 0.550 ( 0.015 ms): a.out/218604 munmap(addr: 0xf7f7b000, len: > > > 111198) = 0 > > > 0.589 ( 0.035 ms): a.out/218604 openat(dfd: CWD, filename: > > > 0x56619008) = 3 > > > 0.627 ( 0.024 ms): a.out/218604 read(fd: 3, > > > buf: 0xffaa68fc, count: 4096) = 1437 > > > 0.654 ( 0.090 ms): a.out/218604 write(fd: 1, buf: , > > > count: 1437) = 1437 > > > 0.766 (1000.164 ms): a.out/218604 clock_nanosleep(rqtp: > > > 0xffaa6824, rmtp: 0xffaa681c) = 0 > > > 1000.942 ( ): a.out/218604 exit_group() > > > $ file /tmp/perf/perf > > > /tmp/perf/perf: ELF 64-bit LSB pie executable, x86-64, version 1 > > > (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, > > > BuildID[sha1]=60b07f65d2559a7193b2d1d36cfa00054dfbd076, for GNU/Linux > > > 3.2.0, with debug_info, not stripped > > > ``` > > > Perhaps your a.out binary was built as an x32 one? > > > Looking under the covers with gdb: > > > ``` > > > $ sudo gdb --args /tmp/perf/perf trace ./a.out > > > GNU gdb (Debian 15.1-1) 15.1 > > > ... > > > Reading symbols from /tmp/perf/perf... > > > (gdb) b syscalltbl__name > > > Breakpoint 1 at 0x23a51b: file util/syscalltbl.c, line 47. > > > (gdb) r > > > ... > > > [Detaching after vfork from child process 218826] > > > > > > Breakpoint 1, syscalltbl__name (e_machine=3, id=11) at util/syscalltbl.c:47 > > > 47 const struct syscalltbl *table = find_table(e_machine); > > > ``` > > > So the e_machine is 3 which corresponds to EM_386. > > > > > > I've not fixed every use of syscalltbl but I believe this one is working. > > > > Strange. I'm seeing 62 (x86_64). > > > > $ sudo gdb -q --args ./perf trace ./a32.out > > Reading symbols from ./perf... > > (gdb) b syscalltbl__name > > Breakpoint 1 at 0x27998b: file util/syscalltbl.c, line 46. > > (gdb) r > > Starting program: /home/namhyung/tmp/perf trace ./a32.out > > [Thread debugging using libthread_db enabled] > > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > > [Detaching after fork from child process 886888] > > > > Breakpoint 1, syscalltbl__name (e_machine=62, id=156) at util/syscalltbl.c:46 > > 46 { > > > > But the binary is i386. > > > > $ file a32.out > > a32.out: ELF 32-bit LSB pie executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, > > BuildID[sha1]=6eea873c939012e6c715e8f030261642bf61cb4e, for GNU/Linux 3.2.0, not stripped > > > > $ readelf -h a32.out > > ELF Header: > > Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 > > Class: ELF32 > > Data: 2's complement, little endian > > Version: 1 (current) > > OS/ABI: UNIX - System V > > ABI Version: 0 > > Type: DYN (Position-Independent Executable file) > > Machine: Intel 80386 > > Version: 0x1 > > Entry point address: 0x10a0 > > Start of program headers: 52 (bytes into file) > > Start of section headers: 13932 (bytes into file) > > Flags: 0x0 > > Size of this header: 52 (bytes) > > Size of program headers: 32 (bytes) > > Number of program headers: 11 > > Size of section headers: 40 (bytes) > > Number of section headers: 30 > > Section header string table index: 29 > > > > $ hexdump -C -n 32 a32.out > > 00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............| > > 00000010 03 00 03 00 01 00 00 00 a0 10 00 00 34 00 00 00 |............4...| > > 00000020 ----- ----- > > ^ ^ > > | | > > ET_DYN | > > EM_386 > > > > I found it failed to open /proc/PID/exe for some reason. It failed with > ENOENT but I've confirmed there's /proc/PID directory. Strange... It sometimes succeeded and showed the correct syscall names. :( I don't know what's the problem on my machine. But I think this is a pre-exisiting problem and this patch improves it. Thanks, Namhyung 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 B8AB2C021B8 for ; Wed, 26 Feb 2025 23:49:13 +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=sHB044sT86ZjlKMFZ7Nvik/t/iXLR7MApJe408LcIKk=; b=2V8JxIz1tsBYRR DHiylk+tEbkJplOQy7b0NFfz/6aICrfBKYLyKWC7M3ZQYq553tq99SSG0g87h2KYv655a9JSazQPu KNApxh2EVSgUY/v4PMDzVQ3zdmZW+Epmd5jAZ6FH8PhzUhUH5bX7jaJxpxqOqxGNYd6Pal5xxG888 Qi/emgpJvGSOyvf0Ag5s4l8/5iKmpWmOHXDk6P4lwcYE18yMyNd3pTT2PW5BoVTTzO7JGhqiszRq3 J4x0QkTH69l+GXeaVW4lz8/XVVOGr3xpiizbjv3EN0UyP04ryJMOvPA2VTQNNKMlDEpMhUG1lWmjT x9bDqr3DdcRS1GjmwrEA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tnR9I-00000005kA5-330J; Wed, 26 Feb 2025 23:49:08 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tnR7j-00000005jyy-2mOx; Wed, 26 Feb 2025 23:47:33 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id CC6995C71CF; Wed, 26 Feb 2025 23:46:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 41D2CC4CED6; Wed, 26 Feb 2025 23:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1740613650; bh=9gh38cLMFslMKg9mxXqa/8TIiaIyScOmY7iBmk/7J+A=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ccLwNz0JqSL2cY/6ZgKbo3RBuAAjgne4TJXxfOD7rihL/L9trPi1YF8vosAn0jhY0 PXxM8QfCKDAAl4VBg4GmwRKOnFf/mTkfVTC/oLVg+2nEAqsisSf828LAX0nMZcaRiM eP9wpZcxP2SoknA3ClZbZvCNLQZrHJdpV2CD3U4Ro7URpToeVFR9/N3FcZKAJOMvny oot69foyQLUf3qYNRMBiFdJT6K2Fxa2u409gSm+pGSSA9Gr/sJ7NoeiFbmjwswHcjr EKKcuhXwmQlbrGhNbVBviIFmfAbJ52s/Kqj+Efh6SoifMX47/veK/or6DFrSigNlpy lhKE8RMM7deXQ== Date: Wed, 26 Feb 2025 15:47:27 -0800 From: Namhyung Kim To: Ian Rogers Cc: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , guoren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Charlie Jenkins , Bibo Mao , Huacai Chen , Catalin Marinas , Jiri Slaby , =?utf-8?B?QmrDtnJuIFTDtnBlbA==?= , Howard Chu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "linux-csky@vger.kernel.org" , linux-riscv@lists.infradead.org, linux-mips@vger.kernel.org, Arnd Bergmann Subject: Re: [PATCH v3 0/8] perf: Support multiple system call tables in the build Message-ID: References: <20250219185657.280286-1-irogers@google.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-20250226_154731_782880_4DF6A008 X-CRM114-Status: GOOD ( 37.58 ) 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 T24gVHVlLCBGZWIgMjUsIDIwMjUgYXQgMDY6NDc6NThQTSAtMDgwMCwgTmFtaHl1bmcgS2ltIHdy b3RlOgo+IE9uIE1vbiwgRmViIDI0LCAyMDI1IGF0IDA5OjQwOjU1UE0gLTA4MDAsIE5hbWh5dW5n IEtpbSB3cm90ZToKPiA+IE9uIE1vbiwgRmViIDI0LCAyMDI1IGF0IDA4OjM3OjAxUE0gLTA4MDAs IElhbiBSb2dlcnMgd3JvdGU6Cj4gPiA+IE9uIE1vbiwgRmViIDI0LCAyMDI1IGF0IDc6MDXigK9Q TSBOYW1oeXVuZyBLaW0gPG5hbWh5dW5nQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ ID4gT24gV2VkLCBGZWIgMTksIDIwMjUgYXQgMTA6NTY6NDlBTSAtMDgwMCwgSWFuIFJvZ2VycyB3 cm90ZToKPiA+ID4gPiA+IFRoaXMgd29yayBidWlsZHMgb24gdGhlIGNsZWFuIHVwIG9mIHN5c3Rl bSBjYWxsIHRhYmxlcyBhbmQgcmVtb3ZhbCBvZgo+ID4gPiA+ID4gbGliYXVkaXQgYnkgQ2hhcmxp ZSBKZW5raW5zIDxjaGFybGllQHJpdm9zaW5jLmNvbT4uCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhl IHN5c3RlbSBjYWxsIHRhYmxlIGluIHBlcmYgdHJhY2UgaXMgdXNlZCB0byBtYXAgc3lzdGVtIGNh bGwgbnVtYmVycwo+ID4gPiA+ID4gdG8gbmFtZXMgYW5kIHZpY2UgdmVyc2EuIFByaW9yIHRvIHRo ZXNlIGNoYW5nZXMsIGEgc2luZ2xlIHRhYmxlCj4gPiA+ID4gPiBtYXRjaGluZyB0aGUgcGVyZiBi aW5hcnkncyBidWlsZCB3YXMgcHJlc2VudC4gVGhlIHRhYmxlIHdvdWxkIGJlCj4gPiA+ID4gPiBp bmNvcnJlY3QgaWYgdHJhY2luZyBzYXkgYSAzMi1iaXQgYmluYXJ5IGZyb20gYSA2NC1iaXQgdmVy c2lvbiBvZgo+ID4gPiA+ID4gcGVyZiwgdGhlIG5hbWVzIGFuZCBudW1iZXJzIHdvdWxkbid0IG1h dGNoLgo+ID4gPiA+ID4KPiA+ID4gPiA+IENoYW5nZSB0aGUgYnVpbGQgc28gdGhhdCBhIHNpbmds ZSBzeXN0ZW0gY2FsbCBmaWxlIGlzIGJ1aWx0IGFuZCB0aGUKPiA+ID4gPiA+IHBvdGVudGlhbGx5 IG11bHRpcGxlIHRhYmxlcyBhcmUgaWRlbnRpZmlhYmxlIGZyb20gdGhlIEVMRiBtYWNoaW5lIHR5 cGUKPiA+ID4gPiA+IG9mIHRoZSBwcm9jZXNzIGJlaW5nIGV4YW1pbmVkLiBUbyBkZXRlcm1pbmUg dGhlIEVMRiBtYWNoaW5lIHR5cGUsIHRoZQo+ID4gPiA+ID4gZXhlY3V0YWJsZSdzIGhlYWRlciBp cyByZWFkIGZyb20gL3Byb2MvcGlkL2V4ZSB3aXRoIGZhbGxiYWNrcyB0byB1c2luZwo+ID4gPiA+ ID4gdGhlIHBlcmYncyBiaW5hcnkgdHlwZSB3aGVuIHVua25vd24uCj4gPiA+ID4gPgo+ID4gPiA+ ID4gUmVtb3ZlIHNvbWUgcnVudGltZSB0eXBlcyB1c2VkIGJ5IHRoZSBzeXN0ZW0gY2FsbCB0YWJs ZXMgYW5kIG1ha2UKPiA+ID4gPiA+IGVxdWl2YWxlbnRzIGdlbmVyYXRlZCBhdCBidWlsZCB0aW1l Lgo+ID4gPiA+Cj4gPiA+ID4gU28gSSB0ZXN0ZWQgdGhpcyB3aXRoIGEgdGVzdCBwcm9ncmFtLgo+ ID4gPiA+Cj4gPiA+ID4gICAkIGNhdCBhLmMKPiA+ID4gPiAgICNpbmNsdWRlIDxzdGRpby5oPgo+ ID4gPiA+ICAgaW50IG1haW4odm9pZCkKPiA+ID4gPiAgIHsKPiA+ID4gPiAgICAgICAgIGNoYXIg YnVmWzQwOTZdOwo+ID4gPiA+ICAgICAgICAgRklMRSAqZnAgPSBmb3BlbigiYS5jIiwgInIiKTsK PiA+ID4gPiAgICAgICAgIHNpemVfdCBsZW47Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgIGxlbiA9 IGZyZWFkKGJ1Ziwgc2l6ZW9mKGJ1ZiksIDEsIGZwKTsKPiA+ID4gPiAgICAgICAgIGZ3cml0ZShi dWYsIDEsIGxlbiwgc3Rkb3V0KTsKPiA+ID4gPiAgICAgICAgIGZmbHVzaChzdGRvdXQpOwo+ID4g PiA+ICAgICAgICAgZmNsb3NlKGZwKTsKPiA+ID4gPiAgICAgICAgIHJldHVybiAwOwo+ID4gPiA+ ICAgfQo+ID4gPiA+Cj4gPiA+ID4gICAkIGdjYyAtbyBhNjQub3V0IGEuYwo+ID4gPiA+ICAgJCBn Y2MgLW8gYTMyLm91dCAtbTMyIGEuYwo+ID4gPiA+Cj4gPiA+ID4gICAkIC4vcGVyZiB2ZXJzaW9u Cj4gPiA+ID4gICBwZXJmIHZlcnNpb24gNi4xNC5yYzEuZ2UwMDJhNjRmNjE4OAo+ID4gPiA+Cj4g PiA+ID4gICAkIGdpdCBzaG93Cj4gPiA+ID4gICBjb21taXQgZTAwMmE2NGY2MTg4MjYyNjk5MmRk NjUxM2MwZGIzNzExYzA2ZmVhNyAoSEVBRCAtPiBwZXJmLWNoZWNrKQo+ID4gPiA+ICAgQXV0aG9y OiBJYW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gPiA+ID4gICBEYXRlOiAgIFdlZCBG ZWIgMTkgMTA6NTY6NTcgMjAyNSAtMDgwMAo+ID4gPiA+Cj4gPiA+ID4gICAgICAgcGVyZiBzeXNj YWxsdGJsOiBNYXNrIG9mZiBBQkkgdHlwZSBmb3IgTUlQUyBzeXN0ZW0gY2FsbHMKPiA+ID4gPgo+ ID4gPiA+ICAgICAgIEFybmQgQmVyZ21hbm4gZGVzY3JpYmVkIHRoYXQgTUlQUyBzeXN0ZW0gY2Fs bHMgZG9uJ3QgbmVjZXNzYXJpbHkgc3RhcnQKPiA+ID4gPiAgICAgICBmcm9tIDAgYXMgYW4gQUJJ IHByZWZpeCBpcyBhcHBsaWVkOgo+ID4gPiA+ICAgICAgIGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L2xrbWwvOGVkN2RmYjItMWU0ZC00YWE0LWEwNGItMDM5N2E4OTM2NWQxQGFwcC5mYXN0bWFpbC5j b20vCj4gPiA+ID4gICAgICAgV2hlbiBkZWNvZGluZyB0aGUgImlkIiAoYWthIHN5c3RlbSBjYWxs IG51bWJlcikgZm9yIE1JUFMgaWdub3JlIHZhbHVlcwo+ID4gPiA+ICAgICAgIGdyZWF0ZXItdGhh biAxMDAwLgo+ID4gPiA+Cj4gPiA+ID4gICAgICAgU2lnbmVkLW9mZi1ieTogSWFuIFJvZ2VycyA8 aXJvZ2Vyc0Bnb29nbGUuY29tPgo+ID4gPiA+Cj4gPiA+ID4gSXQgd29ya3Mgd2VsbCB3aXRoIDY0 Yml0Lgo+ID4gPiA+Cj4gPiA+ID4gICAkIHN1ZG8gLi9wZXJmIHRyYWNlIC4vYTY0Lm91dCB8JiB0 YWlsCj4gPiA+ID4gICAgICAgIDAuMjY2ICggMC4wMDcgbXMpOiBhNjQub3V0Lzg1ODY4MSBtdW5t YXAoYWRkcjogMHg3ZjM5MjcyM2EwMDAsIGxlbjogMTA5MDU4KSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPSAwCj4gPiA+ID4gICAgICAgIDAuMjg2ICggMC4wMDIgbXMpOiBhNjQub3V0Lzg1 ODY4MSBnZXRyYW5kb20odWJ1ZjogMHg3ZjM5MjcyMzIxNzgsIGxlbjogOCwgZmxhZ3M6IE5PTkJM T0NLKSAgICAgICAgICAgICAgPSA4Cj4gPiA+ID4gICAgICAgIDAuMjg5ICggMC4wMDEgbXMpOiBh NjQub3V0Lzg1ODY4MSBicmsoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDU2NDE5ZWNmNzAwMAo+ID4gPiA+ICAgICAg ICAwLjI5MSAoIDAuMDAyIG1zKTogYTY0Lm91dC84NTg2ODEgYnJrKGJyazogMHg1NjQxOWVkMTgw MDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHg1NjQx OWVkMTgwMDAKPiA+ID4gPiAgICAgICAgMC4yOTkgKCAwLjAwOSBtcyk6IGE2NC5vdXQvODU4Njgx IG9wZW5hdChkZmQ6IENXRCwgZmlsZW5hbWU6ICJhLmMiKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA9IDMKPiA+ID4gPiAgICAgICAgMC4zMTIgKCAwLjAwMSBtcyk6IGE2NC5v dXQvODU4NjgxIGZzdGF0KGZkOiAzLCBzdGF0YnVmOiAweDdmZmRmYWRmMWViMCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA9IDAKPiA+ID4gPiAgICAgICAgMC4zMTUgKCAwLjAwMiBt cyk6IGE2NC5vdXQvODU4NjgxIHJlYWQoZmQ6IDMsIGJ1ZjogMHg3ZmZkZmFkZjIwMzAsIGNvdW50 OiA0MDk2KSAgICAgICAgICAgICAgICAgICAgICAgICA9IDIxMQo+ID4gPiA+ICAgICAgICAwLjMx OCAoIDAuMDA5IG1zKTogYTY0Lm91dC84NTg2ODEgcmVhZChmZDogMywgYnVmOiAweDU2NDE5ZWNm NzQ4MCwgY291bnQ6IDQwOTYpICAgICAgICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiA+ICAg ICAgICAwLjMzMCAoIDAuMDAxIG1zKTogYTY0Lm91dC84NTg2ODEgY2xvc2UoZmQ6IDMpICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAo+ ID4gPiA+ICAgICAgICAwLjMzOCAoICAgICAgICAgKTogYTY0Lm91dC84NTg2ODEgZXhpdF9ncm91 cCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgID0gPwo+ID4gPiA+Cj4gPiA+ID4gQnV0IDMyYml0IGlzIHN0aWxsIGJyb2tlbiBhbmQgdXNl IDY0Yml0IHN5c2NhbGwgdGFibGUgd3JvbmdseS4KPiA+ID4gPgo+ID4gPiA+ICAgJCBmaWxlIGEz Mi5vdXQKPiA+ID4gPiAgIGEzMi5vdXQ6IEVMRiAzMi1iaXQgTFNCIHBpZSBleGVjdXRhYmxlLCBJ bnRlbCA4MDM4NiwgdmVyc2lvbiAxIChTWVNWKSwgZHluYW1pY2FsbHkgbGlua2VkLCBpbnRlcnBy ZXRlciAvbGliL2xkLWxpbnV4LnNvLjIsCj4gPiA+ID4gICBCdWlsZElEW3NoYTFdPTZlZWE4NzNj OTM5MDEyZTZjNzE1ZThmMDMwMjYxNjQyYmY2MWNiNGUsIGZvciBHTlUvTGludXggMy4yLjAsIG5v dCBzdHJpcHBlZAo+ID4gPiA+Cj4gPiA+ID4gICAkIHN1ZG8gLi9wZXJmIHRyYWNlIC4vYTMyLm91 dCB8JiB0YWlsCj4gPiA+ID4gICAgICAgIDAuMjk2ICggMC4wMDEgbXMpOiBhMzIub3V0Lzg1ODY5 OSBnZXR4YXR0cihwYXRobmFtZTogIiIsIG5hbWU6ICLvv73vv73vv73vv73vv73vv70iLCB2YWx1 ZTogMHhmN2Y2Y2UxNCwgc2l6ZTogMSkgID0gMAo+ID4gPiA+ICAgICAgICAwLjMwNSAoIDAuMDA3 IG1zKTogYTMyLm91dC84NTg2OTkgZmNobW9kKGZkOiAtMTM0Nzc0Nzg0LCBtb2RlOiBJRkxOS3xJ U1VJRHxJU1ZUWHxJV09USHwweDEwMDAwKSAgICAgICAgID0gMAo+ID4gPiA+ICAgICAgICAwLjMz MyAoIDAuMDAxIG1zKTogYTMyLm91dC84NTg2OTkgcmVjdmZyb20oc2l6ZTogNDE2MDE0Njk2NCwg ZmxhZ3M6IFJTVHwweDIwMDAwLCBhZGRyOiAweGY3ZjZjZTE0LCBhZGRyX2xlbjogMHhmN2Y3MTI3 OCkgPSAxNDgxODc5NTUyCj4gPiA+ID4gICAgICAgIDAuMzM1ICggMC4wMDQgbXMpOiBhMzIub3V0 Lzg1ODY5OSByZWN2ZnJvbShmZDogMTQ4MjAxNDcyMCwgdWJ1ZjogMHhmN2Y3MTI3OCwgc2l6ZTog NDE2MDE0Njk2NCwgZmxhZ3M6IE5PU0lHTkFMfE1PUkV8V0FJVEZPUk9ORXxCQVRDSHxTUExJQ0Vf UEFHRVN8Q01TR19DTE9FWEVDfDB4MTA1MDAwMDAsIGFkZHI6IDB4ZjdmNmNlMTQsIGFkZHJfbGVu OiAweGY3ZjcxMjc4KSA9IDE0ODIwMTQ3MjAKPiA+ID4gPiAgICAgICAgMC4zNTUgKCAwLjAwMiBt cyk6IGEzMi5vdXQvODU4Njk5IHJlY3Zmcm9tKGZkOiAxNDgyMDE4ODE2LCB1YnVmOiAweDU4NTVk MDAwLCBzaXplOiA0MTYwMTQ2OTY0LCBmbGFnczogUlNUfE5PU0lHTkFMfE1PUkV8V0FJVEZPUk9O RXxCQVRDSHxTUExJQ0VfUEFHRVN8Q01TR19DTE9FWEVDfDB4MTA1MDAwMDAsIGFkZHI6IDB4Zjdm NmNlMTQsIGFkZHJfbGVuOiAweGY3ZjcxMjc4KSA9IDE0ODIwMTg4MTYKPiA+ID4gPiAgICAgICAg MC4zNjIgKCAwLjAxMCBtcyk6IGEzMi5vdXQvODU4Njk5IHByZWFkdihmZDogNDI5NDk2NzE5Niwg dmVjOiAoc3RydWN0IGlvdmVjKXsuaW92X2Jhc2UgPSAodm9pZCAqKTB4MWIwMTAwMDAwMDYzMmU2 MiwuaW92X2xlbiA9IChfX2tlcm5lbF9zaXplX3QpMTEyNTg5OTkwOTQ3OTE3MSx9LCBwb3NfaDog NDE2MDE0Njk2NCkgPSAzCj4gPiA+ID4gICAgICAgIDAuMzg1ICggMC4wMDIgbXMpOiBhMzIub3V0 Lzg1ODY5OSBjbG9zZShmZDogMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPSAyMTEKPiA+ID4gPiAgICAgICAgMC4zODggKCAwLjAwMSBt cyk6IGEzMi5vdXQvODU4Njk5IGNsb3NlKGZkOiAzKSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKPiA+ID4gPiAgICAgICAgMC4zOTMg KCAwLjAwMiBtcyk6IGEzMi5vdXQvODU4Njk5IGxzdGF0KGZpbGVuYW1lOiAiIikgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKPiA+ID4gPiAgICAg ICAgMC4zOTYgKCAwLjAwNCBtcyk6IGEzMi5vdXQvODU4Njk5IHJlY3Zmcm9tKGZkOiAxNDgyMDE0 NzIwLCBzaXplOiA0MTYwMTQ2OTY0LCBmbGFnczogTk9TSUdOQUx8TU9SRXxXQUlURk9ST05FfEJB VENIfFNQTElDRV9QQUdFU3xDTVNHX0NMT0VYRUN8MHgxMDUwMDAwMCwgYWRkcjogMHhmN2Y2Y2Ux NCwgYWRkcl9sZW46IDB4ZjdmNzEyNzgpID0gMTQ4MjAxNDcyMAo+ID4gPiA+Cj4gPiA+ID4gVGhl IGxhc3QgNSBzaG91bGQgYmUgb3BlbmF0LCByZWFkLCByZWFkLCBjbG9zZSBhbmQgYnJrKD8pLgo+ ID4gPiAKPiA+ID4gVGhhdCdzIHN0cmFuZ2UgYXMgbmVhcmx5IHRoZSBzYW1lIHRlc3Qgd29ya3Mg Zm9yIG1lOgo+ID4gPiBgYGAKPiA+ID4gJCBnaXQgc2hvdwo+ID4gPiBjb21taXQgNzkyMDAyMDIz N2FmODEzOGY3YmUxYTIxYmU5YTI5MThhNzFkZGM1ZSAoSEVBRCAtPiBwdG4tc3lzY2FsbHRibCkK PiA+ID4gQXV0aG9yOiBJYW4gUm9nZXJzIDxpcm9nZXJzQGdvb2dsZS5jb20+Cj4gPiA+IERhdGU6 ICAgRnJpIEphbiAzMSAyMTozNDowNyAyMDI1IC0wODAwCj4gPiA+IAo+ID4gPiAgICBwZXJmIHN5 c2NhbGx0Ymw6IE1hc2sgb2ZmIEFCSSB0eXBlIGZvciBNSVBTIHN5c3RlbSBjYWxscwo+ID4gPiAK PiA+ID4gICAgQXJuZCBCZXJnbWFubiBkZXNjcmliZWQgdGhhdCBNSVBTIHN5c3RlbSBjYWxscyBk b24ndCBuZWNlc3NhcmlseSBzdGFydAo+ID4gPiAgICBmcm9tIDAgYXMgYW4gQUJJIHByZWZpeCBp cyBhcHBsaWVkOgo+ID4gPiAgICBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzhlZDdkZmIy LTFlNGQtNGFhNC1hMDRiLTAzOTdhODkzNjVkMUBhcHAuZmFzdG1haWwuY29tLwo+ID4gPiAgICBX aGVuIGRlY29kaW5nIHRoZSAiaWQiIChha2Egc3lzdGVtIGNhbGwgbnVtYmVyKSBmb3IgTUlQUyBp Z25vcmUgdmFsdWVzCj4gPiA+ICAgIGdyZWF0ZXItdGhhbiAxMDAwLgo+ID4gPiAKPiA+ID4gICAg U2lnbmVkLW9mZi1ieTogSWFuIFJvZ2VycyA8aXJvZ2Vyc0Bnb29nbGUuY29tPgo+ID4gPiAuLgo+ ID4gPiAkIGZpbGUgYS5vdXQKPiA+ID4gYS5vdXQ6IEVMRiAzMi1iaXQgTFNCIHBpZSBleGVjdXRh YmxlLCBJbnRlbCA4MDM4NiwgdmVyc2lvbiAxIChTWVNWKSwKPiA+ID4gZHluYW1pY2FsbHkgbGlu a2VkLCBpbnRlcnByZXRlciAvbGliL2xkLWxpbnV4LnNvLjIsCj4gPiA+IEJ1aWxkSURbc2hhMV09 M2ZjZDI4Zjg1YTI3YTMxMDg5NDE2NjFhOTFkYmM2NzVjMDY4NjhmOSwgZm9yIEdOVS9MaW51eAo+ ID4gPiAzLjIuMCwgbm90IHN0cmlwcGVkCj4gPiA+ICQgc3VkbyAvdG1wL3BlcmYvcGVyZiB0cmFj ZSAuL2Eub3V0Cj4gPiA+IC4uLgo+ID4gPiAgICAgICAgICA/ICggICAgICAgICApOiBhLm91dC8y MTg2MDQgIC4uLiBbY29udGludWVkXTogZXhlY3ZlKCkpCj4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAgICAgIDAuMDY3ICggMC4wMDMgbXMpOiBhLm91 dC8yMTg2MDQgYnJrKCkKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PSAweDU3NDllMDAwCj4gPiA+ICAgICAgMC4xNTQgKCAwLjAwNyBtcyk6IGEub3V0LzIxODYwNCBh Y2Nlc3MoZmlsZW5hbWU6IDB4ZjdmYzdmMjgsCj4gPiA+IG1vZGU6IFIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPSAtMSBFTk9FTlQgKE5vIHN1Y2ggZmlsZSBvcgo+ID4gPiBkaXJl Y3RvcnkpCj4gPiA+ICAgICAgMC4xNjggKCAwLjAyMyBtcyk6IGEub3V0LzIxODYwNCBvcGVuYXQo ZGZkOiBDV0QsIGZpbGVuYW1lOgo+ID4gPiAweGY3ZmM0NGMzLCBmbGFnczogUkRPTkxZfENMT0VY RUN8TEFSR0VGSUxFKSA9IDMKPiA+ID4gICAgICAwLjE5MyAoIDAuMDA2IG1zKTogYS5vdXQvMjE4 NjA0IHN0YXR4KGRmZDoKPiA+ID4gMzwvcHJvYy8yMTg2MDQvc3RhdHVzPiwgZmlsZW5hbWU6IDB4 ZjdmYzUxMGEsIGZsYWdzOgo+ID4gPiBOT19BVVRPTU9VTlR8RU1QVFlfUEFUSCwgbWFzazoKPiA+ ID4gVFlQRXxNT0RFfE5MSU5LfFVJRHxHSUR8QVRJTUV8TVRJTUV8Q1RJTUV8SU5PfFNJWkV8QkxP Q0tTLCBidWZmZXI6Cj4gPiA+IDB4ZmZhYTZiODgpID0gMAo+ID4gPiAgICAgIDAuMjEyICggMC4w MDIgbXMpOiBhLm91dC8yMTg2MDQgY2xvc2UoZmQ6IDM8L3Byb2MvMjE4NjA0L3N0YXR1cz4pCj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAgICAgIDAu MjMzICggMC4wMTkgbXMpOiBhLm91dC8yMTg2MDQgb3BlbmF0KGRmZDogQ1dELCBmaWxlbmFtZToK PiA+ID4gMHhmN2Y5NzNlMCwgZmxhZ3M6IFJET05MWXxDTE9FWEVDfExBUkdFRklMRSkgPSAzCj4g PiA+ICAgICAgMC4yNTUgKCAwLjAwNCBtcyk6IGEub3V0LzIxODYwNCByZWFkKGZkOiAzPC9wcm9j LzIxODYwNC9zdGF0dXM+LAo+ID4gPiBidWY6IDB4ZmZhYTZkZjAsIGNvdW50OiA1MTIpICAgICAg ICAgPSA1MTIKPiA+ID4gICAgICAwLjI2MiAoIDAuMDAzIG1zKTogYS5vdXQvMjE4NjA0IHN0YXR4 KGRmZDoKPiA+ID4gMzwvcHJvYy8yMTg2MDQvc3RhdHVzPiwgZmlsZW5hbWU6IDB4ZjdmYzUxMGEs IGZsYWdzOgo+ID4gPiBOT19BVVRPTU9VTlR8RU1QVFlfUEFUSCwgbWFzazoKPiA+ID4gVFlQRXxN T0RFfE5MSU5LfFVJRHxHSUR8QVRJTUV8TVRJTUV8Q1RJTUV8SU5PfFNJWkV8QkxPQ0tTLCBidWZm ZXI6Cj4gPiA+IDB4ZmZhYTZiMzgpID0gMAo+ID4gPiAgICAgIDAuMzQ3ICggMC4wMDIgbXMpOiBh Lm91dC8yMTg2MDQgY2xvc2UoZmQ6IDM8L3Byb2MvMjE4NjA0L3N0YXR1cz4pCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAgICAgIDAuMzcyICggMC4w MDIgbXMpOiBhLm91dC8yMTg2MDQgc2V0X3RpZF9hZGRyZXNzKHRpZHB0cjoKPiA+ID4gMHhmN2Y5 ODUyOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMjE4NjA0IChhLm91dCkK PiA+ID4gICAgICAwLjM3NiAoIDAuMDAyIG1zKTogYS5vdXQvMjE4NjA0IHNldF9yb2J1c3RfbGlz dChoZWFkOiAweGY3Zjk4NTJjLAo+ID4gPiBsZW46IDEyKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICA9Cj4gPiA+ICAgICAgMC4zODEgKCAwLjAwMiBtcyk6IGEub3V0LzIxODYwNCByc2VxKHJz ZXE6IDB4ZjdmOTg5NjAsIHJzZXFfbGVuOgo+ID4gPiAzMiwgc2lnOiAxMzkyODQ4OTc5KSAgICAg ICAgICAgICAgICAgPQo+ID4gPiAgICAgIDAuNDY5ICggMC4wMTAgbXMpOiBhLm91dC8yMTg2MDQg bXByb3RlY3Qoc3RhcnQ6IDB4ZjdmNmUwMDAsIGxlbjoKPiA+ID4gODE5MiwgcHJvdDogUkVBRCkg ICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAgICAgIDAuNDg5ICggMC4wMDcgbXMpOiBhLm91 dC8yMTg2MDQgbXByb3RlY3Qoc3RhcnQ6IDB4NTY2MWEwMDAsIGxlbjoKPiA+ID4gNDA5NiwgcHJv dDogUkVBRCkgICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAgICAgIDAuNTAzICggMC4wMDcg bXMpOiBhLm91dC8yMTg2MDQgbXByb3RlY3Qoc3RhcnQ6IDB4ZjdmZDAwMDAsIGxlbjoKPiA+ID4g ODE5MiwgcHJvdDogUkVBRCkgICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAgICAgIDAuNTUw ICggMC4wMTUgbXMpOiBhLm91dC8yMTg2MDQgbXVubWFwKGFkZHI6IDB4ZjdmN2IwMDAsIGxlbjoK PiA+ID4gMTExMTk4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAo+ID4gPiAg ICAgIDAuNTg5ICggMC4wMzUgbXMpOiBhLm91dC8yMTg2MDQgb3BlbmF0KGRmZDogQ1dELCBmaWxl bmFtZToKPiA+ID4gMHg1NjYxOTAwOCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0g Mwo+ID4gPiAgICAgIDAuNjI3ICggMC4wMjQgbXMpOiBhLm91dC8yMTg2MDQgcmVhZChmZDogMzwv cHJvYy8yMTg2MDQvc3RhdHVzPiwKPiA+ID4gYnVmOiAweGZmYWE2OGZjLCBjb3VudDogNDA5Nikg ICAgICAgID0gMTQzNwo+ID4gPiAgICAgIDAuNjU0ICggMC4wOTAgbXMpOiBhLm91dC8yMTg2MDQg d3JpdGUoZmQ6IDE8L2Rldi9wdHMvMz4sIGJ1ZjogLAo+ID4gPiBjb3VudDogMTQzNykgICAgICAg ICAgICAgICAgICAgICAgICAgID0gMTQzNwo+ID4gPiAgICAgIDAuNzY2ICgxMDAwLjE2NCBtcyk6 IGEub3V0LzIxODYwNCBjbG9ja19uYW5vc2xlZXAocnF0cDoKPiA+ID4gMHhmZmFhNjgyNCwgcm10 cDogMHhmZmFhNjgxYykgICAgICAgICAgICAgICAgICAgPSAwCj4gPiA+ICAgMTAwMC45NDIgKCAg ICAgICAgICk6IGEub3V0LzIxODYwNCBleGl0X2dyb3VwKCkKPiA+ID4gJCBmaWxlIC90bXAvcGVy Zi9wZXJmCj4gPiA+IC90bXAvcGVyZi9wZXJmOiBFTEYgNjQtYml0IExTQiBwaWUgZXhlY3V0YWJs ZSwgeDg2LTY0LCB2ZXJzaW9uIDEKPiA+ID4gKFNZU1YpLCBkeW5hbWljYWxseSBsaW5rZWQsIGlu dGVycHJldGVyIC9saWI2NC9sZC1saW51eC14ODYtNjQuc28uMiwKPiA+ID4gQnVpbGRJRFtzaGEx XT02MGIwN2Y2NWQyNTU5YTcxOTNiMmQxZDM2Y2ZhMDAwNTRkZmJkMDc2LCBmb3IgR05VL0xpbnV4 Cj4gPiA+IDMuMi4wLCB3aXRoIGRlYnVnX2luZm8sIG5vdCBzdHJpcHBlZAo+ID4gPiBgYGAKPiA+ ID4gUGVyaGFwcyB5b3VyIGEub3V0IGJpbmFyeSB3YXMgYnVpbHQgYXMgYW4geDMyIG9uZT8KPiA+ ID4gTG9va2luZyB1bmRlciB0aGUgY292ZXJzIHdpdGggZ2RiOgo+ID4gPiBgYGAKPiA+ID4gJCBz dWRvIGdkYiAtLWFyZ3MgL3RtcC9wZXJmL3BlcmYgdHJhY2UgLi9hLm91dAo+ID4gPiBHTlUgZ2Ri IChEZWJpYW4gMTUuMS0xKSAxNS4xCj4gPiA+IC4uLgo+ID4gPiBSZWFkaW5nIHN5bWJvbHMgZnJv bSAvdG1wL3BlcmYvcGVyZi4uLgo+ID4gPiAoZ2RiKSBiIHN5c2NhbGx0YmxfX25hbWUKPiA+ID4g QnJlYWtwb2ludCAxIGF0IDB4MjNhNTFiOiBmaWxlIHV0aWwvc3lzY2FsbHRibC5jLCBsaW5lIDQ3 Lgo+ID4gPiAoZ2RiKSByCj4gPiA+IC4uLgo+ID4gPiBbRGV0YWNoaW5nIGFmdGVyIHZmb3JrIGZy b20gY2hpbGQgcHJvY2VzcyAyMTg4MjZdCj4gPiA+IAo+ID4gPiBCcmVha3BvaW50IDEsIHN5c2Nh bGx0YmxfX25hbWUgKGVfbWFjaGluZT0zLCBpZD0xMSkgYXQgdXRpbC9zeXNjYWxsdGJsLmM6NDcK PiA+ID4gNDcgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzeXNjYWxsdGJsICp0YWJsZSA9IGZp bmRfdGFibGUoZV9tYWNoaW5lKTsKPiA+ID4gYGBgCj4gPiA+IFNvIHRoZSBlX21hY2hpbmUgaXMg MyB3aGljaCBjb3JyZXNwb25kcyB0byBFTV8zODYuCj4gPiA+IAo+ID4gPiBJJ3ZlIG5vdCBmaXhl ZCBldmVyeSB1c2Ugb2Ygc3lzY2FsbHRibCBidXQgSSBiZWxpZXZlIHRoaXMgb25lIGlzIHdvcmtp bmcuCj4gPiAKPiA+IFN0cmFuZ2UuICBJJ20gc2VlaW5nIDYyICh4ODZfNjQpLgo+ID4gCj4gPiAg ICQgc3VkbyBnZGIgLXEgLS1hcmdzIC4vcGVyZiB0cmFjZSAuL2EzMi5vdXQKPiA+ICAgUmVhZGlu ZyBzeW1ib2xzIGZyb20gLi9wZXJmLi4uCj4gPiAgIChnZGIpIGIgc3lzY2FsbHRibF9fbmFtZQo+ ID4gICBCcmVha3BvaW50IDEgYXQgMHgyNzk5OGI6IGZpbGUgdXRpbC9zeXNjYWxsdGJsLmMsIGxp bmUgNDYuCj4gPiAgIChnZGIpIHIKPiA+ICAgU3RhcnRpbmcgcHJvZ3JhbTogL2hvbWUvbmFtaHl1 bmcvdG1wL3BlcmYgdHJhY2UgLi9hMzIub3V0Cj4gPiAgIFtUaHJlYWQgZGVidWdnaW5nIHVzaW5n IGxpYnRocmVhZF9kYiBlbmFibGVkXQo+ID4gICBVc2luZyBob3N0IGxpYnRocmVhZF9kYiBsaWJy YXJ5ICIvbGliL3g4Nl82NC1saW51eC1nbnUvbGlidGhyZWFkX2RiLnNvLjEiLgo+ID4gICBbRGV0 YWNoaW5nIGFmdGVyIGZvcmsgZnJvbSBjaGlsZCBwcm9jZXNzIDg4Njg4OF0KPiA+ICAgCj4gPiAg IEJyZWFrcG9pbnQgMSwgc3lzY2FsbHRibF9fbmFtZSAoZV9tYWNoaW5lPTYyLCBpZD0xNTYpIGF0 IHV0aWwvc3lzY2FsbHRibC5jOjQ2Cj4gPiAgIDQ2CXsKPiA+IAo+ID4gQnV0IHRoZSBiaW5hcnkg aXMgaTM4Ni4KPiA+IAo+ID4gICAkIGZpbGUgYTMyLm91dAo+ID4gICBhMzIub3V0OiBFTEYgMzIt Yml0IExTQiBwaWUgZXhlY3V0YWJsZSwgSW50ZWwgODAzODYsIHZlcnNpb24gMSAoU1lTViksIGR5 bmFtaWNhbGx5IGxpbmtlZCwgaW50ZXJwcmV0ZXIgL2xpYi9sZC1saW51eC5zby4yLAo+ID4gICBC dWlsZElEW3NoYTFdPTZlZWE4NzNjOTM5MDEyZTZjNzE1ZThmMDMwMjYxNjQyYmY2MWNiNGUsIGZv ciBHTlUvTGludXggMy4yLjAsIG5vdCBzdHJpcHBlZAo+ID4gICAKPiA+ICAgJCByZWFkZWxmIC1o IGEzMi5vdXQKPiA+ICAgRUxGIEhlYWRlcjoKPiA+ICAgICBNYWdpYzogICA3ZiA0NSA0YyA0NiAw MSAwMSAwMSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAKPiA+ICAgICBDbGFzczogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEVMRjMyCj4gPiAgICAgRGF0YTogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAyJ3MgY29tcGxlbWVudCwgbGl0dGxlIGVuZGlhbgo+ID4gICAgIFZlcnNp b246ICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAoY3VycmVudCkKPiA+ICAgICBPUy9BQkk6 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOSVggLSBTeXN0ZW0gVgo+ID4gICAgIEFCSSBW ZXJzaW9uOiAgICAgICAgICAgICAgICAgICAgICAgMAo+ID4gICAgIFR5cGU6ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRFlOIChQb3NpdGlvbi1JbmRlcGVuZGVudCBFeGVjdXRhYmxlIGZp bGUpCj4gPiAgICAgTWFjaGluZTogICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlbCA4MDM4 Ngo+ID4gICAgIFZlcnNpb246ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCj4gPiAgICAg RW50cnkgcG9pbnQgYWRkcmVzczogICAgICAgICAgICAgICAweDEwYTAKPiA+ICAgICBTdGFydCBv ZiBwcm9ncmFtIGhlYWRlcnM6ICAgICAgICAgIDUyIChieXRlcyBpbnRvIGZpbGUpCj4gPiAgICAg U3RhcnQgb2Ygc2VjdGlvbiBoZWFkZXJzOiAgICAgICAgICAxMzkzMiAoYnl0ZXMgaW50byBmaWxl KQo+ID4gICAgIEZsYWdzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwCj4gPiAgICAg U2l6ZSBvZiB0aGlzIGhlYWRlcjogICAgICAgICAgICAgICA1MiAoYnl0ZXMpCj4gPiAgICAgU2l6 ZSBvZiBwcm9ncmFtIGhlYWRlcnM6ICAgICAgICAgICAzMiAoYnl0ZXMpCj4gPiAgICAgTnVtYmVy IG9mIHByb2dyYW0gaGVhZGVyczogICAgICAgICAxMQo+ID4gICAgIFNpemUgb2Ygc2VjdGlvbiBo ZWFkZXJzOiAgICAgICAgICAgNDAgKGJ5dGVzKQo+ID4gICAgIE51bWJlciBvZiBzZWN0aW9uIGhl YWRlcnM6ICAgICAgICAgMzAKPiA+ICAgICBTZWN0aW9uIGhlYWRlciBzdHJpbmcgdGFibGUgaW5k ZXg6IDI5Cj4gPiAKPiA+ICAgJCBoZXhkdW1wIC1DIC1uIDMyIGEzMi5vdXQKPiA+ICAgMDAwMDAw MDAgIDdmIDQ1IDRjIDQ2IDAxIDAxIDAxIDAwICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgfC5F TEYuLi4uLi4uLi4uLi58Cj4gPiAgIDAwMDAwMDEwICAwMyAwMCAwMyAwMCAwMSAwMCAwMCAwMCAg YTAgMTAgMDAgMDAgMzQgMDAgMDAgMDAgIHwuLi4uLi4uLi4uLi40Li4ufAo+ID4gICAwMDAwMDAy MCAgLS0tLS0gLS0tLS0KPiA+ICAgICAgICAgICAgICAgXiAgICAgXgo+ID4gCSAgICAgIHwgICAg IHwKPiA+IAkgICBFVF9EWU4gICB8Cj4gPiAJICAgICAgICAgIEVNXzM4Ngo+ID4gCj4gCj4gSSBm b3VuZCBpdCBmYWlsZWQgdG8gb3BlbiAvcHJvYy9QSUQvZXhlIGZvciBzb21lIHJlYXNvbi4gIEl0 IGZhaWxlZCB3aXRoCj4gRU5PRU5UIGJ1dCBJJ3ZlIGNvbmZpcm1lZCB0aGVyZSdzIC9wcm9jL1BJ RCBkaXJlY3RvcnkuICBTdHJhbmdlLi4uCgpJdCBzb21ldGltZXMgc3VjY2VlZGVkIGFuZCBzaG93 ZWQgdGhlIGNvcnJlY3Qgc3lzY2FsbCBuYW1lcy4gOigKCkkgZG9uJ3Qga25vdyB3aGF0J3MgdGhl IHByb2JsZW0gb24gbXkgbWFjaGluZS4gIEJ1dCBJIHRoaW5rIHRoaXMgaXMgYQpwcmUtZXhpc2l0 aW5nIHByb2JsZW0gYW5kIHRoaXMgcGF0Y2ggaW1wcm92ZXMgaXQuCgpUaGFua3MsCk5hbWh5dW5n CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt cmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo=