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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 921F7C433EF for ; Mon, 10 Jan 2022 20:40:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240486AbiAJUkR (ORCPT ); Mon, 10 Jan 2022 15:40:17 -0500 Received: from dfw.source.kernel.org ([139.178.84.217]:51978 "EHLO dfw.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234477AbiAJUkQ (ORCPT ); Mon, 10 Jan 2022 15:40:16 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 41155613FB; Mon, 10 Jan 2022 20:40:16 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42007C36AE9; Mon, 10 Jan 2022 20:40:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641847215; bh=ro5xsmEILXWocoDEG6VPR6STDDelI7xJq86J/uL7BeQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=T7UVksXPngSWgjTlByduKhZQdJZ9J/0CmasW0YdNk3JC6D4Oq1GWnX8VOX8CXYVLk 7Ox9LgQnBO4OjhHcPjBIy3pFbCOvVmMhmm1jkmiC586qOstXF440zR8gfi2H6dOAkV 8P0Ut2lxpBl6N9O40aa25mdRGPH/l0JNbIXxnKsqJ6pyh0uC/ohgm8NFtOvc7Qpcg7 +5l+1OzJPmtYU47DXF3CkVy/7GqO/tOv/iTimP19Qnw264jXmiCkVpJggsqJDjs6c4 +WOk58W1zvlBNm9dmlgXvldAtFO3bk8WHAhy5S8wEc34y8fMGPv2bE3qpad5bube35 WZQoxVAEDHDsg== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 070B440714; Mon, 10 Jan 2022 17:40:11 -0300 (-03) Date: Mon, 10 Jan 2022 17:40:11 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: Andi Kleen , Jiri Olsa , Namhyung Kim , John Garry , Kajol Jain , "Paul A . Clarke" , Riccardo Mancini , Kan Liang , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Vineet Singh , James Clark , Mathieu Poirier , Suzuki K Poulose , Mike Leach , Leo Yan , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, zhengjun.xing@intel.com, eranian@google.com Subject: Re: [PATCH v4 00/48] Refactor perf cpumap Message-ID: References: <20220105061351.120843-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-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org Em Mon, Jan 10, 2022 at 05:17:25PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Tue, Jan 04, 2022 at 10:13:03PM -0800, Ian Rogers escreveu: > > Perf cpu map has various functions where a cpumap and index are passed > > in order to load the cpu. A problem with this is that the wrong index > > may be passed for the cpumap, causing problems like aggregation on the > > wrong CPU: > > https://lore.kernel.org/lkml/20211204023409.969668-1-irogers@google.com/ > > > > This patch set refactors the cpu map API, reducing it and explicitly > > passing the cpu (rather than the pair) to functions that need > > it. Comments are added at the same time. Changes modify the same > > file/function more than once as refactoring and fixes are broken apart > > for the sake of bisection. > > > > v2. Incorproates fixes suggested Jiri Olsa, rewrites the evlist CPU > > iterator in part in a way suggested by Riccardo Mancini. The new > > fixes start at patch 23. The final change was suggested by John > > Garry to make the CPUs have their own struct wrapper. > > > > v3. Incorporates fixes suggested by Namhyung Kim. > > > > v4. Rebases and incorporates fixes suggested by Jiri Olsa. > > Did fixes in places where BUILD_BPF_SKEL=1 was failing, now, at the end > of the series: > > ⬢[acme@toolbox perf]$ git log --oneline -1 ; time make -C tools/perf build-test > 462aafa8fcbdc78f (HEAD -> perf/core) perf cpumap: Give CPUs their own type > make: Entering directory '/var/home/acme/git/perf/tools/perf' > - tarpkg: ./tests/perf-targz-src-pkg . > make_static: cd . && make LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1 NO_JVMTI=1 -j32 DESTDIR=/tmp/tmp.lFrqVcqiRY > make_with_gtk2: cd . && make GTK2=1 -j32 DESTDIR=/tmp/tmp.KvHmTqUGmD > - /var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP: cd . && make FEATURE_DUMP_COPY=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump > cd . && make FEATURE_DUMP_COPY=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump > make_no_libelf_O: cd . && make NO_LIBELF=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.xz3LYy7WpA DESTDIR=/tmp/tmp.zVjIMpvQMM > make_no_libbpf_DEBUG_O: cd . && make NO_LIBBPF=1 DEBUG=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.0gxAOSjb1j DESTDIR=/tmp/tmp.kYTk1WjWWz > make_no_libaudit_O: cd . && make NO_LIBAUDIT=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.6hArTG9Dth DESTDIR=/tmp/tmp.hCNdYeDRCr > make_no_backtrace_O: cd . && make NO_BACKTRACE=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.VtoPI58z3t DESTDIR=/tmp/tmp.SYyBBMSHSL > make_no_libcrypto_O: cd . && make NO_LIBCRYPTO=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.SO1qtxJwvE DESTDIR=/tmp/tmp.AqrPw1oZfx > make_with_clangllvm_O: cd . && make LIBCLANGLLVM=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.G9KVEaDv2B DESTDIR=/tmp/tmp.6CSqj0wPqJ > make_with_coresight_O: cd . && make CORESIGHT=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.PnVTJNHy1E DESTDIR=/tmp/tmp.k7Arerg778 > make_no_libpython_O: cd . && make NO_LIBPYTHON=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.cKjvFagVL3 DESTDIR=/tmp/tmp.aCaD0hbP3O > make_no_sdt_O: cd . && make NO_SDT=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.EKoWnoZtl4 DESTDIR=/tmp/tmp.1gGYetcptB > make_libbpf_dynamic_O: cd . && make LIBBPF_DYNAMIC=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.Nked5O10EK DESTDIR=/tmp/tmp.eo6YAEOfZO > make_minimal_O: cd . && make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1 NO_LIBCAP=1 NO_SYSCALL_TABLE=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.Z6dSqYBXfU DESTDIR=/tmp/tmp.Y4iRu634of > make_install_prefix_slash_O: cd . && make install prefix=/tmp/krava/ FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.BgipDyNu70 DESTDIR=/tmp/tmp.pOwrdDYBqf > make_util_pmu_bison_o_O: cd . && make util/pmu-bison.o FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.XeO82Ajmv6 DESTDIR=/tmp/tmp.dxQKNNBM6W > make_install_O: cd . && make install FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.KuCyqzLwnA DESTDIR=/tmp/tmp.KYvqoiOKzW > make_install_prefix_O: cd . && make install prefix=/tmp/krava FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.rJNNPELdri DESTDIR=/tmp/tmp.g52i9CcmnU > make_install_bin_O: cd . && make install-bin FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.i118vbQuo0 DESTDIR=/tmp/tmp.90tKcjOWD8 > make_perf_o_O: cd . && make perf.o FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.kEZMTvh3wf DESTDIR=/tmp/tmp.JYvQLdkPsp > make_no_slang_O: cd . && make NO_SLANG=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.WDNGH0DpdW DESTDIR=/tmp/tmp.Zfa804wClJ > make_no_ui_O: cd . && make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.P4nTBNqkP4 DESTDIR=/tmp/tmp.iCLqOyrh4o > make_no_newt_O: cd . && make NO_NEWT=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.EdjjHoqODV DESTDIR=/tmp/tmp.jKfYRizWtm > make_with_libpfm4_O: cd . && make LIBPFM4=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.r3hPAOgfId DESTDIR=/tmp/tmp.GvMmEZUc2B > make_no_demangle_O: cd . && make NO_DEMANGLE=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.wG9f40LzG3 DESTDIR=/tmp/tmp.i76sPjSg1m > make_no_libunwind_O: cd . && make NO_LIBUNWIND=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.SmFfmmB9KQ DESTDIR=/tmp/tmp.9tjMdCWMxG > make_no_libbpf_O: cd . && make NO_LIBBPF=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.7jH21oP9n7 DESTDIR=/tmp/tmp.taUqTgY37S > make_no_syscall_tbl_O: cd . && make NO_SYSCALL_TABLE=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.L2v7vi1AQl DESTDIR=/tmp/tmp.wHEA4jEpw9 > make_no_libnuma_O: cd . && make NO_LIBNUMA=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.9N5pQYuRbO DESTDIR=/tmp/tmp.B0Yptb7xP6 > make_util_map_o_O: cd . && make util/map.o FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.B8oe4jnWwB DESTDIR=/tmp/tmp.m0APlsli14 > make_with_babeltrace_O: cd . && make LIBBABELTRACE=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.3G1kLTJLJx DESTDIR=/tmp/tmp.ahuDENSMsz > make_debug_O: cd . && make DEBUG=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.KpsvOj0KHD DESTDIR=/tmp/tmp.f2Yv9Lrorg > make_no_libperl_O: cd . && make NO_LIBPERL=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.7tIufwAi4O DESTDIR=/tmp/tmp.vcBv7UYjuw > make_no_libbionic_O: cd . && make NO_LIBBIONIC=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.HCJA7xCDxq DESTDIR=/tmp/tmp.us5CDSPqyO > make_pure_O: cd . && make FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.eg2wCpydvg DESTDIR=/tmp/tmp.MmD1xESO2A > make_doc_O: cd . && make doc FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.TqkyGrzRut DESTDIR=/tmp/tmp.ap34IVxoM9 > make_no_scripts_O: cd . && make NO_LIBPYTHON=1 NO_LIBPERL=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.pRWHKzpPhv DESTDIR=/tmp/tmp.dUNhAp2rLt > make_clean_all_O: cd . && make clean all FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.YnzNLLk9ID DESTDIR=/tmp/tmp.7kXr5obkmA > make_no_libdw_dwarf_unwind_O: cd . && make NO_LIBDW_DWARF_UNWIND=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.GzZCxuYLwR DESTDIR=/tmp/tmp.n3YS9a9DcU > make_help_O: cd . && make help FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.t7QwWVHsod DESTDIR=/tmp/tmp.NG5uSWCZzi > make_no_auxtrace_O: cd . && make NO_AUXTRACE=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.wiDZkJzs8R DESTDIR=/tmp/tmp.ITtPlX0usX > make_no_gtk2_O: cd . && make NO_GTK2=1 FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.xd1x5QIckJ DESTDIR=/tmp/tmp.f6KzsHHkZH > make_tags_O: cd . && make tags FEATURES_DUMP=/var/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP -j32 O=/tmp/tmp.e8oSaBuFUb DESTDIR=/tmp/tmp.4czd6ovlSB > OK > make: Leaving directory '/var/home/acme/git/perf/tools/perf' > > real 4m29.388s > user 59m6.060s > sys 12m19.581s > ⬢[acme@toolbox perf]$ > > alias m='perf stat -e cycles:u,instructions:u make -k BUILD_BPF_SKEL=1 CORESIGHT=1 PYTHON=python3 O=/tmp/build/perf -C tools/perf install-bin && git status && perf test python' > > So 'perf test python' is done after every build, no problems with that > as well. > > I'm now making it go thru the container builds. Not a good start, checking: [perfbuilder@five ~]$ time dm 1 50.25 almalinux:8 : FAIL clang version 12.0.1 (Red Hat 12.0.1-4.module_el8.5.0+1025+93159d6c) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 2 54.14 alpine:3.4 : FAIL clang version 3.8.0 (tags/RELEASE_380/final) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 3 39.78 alpine:3.5 : FAIL clang version 3.8.1 (tags/RELEASE_381/final) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 4 82.52 alpine:3.6 : FAIL clang version 4.0.0 (tags/RELEASE_400/final) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 5 113.61 alpine:3.7 : FAIL gcc version 6.4.0 (Alpine 6.4.0) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 6 119.02 alpine:3.8 : FAIL gcc version 6.4.0 (Alpine 6.4.0) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 7 64.55 alpine:3.9 : FAIL gcc version 8.3.0 (Alpine 8.3.0) builtin-stat.c:1499:31: error: unused function 'perf_env__get_cpu' [-Werror,-Wunused-function] static inline struct perf_cpu perf_env__get_cpu(void *data, struct perf_cpu_map *map, int idx) ^ 1 error generated. 8: alpine:3.10 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 76014C433F5 for ; Mon, 10 Jan 2022 20:41:44 +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=JopDzLMO6pytim02KUWTccNDWJBcyAcbCRX8w47u/bU=; b=RKl63QouMbZvA6 81pvemRtQ1adftDPfd8yZ8vg6LpgCz7mQ2E6hWi2uxprgqBMU6e3hNHQ++G+fnLuUXZZkkbz/0a7c 8dUioIGsQkEEf18545PxBh38lqInOpjaemixA2CH317Ry0TNJch5VL1vyX9sFU/6z3Z9vjtrNlHAA I4gv2/8OawHWNrlWoTOcvLNqqiZSCoI1F9UIbPZDHFsU9RqHPAGUmrxxbMJZQ1NGpJRu/GZYwk3I3 2EUZgfMHTrprMJVdGe5elahiD7msGkq9QMD8bHgyWBUW8NSAty7MHheJrbFRT+jHr/1YU8iYuoMS1 NL5+y/K4IjQn5JYesn3A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n71Sl-00DFgF-GE; Mon, 10 Jan 2022 20:40:19 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n71Sj-00DFfy-He for linux-arm-kernel@bombadil.infradead.org; Mon, 10 Jan 2022 20:40:17 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=tDZTFiqFNRs3mjdBhg1sD0XerR2ghLlbPaL3re0NfFw=; b=iWvUbJzsinn12BU+uboafasMvJ 2jfAKi38oxQxJyy/L7bDOgBIgsg3DRIGQExP745h1cxEZ9xdVRZvpeGsRUG07+1ruj/cfmZDlPxFe +P1t1Ep3npRIUH8WhjRxR3d2hP44rLauIasJ8YIU6J1wYqlhGr63sUZ9EHiODYz8laihgldtqrqQP WNZ3zQczsTDlkd9VMWGJxG4f5Go1H3Iw6uB6gCQgIpfsErTqKQfY5XoEv4k9h+YFQRnhQeJwLTDO0 fJ6qsZM6arwpYSrU1vxgKoVPHr2Bw+T3HteTVBaZ/rxuIp24DzFviGpW2vkObdpAJnyXqqDfFi1YI P/wnmsnQ==; Received: from [179.97.37.151] (helo=quaco.ghostprotocols.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1n71Sh-002hxR-As; Mon, 10 Jan 2022 20:40:16 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 070B440714; Mon, 10 Jan 2022 17:40:11 -0300 (-03) Date: Mon, 10 Jan 2022 17:40:11 -0300 From: Arnaldo Carvalho de Melo To: Ian Rogers Cc: Andi Kleen , Jiri Olsa , Namhyung Kim , John Garry , Kajol Jain , "Paul A . Clarke" , Riccardo Mancini , Kan Liang , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org, Vineet Singh , James Clark , Mathieu Poirier , Suzuki K Poulose , Mike Leach , Leo Yan , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, zhengjun.xing@intel.com, eranian@google.com Subject: Re: [PATCH v4 00/48] Refactor perf cpumap Message-ID: References: <20220105061351.120843-1-irogers@google.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Url: http://acmel.wordpress.com 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 RW0gTW9uLCBKYW4gMTAsIDIwMjIgYXQgMDU6MTc6MjVQTSAtMDMwMCwgQXJuYWxkbyBDYXJ2YWxo byBkZSBNZWxvIGVzY3JldmV1Ogo+IEVtIFR1ZSwgSmFuIDA0LCAyMDIyIGF0IDEwOjEzOjAzUE0g LTA4MDAsIElhbiBSb2dlcnMgZXNjcmV2ZXU6Cj4gPiBQZXJmIGNwdSBtYXAgaGFzIHZhcmlvdXMg ZnVuY3Rpb25zIHdoZXJlIGEgY3B1bWFwIGFuZCBpbmRleCBhcmUgcGFzc2VkCj4gPiBpbiBvcmRl ciB0byBsb2FkIHRoZSBjcHUuIEEgcHJvYmxlbSB3aXRoIHRoaXMgaXMgdGhhdCB0aGUgd3Jvbmcg aW5kZXgKPiA+IG1heSBiZSBwYXNzZWQgZm9yIHRoZSBjcHVtYXAsIGNhdXNpbmcgcHJvYmxlbXMg bGlrZSBhZ2dyZWdhdGlvbiBvbiB0aGUKPiA+IHdyb25nIENQVToKPiA+IGh0dHBzOi8vbG9yZS5r ZXJuZWwub3JnL2xrbWwvMjAyMTEyMDQwMjM0MDkuOTY5NjY4LTEtaXJvZ2Vyc0Bnb29nbGUuY29t Lwo+ID4gCj4gPiBUaGlzIHBhdGNoIHNldCByZWZhY3RvcnMgdGhlIGNwdSBtYXAgQVBJLCByZWR1 Y2luZyBpdCBhbmQgZXhwbGljaXRseQo+ID4gcGFzc2luZyB0aGUgY3B1IChyYXRoZXIgdGhhbiB0 aGUgcGFpcikgdG8gZnVuY3Rpb25zIHRoYXQgbmVlZAo+ID4gaXQuIENvbW1lbnRzIGFyZSBhZGRl ZCBhdCB0aGUgc2FtZSB0aW1lLiBDaGFuZ2VzIG1vZGlmeSB0aGUgc2FtZQo+ID4gZmlsZS9mdW5j dGlvbiBtb3JlIHRoYW4gb25jZSBhcyByZWZhY3RvcmluZyBhbmQgZml4ZXMgYXJlIGJyb2tlbiBh cGFydAo+ID4gZm9yIHRoZSBzYWtlIG9mIGJpc2VjdGlvbi4KPiA+IAo+ID4gdjIuIEluY29ycHJv YXRlcyBmaXhlcyBzdWdnZXN0ZWQgSmlyaSBPbHNhLCByZXdyaXRlcyB0aGUgZXZsaXN0IENQVQo+ ID4gICAgIGl0ZXJhdG9yIGluIHBhcnQgaW4gYSB3YXkgc3VnZ2VzdGVkIGJ5IFJpY2NhcmRvIE1h bmNpbmkuIFRoZSBuZXcKPiA+ICAgICBmaXhlcyBzdGFydCBhdCBwYXRjaCAyMy4gVGhlIGZpbmFs IGNoYW5nZSB3YXMgc3VnZ2VzdGVkIGJ5IEpvaG4KPiA+ICAgICBHYXJyeSB0byBtYWtlIHRoZSBD UFVzIGhhdmUgdGhlaXIgb3duIHN0cnVjdCB3cmFwcGVyLgo+ID4gCj4gPiB2My4gSW5jb3Jwb3Jh dGVzIGZpeGVzIHN1Z2dlc3RlZCBieSBOYW1oeXVuZyBLaW0uCj4gPiAKPiA+IHY0LiBSZWJhc2Vz IGFuZCBpbmNvcnBvcmF0ZXMgZml4ZXMgc3VnZ2VzdGVkIGJ5IEppcmkgT2xzYS4KPiAKPiBEaWQg Zml4ZXMgaW4gcGxhY2VzIHdoZXJlIEJVSUxEX0JQRl9TS0VMPTEgd2FzIGZhaWxpbmcsIG5vdywg YXQgdGhlIGVuZAo+IG9mIHRoZSBzZXJpZXM6Cj4gCj4g4qyiW2FjbWVAdG9vbGJveCBwZXJmXSQg Z2l0IGxvZyAtLW9uZWxpbmUgLTEgOyB0aW1lIG1ha2UgLUMgdG9vbHMvcGVyZiBidWlsZC10ZXN0 Cj4gNDYyYWFmYThmY2JkYzc4ZiAoSEVBRCAtPiBwZXJmL2NvcmUpIHBlcmYgY3B1bWFwOiBHaXZl IENQVXMgdGhlaXIgb3duIHR5cGUKPiBtYWtlOiBFbnRlcmluZyBkaXJlY3RvcnkgJy92YXIvaG9t ZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYnCj4gLSB0YXJwa2c6IC4vdGVzdHMvcGVyZi10YXJn ei1zcmMtcGtnIC4KPiAgICAgICAgICAgICAgICAgIG1ha2Vfc3RhdGljOiBjZCAuICYmIG1ha2Ug TERGTEFHUz0tc3RhdGljIE5PX1BFUkZfUkVBRF9WRFNPMzI9MSBOT19QRVJGX1JFQURfVkRTT1gz Mj0xIE5PX0pWTVRJPTEgLWozMiAgREVTVERJUj0vdG1wL3RtcC5sRnJxVmNxaVJZCj4gICAgICAg ICAgICAgICBtYWtlX3dpdGhfZ3RrMjogY2QgLiAmJiBtYWtlIEdUSzI9MSAtajMyICBERVNURElS PS90bXAvdG1wLkt2SG1UcVVHbUQKPiAtIC92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3Bl cmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVA6IGNkIC4gJiYgbWFrZSBGRUFUVVJFX0RVTVBfQ09Q WT0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9E VU1QICBmZWF0dXJlLWR1bXAKPiBjZCAuICYmIG1ha2UgRkVBVFVSRV9EVU1QX0NPUFk9L3Zhci9o b21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCBmZWF0 dXJlLWR1bXAKPiAgICAgICAgICAgICBtYWtlX25vX2xpYmVsZl9POiBjZCAuICYmIG1ha2UgTk9f TElCRUxGPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJm L0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC54ejNMWXk3V3BBIERFU1RE SVI9L3RtcC90bXAuelZqSU1wdlFNTQo+ICAgICAgIG1ha2Vfbm9fbGliYnBmX0RFQlVHX086IGNk IC4gJiYgbWFrZSBOT19MSUJCUEY9MSBERUJVRz0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2Fj bWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3Rt cC90bXAuMGd4QU9TamIxaiBERVNURElSPS90bXAvdG1wLmtZVGsxV2pXV3oKPiAgICAgICAgICAg bWFrZV9ub19saWJhdWRpdF9POiBjZCAuICYmIG1ha2UgTk9fTElCQVVESVQ9MSBGRUFUVVJFU19E VU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJF X0RVTVAgLWozMiBPPS90bXAvdG1wLjZoQXJURzlEdGggREVTVERJUj0vdG1wL3RtcC5oQ05kWWVE UkNyCj4gICAgICAgICAgbWFrZV9ub19iYWNrdHJhY2VfTzogY2QgLiAmJiBtYWtlIE5PX0JBQ0tU UkFDRT0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9C VUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuVnRvUEk1OHozdCBERVNURElS PS90bXAvdG1wLlNZeUJCTVNIU0wKPiAgICAgICAgICBtYWtlX25vX2xpYmNyeXB0b19POiBjZCAu ICYmIG1ha2UgTk9fTElCQ1JZUFRPPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQv cGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5T TzFxdHhKd3ZFIERFU1RESVI9L3RtcC90bXAuQXFyUHcxb1pmeAo+ICAgICAgICBtYWtlX3dpdGhf Y2xhbmdsbHZtX086IGNkIC4gJiYgbWFrZSBMSUJDTEFOR0xMVk09MSBGRUFUVVJFU19EVU1QPS92 YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAg LWozMiBPPS90bXAvdG1wLkc5S1ZFYUR2MkIgREVTVERJUj0vdG1wL3RtcC42Q1NxajB3UHFKCj4g ICAgICAgIG1ha2Vfd2l0aF9jb3Jlc2lnaHRfTzogY2QgLiAmJiBtYWtlIENPUkVTSUdIVD0xIEZF QVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNU X0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuUG5WVEpOSHkxRSBERVNURElSPS90bXAvdG1w Lms3QXJlcmc3NzgKPiAgICAgICAgICBtYWtlX25vX2xpYnB5dGhvbl9POiBjZCAuICYmIG1ha2Ug Tk9fTElCUFlUSE9OPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29s cy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5jS2p2RmFnVkwz IERFU1RESVI9L3RtcC90bXAuYUNhRDBoYlAzTwo+ICAgICAgICAgICAgICAgIG1ha2Vfbm9fc2R0 X086IGNkIC4gJiYgbWFrZSBOT19TRFQ9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dp dC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1w LkVLb1dub1p0bDQgREVTVERJUj0vdG1wL3RtcC4xZ0dZZXRjcHRCCj4gICAgICAgIG1ha2VfbGli YnBmX2R5bmFtaWNfTzogY2QgLiAmJiBtYWtlIExJQkJQRl9EWU5BTUlDPTEgRkVBVFVSRVNfRFVN UD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9E VU1QIC1qMzIgTz0vdG1wL3RtcC5Oa2VkNU8xMEVLIERFU1RESVI9L3RtcC90bXAuZW82WUFFT2Za Two+ICAgICAgICAgICAgICAgbWFrZV9taW5pbWFsX086IGNkIC4gJiYgbWFrZSBOT19MSUJQRVJM PTEgTk9fTElCUFlUSE9OPTEgTk9fTkVXVD0xIE5PX0dUSzI9MSBOT19ERU1BTkdMRT0xIE5PX0xJ QkVMRj0xIE5PX0xJQlVOV0lORD0xIE5PX0JBQ0tUUkFDRT0xIE5PX0xJQk5VTUE9MSBOT19MSUJB VURJVD0xIE5PX0xJQkJJT05JQz0xIE5PX0xJQkRXX0RXQVJGX1VOV0lORD0xIE5PX0FVWFRSQUNF PTEgTk9fTElCQlBGPTEgTk9fTElCQ1JZUFRPPTEgTk9fU0RUPTEgTk9fSlZNVEk9MSBOT19MSUJa U1REPTEgTk9fTElCQ0FQPTEgTk9fU1lTQ0FMTF9UQUJMRT0xIEZFQVRVUkVTX0RVTVA9L3Zhci9o b21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMy IE89L3RtcC90bXAuWjZkU3FZQlhmVSBERVNURElSPS90bXAvdG1wLlk0aVJ1NjM0b2YKPiAgbWFr ZV9pbnN0YWxsX3ByZWZpeF9zbGFzaF9POiBjZCAuICYmIG1ha2UgaW5zdGFsbCBwcmVmaXg9L3Rt cC9rcmF2YS8gRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJm L0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5CZ2lwRHlOdTcwIERFU1RE SVI9L3RtcC90bXAucE93cmREWUJxZgo+ICAgICAgbWFrZV91dGlsX3BtdV9iaXNvbl9vX086IGNk IC4gJiYgbWFrZSB1dGlsL3BtdS1iaXNvbi5vIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUv Z2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90 bXAuWGVPODJBam12NiBERVNURElSPS90bXAvdG1wLmR4UUtOTkJNNlcKPiAgICAgICAgICAgICAg IG1ha2VfaW5zdGFsbF9POiBjZCAuICYmIG1ha2UgaW5zdGFsbCBGRUFUVVJFU19EVU1QPS92YXIv aG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWoz MiBPPS90bXAvdG1wLkt1Q3lxekx3bkEgREVTVERJUj0vdG1wL3RtcC5LWXZxb2lPS3pXCj4gICAg ICAgIG1ha2VfaW5zdGFsbF9wcmVmaXhfTzogY2QgLiAmJiBtYWtlIGluc3RhbGwgcHJlZml4PS90 bXAva3JhdmEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJm L0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5ySk5OUEVMZHJpIERFU1RE SVI9L3RtcC90bXAuZzUyaTlDY21uVQo+ICAgICAgICAgICBtYWtlX2luc3RhbGxfYmluX086IGNk IC4gJiYgbWFrZSBpbnN0YWxsLWJpbiBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9w ZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLmkx MTh2YlF1bzAgREVTVERJUj0vdG1wL3RtcC45MHRLY2pPV0Q4Cj4gICAgICAgICAgICAgICAgbWFr ZV9wZXJmX29fTzogY2QgLiAmJiBtYWtlIHBlcmYubyBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9h Y21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90 bXAvdG1wLmtFWk1Udmgzd2YgREVTVERJUj0vdG1wL3RtcC5KWXZRTGRrUHNwCj4gICAgICAgICAg ICAgIG1ha2Vfbm9fc2xhbmdfTzogY2QgLiAmJiBtYWtlIE5PX1NMQU5HPTEgRkVBVFVSRVNfRFVN UD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9E VU1QIC1qMzIgTz0vdG1wL3RtcC5XRE5HSDBEcGRXIERFU1RESVI9L3RtcC90bXAuWmZhODA0d0Ns Sgo+ICAgICAgICAgICAgICAgICBtYWtlX25vX3VpX086IGNkIC4gJiYgbWFrZSBOT19ORVdUPTEg Tk9fU0xBTkc9MSBOT19HVEsyPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVy Zi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5QNG5U Qk5xa1A0IERFU1RESVI9L3RtcC90bXAuaUNMcU95cmg0bwo+ICAgICAgICAgICAgICAgbWFrZV9u b19uZXd0X086IGNkIC4gJiYgbWFrZSBOT19ORVdUPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUv YWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0v dG1wL3RtcC5FZGpqSG9xT0RWIERFU1RESVI9L3RtcC90bXAuaktmWVJpeld0bQo+ICAgICAgICAg IG1ha2Vfd2l0aF9saWJwZm00X086IGNkIC4gJiYgbWFrZSBMSUJQRk00PTEgRkVBVFVSRVNfRFVN UD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9E VU1QIC1qMzIgTz0vdG1wL3RtcC5yM2hQQU9nZklkIERFU1RESVI9L3RtcC90bXAuR3ZNbUVaVWMy Qgo+ICAgICAgICAgICBtYWtlX25vX2RlbWFuZ2xlX086IGNkIC4gJiYgbWFrZSBOT19ERU1BTkdM RT0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlM RF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAud0c5ZjQwTHpHMyBERVNURElSPS90 bXAvdG1wLmk3NnNQalNnMW0KPiAgICAgICAgICBtYWtlX25vX2xpYnVud2luZF9POiBjZCAuICYm IG1ha2UgTk9fTElCVU5XSU5EPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVy Zi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5TbUZm bW1COUtRIERFU1RESVI9L3RtcC90bXAuOXRqTWRDV014Rwo+ICAgICAgICAgICAgIG1ha2Vfbm9f bGliYnBmX086IGNkIC4gJiYgbWFrZSBOT19MSUJCUEY9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9t ZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBP PS90bXAvdG1wLjdqSDIxb1A5bjcgREVTVERJUj0vdG1wL3RtcC50YVVxVGdZMzdTCj4gICAgICAg IG1ha2Vfbm9fc3lzY2FsbF90YmxfTzogY2QgLiAmJiBtYWtlIE5PX1NZU0NBTExfVEFCTEU9MSBG RUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVT VF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLkwydjd2aTFBUWwgREVTVERJUj0vdG1wL3Rt cC53SEVBNGpFcHc5Cj4gICAgICAgICAgICBtYWtlX25vX2xpYm51bWFfTzogY2QgLiAmJiBtYWtl IE5PX0xJQk5VTUE9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xz L3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLjlONXBRWXVSYk8g REVTVERJUj0vdG1wL3RtcC5CMFlwdGI3eFA2Cj4gICAgICAgICAgICBtYWtlX3V0aWxfbWFwX29f TzogY2QgLiAmJiBtYWtlIHV0aWwvbWFwLm8gRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9n aXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3Rt cC5COG9lNGpuV3dCIERFU1RESVI9L3RtcC90bXAubTBBUGxzbGkxNAo+ICAgICAgIG1ha2Vfd2l0 aF9iYWJlbHRyYWNlX086IGNkIC4gJiYgbWFrZSBMSUJCQUJFTFRSQUNFPTEgRkVBVFVSRVNfRFVN UD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9E VU1QIC1qMzIgTz0vdG1wL3RtcC4zRzFrTFRKTEp4IERFU1RESVI9L3RtcC90bXAuYWh1REVOU01z ego+ICAgICAgICAgICAgICAgICBtYWtlX2RlYnVnX086IGNkIC4gJiYgbWFrZSBERUJVRz0xIEZF QVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNU X0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuS3Bzdk9qMEtIRCBERVNURElSPS90bXAvdG1w LmYyWXY5THJvcmcKPiAgICAgICAgICAgIG1ha2Vfbm9fbGlicGVybF9POiBjZCAuICYmIG1ha2Ug Tk9fTElCUEVSTD0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMv cGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuN3RJdWZ3QWk0TyBE RVNURElSPS90bXAvdG1wLnZjQnY3VVlqdXcKPiAgICAgICAgICBtYWtlX25vX2xpYmJpb25pY19P OiBjZCAuICYmIG1ha2UgTk9fTElCQklPTklDPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNt ZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1w L3RtcC5IQ0pBN3hDRHhxIERFU1RESVI9L3RtcC90bXAudXM1Q0RTUHF5Two+ICAgICAgICAgICAg ICAgICAgbWFrZV9wdXJlX086IGNkIC4gJiYgbWFrZSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9h Y21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90 bXAvdG1wLmVnMndDcHlkdmcgREVTVERJUj0vdG1wL3RtcC5NbUQxeEVTTzJBCj4gICAgICAgICAg ICAgICAgICAgbWFrZV9kb2NfTzogY2QgLiAmJiBtYWtlIGRvYyBGRUFUVVJFU19EVU1QPS92YXIv aG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWoz MiBPPS90bXAvdG1wLlRxa3lHcnpSdXQgREVTVERJUj0vdG1wL3RtcC5hcDM0SVZ4b005Cj4gICAg ICAgICAgICBtYWtlX25vX3NjcmlwdHNfTzogY2QgLiAmJiBtYWtlIE5PX0xJQlBZVEhPTj0xIE5P X0xJQlBFUkw9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3Bl cmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLnBSV0hLenBQaHYgREVT VERJUj0vdG1wL3RtcC5kVU5oQXAyckx0Cj4gICAgICAgICAgICAgbWFrZV9jbGVhbl9hbGxfTzog Y2QgLiAmJiBtYWtlIGNsZWFuIGFsbCBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9w ZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLllu ek5MTGs5SUQgREVTVERJUj0vdG1wL3RtcC43a1hyNW9ia21BCj4gbWFrZV9ub19saWJkd19kd2Fy Zl91bndpbmRfTzogY2QgLiAmJiBtYWtlIE5PX0xJQkRXX0RXQVJGX1VOV0lORD0xIEZFQVRVUkVT X0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRV UkVfRFVNUCAtajMyIE89L3RtcC90bXAuR3paQ3h1WUx3UiBERVNURElSPS90bXAvdG1wLm4zWVM5 YTlEY1UKPiAgICAgICAgICAgICAgICAgIG1ha2VfaGVscF9POiBjZCAuICYmIG1ha2UgaGVscCBG RUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVT VF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLnQ3UXdXVkhzb2QgREVTVERJUj0vdG1wL3Rt cC5ORzV1U1dDWnppCj4gICAgICAgICAgIG1ha2Vfbm9fYXV4dHJhY2VfTzogY2QgLiAmJiBtYWtl IE5PX0FVWFRSQUNFPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29s cy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC53aURaa0p6czhS IERFU1RESVI9L3RtcC90bXAuSVR0UGxYMHVzWAo+ICAgICAgICAgICAgICAgbWFrZV9ub19ndGsy X086IGNkIC4gJiYgbWFrZSBOT19HVEsyPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9n aXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3Rt cC54ZDF4NVFJY2tKIERFU1RESVI9L3RtcC90bXAuZjZLenNISGtaSAo+ICAgICAgICAgICAgICAg ICAgbWFrZV90YWdzX086IGNkIC4gJiYgbWFrZSB0YWdzIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21l L2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89 L3RtcC90bXAuZThvU2FCdUZVYiBERVNURElSPS90bXAvdG1wLjRjemQ2b3ZsU0IKPiBPSwo+IG1h a2U6IExlYXZpbmcgZGlyZWN0b3J5ICcvdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJm Jwo+IAo+IHJlYWwJNG0yOS4zODhzCj4gdXNlcgk1OW02LjA2MHMKPiBzeXMJMTJtMTkuNTgxcwo+ IOKsolthY21lQHRvb2xib3ggcGVyZl0kCj4gCj4gYWxpYXMgbT0ncGVyZiBzdGF0IC1lIGN5Y2xl czp1LGluc3RydWN0aW9uczp1IG1ha2UgLWsgQlVJTERfQlBGX1NLRUw9MSBDT1JFU0lHSFQ9MSBQ WVRIT049cHl0aG9uMyBPPS90bXAvYnVpbGQvcGVyZiAtQyB0b29scy9wZXJmIGluc3RhbGwtYmlu ICYmIGdpdCBzdGF0dXMgJiYgcGVyZiB0ZXN0IHB5dGhvbicKPiAKPiBTbyAncGVyZiB0ZXN0IHB5 dGhvbicgaXMgZG9uZSBhZnRlciBldmVyeSBidWlsZCwgbm8gcHJvYmxlbXMgd2l0aCB0aGF0Cj4g YXMgd2VsbC4KPiAKPiBJJ20gbm93IG1ha2luZyBpdCBnbyB0aHJ1IHRoZSBjb250YWluZXIgYnVp bGRzLgoKTm90IGEgZ29vZCBzdGFydCwgY2hlY2tpbmc6CgpbcGVyZmJ1aWxkZXJAZml2ZSB+XSQg dGltZSBkbQogICAxICAgIDUwLjI1IGFsbWFsaW51eDo4ICAgICAgICAgICAgICAgICAgIDogRkFJ TCBjbGFuZyB2ZXJzaW9uIDEyLjAuMSAoUmVkIEhhdCAxMi4wLjEtNC5tb2R1bGVfZWw4LjUuMCsx MDI1KzkzMTU5ZDZjKQogICAgYnVpbHRpbi1zdGF0LmM6MTQ5OTozMTogZXJyb3I6IHVudXNlZCBm dW5jdGlvbiAncGVyZl9lbnZfX2dldF9jcHUnIFstV2Vycm9yLC1XdW51c2VkLWZ1bmN0aW9uXQog ICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGVyZl9jcHUgcGVyZl9lbnZfX2dldF9jcHUodm9pZCAq ZGF0YSwgc3RydWN0IHBlcmZfY3B1X21hcCAqbWFwLCBpbnQgaWR4KQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgogICAgMSBlcnJvciBnZW5lcmF0ZWQuCiAgIDIgICAgNTQuMTQg YWxwaW5lOjMuNCAgICAgICAgICAgICAgICAgICAgOiBGQUlMIGNsYW5nIHZlcnNpb24gMy44LjAg KHRhZ3MvUkVMRUFTRV8zODAvZmluYWwpCiAgICBidWlsdGluLXN0YXQuYzoxNDk5OjMxOiBlcnJv cjogdW51c2VkIGZ1bmN0aW9uICdwZXJmX2Vudl9fZ2V0X2NwdScgWy1XZXJyb3IsLVd1bnVzZWQt ZnVuY3Rpb25dCiAgICBzdGF0aWMgaW5saW5lIHN0cnVjdCBwZXJmX2NwdSBwZXJmX2Vudl9fZ2V0 X2NwdSh2b2lkICpkYXRhLCBzdHJ1Y3QgcGVyZl9jcHVfbWFwICptYXAsIGludCBpZHgpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgICAxIGVycm9yIGdlbmVyYXRlZC4KICAg MyAgICAzOS43OCBhbHBpbmU6My41ICAgICAgICAgICAgICAgICAgICA6IEZBSUwgY2xhbmcgdmVy c2lvbiAzLjguMSAodGFncy9SRUxFQVNFXzM4MS9maW5hbCkKICAgIGJ1aWx0aW4tc3RhdC5jOjE0 OTk6MzE6IGVycm9yOiB1bnVzZWQgZnVuY3Rpb24gJ3BlcmZfZW52X19nZXRfY3B1JyBbLVdlcnJv ciwtV3VudXNlZC1mdW5jdGlvbl0KICAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBlcmZfY3B1IHBl cmZfZW52X19nZXRfY3B1KHZvaWQgKmRhdGEsIHN0cnVjdCBwZXJmX2NwdV9tYXAgKm1hcCwgaW50 IGlkeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICAgIDEgZXJyb3IgZ2Vu ZXJhdGVkLgogICA0ICAgIDgyLjUyIGFscGluZTozLjYgICAgICAgICAgICAgICAgICAgIDogRkFJ TCBjbGFuZyB2ZXJzaW9uIDQuMC4wICh0YWdzL1JFTEVBU0VfNDAwL2ZpbmFsKQogICAgYnVpbHRp bi1zdGF0LmM6MTQ5OTozMTogZXJyb3I6IHVudXNlZCBmdW5jdGlvbiAncGVyZl9lbnZfX2dldF9j cHUnIFstV2Vycm9yLC1XdW51c2VkLWZ1bmN0aW9uXQogICAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg cGVyZl9jcHUgcGVyZl9lbnZfX2dldF9jcHUodm9pZCAqZGF0YSwgc3RydWN0IHBlcmZfY3B1X21h cCAqbWFwLCBpbnQgaWR4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogICAg MSBlcnJvciBnZW5lcmF0ZWQuCiAgIDUgICAxMTMuNjEgYWxwaW5lOjMuNyAgICAgICAgICAgICAg ICAgICAgOiBGQUlMIGdjYyB2ZXJzaW9uIDYuNC4wIChBbHBpbmUgNi40LjApCiAgICBidWlsdGlu LXN0YXQuYzoxNDk5OjMxOiBlcnJvcjogdW51c2VkIGZ1bmN0aW9uICdwZXJmX2Vudl9fZ2V0X2Nw dScgWy1XZXJyb3IsLVd1bnVzZWQtZnVuY3Rpb25dCiAgICBzdGF0aWMgaW5saW5lIHN0cnVjdCBw ZXJmX2NwdSBwZXJmX2Vudl9fZ2V0X2NwdSh2b2lkICpkYXRhLCBzdHJ1Y3QgcGVyZl9jcHVfbWFw ICptYXAsIGludCBpZHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAgICAx IGVycm9yIGdlbmVyYXRlZC4KICAgNiAgIDExOS4wMiBhbHBpbmU6My44ICAgICAgICAgICAgICAg ICAgICA6IEZBSUwgZ2NjIHZlcnNpb24gNi40LjAgKEFscGluZSA2LjQuMCkKICAgIGJ1aWx0aW4t c3RhdC5jOjE0OTk6MzE6IGVycm9yOiB1bnVzZWQgZnVuY3Rpb24gJ3BlcmZfZW52X19nZXRfY3B1 JyBbLVdlcnJvciwtV3VudXNlZC1mdW5jdGlvbl0KICAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBl cmZfY3B1IHBlcmZfZW52X19nZXRfY3B1KHZvaWQgKmRhdGEsIHN0cnVjdCBwZXJmX2NwdV9tYXAg Km1hcCwgaW50IGlkeCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KICAgIDEg ZXJyb3IgZ2VuZXJhdGVkLgogICA3ICAgIDY0LjU1IGFscGluZTozLjkgICAgICAgICAgICAgICAg ICAgIDogRkFJTCBnY2MgdmVyc2lvbiA4LjMuMCAoQWxwaW5lIDguMy4wKQogICAgYnVpbHRpbi1z dGF0LmM6MTQ5OTozMTogZXJyb3I6IHVudXNlZCBmdW5jdGlvbiAncGVyZl9lbnZfX2dldF9jcHUn IFstV2Vycm9yLC1XdW51c2VkLWZ1bmN0aW9uXQogICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGVy Zl9jcHUgcGVyZl9lbnZfX2dldF9jcHUodm9pZCAqZGF0YSwgc3RydWN0IHBlcmZfY3B1X21hcCAq bWFwLCBpbnQgaWR4KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogICAgMSBl cnJvciBnZW5lcmF0ZWQuCiAgIDg6IGFscGluZTozLjEwCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==