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 B2FC0C433F5 for ; Mon, 10 Jan 2022 20:17:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343501AbiAJURb (ORCPT ); Mon, 10 Jan 2022 15:17:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59286 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343495AbiAJURa (ORCPT ); Mon, 10 Jan 2022 15:17:30 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8297FC06173F; Mon, 10 Jan 2022 12:17:30 -0800 (PST) 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 ams.source.kernel.org (Postfix) with ESMTPS id 24CF2B817DF; Mon, 10 Jan 2022 20:17:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89667C36AE3; Mon, 10 Jan 2022 20:17:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1641845847; bh=haEY0C1SN2sxYLnvN4gWAdwA9uqWggl6S7CaFqcIWFQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=VlhwpIkNWseAn6Wy80qEd1vQTL8VMytbrdkQ5dLzRkI2p9QspnUgncvdr0mUI0HLY RbMi+cK5rHm7U3Ui3jb3DvxFSz98sxQNqXL+/x+W3ocXg/OBPe6lsXDq5+MtmG6Lxq Wrp1d2ZYTQ1sr7SVbAA97RKnJxwjKe9/ANzpPb2WOS7OFHEtVCX6i1IDKAF8BtJSJ5 g+JDqewpi41rsv9E40evlH895LtuMJAiYS1G4cx55l0W1tq78R21qsvGFs4MEP7D0o AnhUmbO4gakIzehySI0I0Xdx/FkWvG1OjiZjAaVW8glq71c0tfwYTehcjB2nyVg08t FiJRby06bqkNA== Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 7B0D140714; Mon, 10 Jan 2022 17:17:25 -0300 (-03) Date: Mon, 10 Jan 2022 17:17:25 -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: <20220105061351.120843-1-irogers@google.com> X-Url: http://acmel.wordpress.com Precedence: bulk List-ID: X-Mailing-List: linux-perf-users@vger.kernel.org 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. - 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 4A044C433F5 for ; Mon, 10 Jan 2022 20:19: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: 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=j8VUiOoD/h0XAxkIrK+vTCiYsUQISr++wdrgR9wJgV4=; b=WUywtzvU94383w mh6gK0u/Ceb/lkydYL0JGRDbKDbCedvljMimdkMFjR+UoppMGFEm3tBYc4ZO+PtoZkALlzwf5drTB Wuk1Iquj+iDB3/BvnIBTNz2r1QHQn54t9JgdY07t97/eAkzJX0N50tNOmYdek9bh+D5qSgv+6M3qX O/g93MjrSbP0L7MkVpxOiLTqpYZ3JCa8uAZU9vug0y/+0rYVkVhVkoTvr+AuXB6ydec1QL190zgLE QKYI55fc+PMXeWiUA4JFqv7uGNLfb1fmMs6SCHroCXti4gleDiIb3uFuIMQY2UO6f4D7XePGTRI/m Ajfj4LTSM4xW799PtjYA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1n716j-00DCKP-O9; Mon, 10 Jan 2022 20:17:33 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1n716h-00DCJp-8J for linux-arm-kernel@bombadil.infradead.org; Mon, 10 Jan 2022 20:17:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; 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=xn3t3jbAf7VhCXTo17ShxBn5TtwCk+Brff9HHQu4MKo=; b=TWiHxYcMCTFrnYKHoMu17xvNRz vEerSpz5tPpebrJM5hHt1aEQL5WIXpXg20pUjFqFkdTA+67d1HAOwd+r1CZicgqzHhQtnvBF0AAhu QLKXHnVEmJE7nkk3x4FtAMLlxyYjgaJsYUBtqXsm5BwehdNjAYbsd3ur5ZQp97/4XHYByisPRAoLp nujH9qY0gpskF3YXVpU4bFM8s6yYN9VHC8ayneBirBwKQP5BDFZ/LRB42f/chof0B99vPwmGJu3ne EgvsdNrqFvtvbTdo7oLAGO+i7rbHyHJuf/dCiK2bQTQYA+DkNTKeBEVBa/g5onCjwMf/8OaMyl4N7 gmXoqREg==; Received: from [179.97.37.151] (helo=quaco.ghostprotocols.net) by desiato.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1n716f-000SG8-4X; Mon, 10 Jan 2022 20:17:29 +0000 Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id 7B0D140714; Mon, 10 Jan 2022 17:17:25 -0300 (-03) Date: Mon, 10 Jan 2022 17:17:25 -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: <20220105061351.120843-1-irogers@google.com> 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 RW0gVHVlLCBKYW4gMDQsIDIwMjIgYXQgMTA6MTM6MDNQTSAtMDgwMCwgSWFuIFJvZ2VycyBlc2Ny ZXZldToKPiBQZXJmIGNwdSBtYXAgaGFzIHZhcmlvdXMgZnVuY3Rpb25zIHdoZXJlIGEgY3B1bWFw IGFuZCBpbmRleCBhcmUgcGFzc2VkCj4gaW4gb3JkZXIgdG8gbG9hZCB0aGUgY3B1LiBBIHByb2Js ZW0gd2l0aCB0aGlzIGlzIHRoYXQgdGhlIHdyb25nIGluZGV4Cj4gbWF5IGJlIHBhc3NlZCBmb3Ig dGhlIGNwdW1hcCwgY2F1c2luZyBwcm9ibGVtcyBsaWtlIGFnZ3JlZ2F0aW9uIG9uIHRoZQo+IHdy b25nIENQVToKPiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzIwMjExMjA0MDIzNDA5Ljk2 OTY2OC0xLWlyb2dlcnNAZ29vZ2xlLmNvbS8KPiAKPiBUaGlzIHBhdGNoIHNldCByZWZhY3RvcnMg dGhlIGNwdSBtYXAgQVBJLCByZWR1Y2luZyBpdCBhbmQgZXhwbGljaXRseQo+IHBhc3NpbmcgdGhl IGNwdSAocmF0aGVyIHRoYW4gdGhlIHBhaXIpIHRvIGZ1bmN0aW9ucyB0aGF0IG5lZWQKPiBpdC4g Q29tbWVudHMgYXJlIGFkZGVkIGF0IHRoZSBzYW1lIHRpbWUuIENoYW5nZXMgbW9kaWZ5IHRoZSBz YW1lCj4gZmlsZS9mdW5jdGlvbiBtb3JlIHRoYW4gb25jZSBhcyByZWZhY3RvcmluZyBhbmQgZml4 ZXMgYXJlIGJyb2tlbiBhcGFydAo+IGZvciB0aGUgc2FrZSBvZiBiaXNlY3Rpb24uCj4gCj4gdjIu IEluY29ycHJvYXRlcyBmaXhlcyBzdWdnZXN0ZWQgSmlyaSBPbHNhLCByZXdyaXRlcyB0aGUgZXZs aXN0IENQVQo+ICAgICBpdGVyYXRvciBpbiBwYXJ0IGluIGEgd2F5IHN1Z2dlc3RlZCBieSBSaWNj YXJkbyBNYW5jaW5pLiBUaGUgbmV3Cj4gICAgIGZpeGVzIHN0YXJ0IGF0IHBhdGNoIDIzLiBUaGUg ZmluYWwgY2hhbmdlIHdhcyBzdWdnZXN0ZWQgYnkgSm9obgo+ICAgICBHYXJyeSB0byBtYWtlIHRo ZSBDUFVzIGhhdmUgdGhlaXIgb3duIHN0cnVjdCB3cmFwcGVyLgo+IAo+IHYzLiBJbmNvcnBvcmF0 ZXMgZml4ZXMgc3VnZ2VzdGVkIGJ5IE5hbWh5dW5nIEtpbS4KPiAKPiB2NC4gUmViYXNlcyBhbmQg aW5jb3Jwb3JhdGVzIGZpeGVzIHN1Z2dlc3RlZCBieSBKaXJpIE9sc2EuCgpEaWQgZml4ZXMgaW4g cGxhY2VzIHdoZXJlIEJVSUxEX0JQRl9TS0VMPTEgd2FzIGZhaWxpbmcsIG5vdywgYXQgdGhlIGVu ZApvZiB0aGUgc2VyaWVzOgoK4qyiW2FjbWVAdG9vbGJveCBwZXJmXSQgZ2l0IGxvZyAtLW9uZWxp bmUgLTEgOyB0aW1lIG1ha2UgLUMgdG9vbHMvcGVyZiBidWlsZC10ZXN0CjQ2MmFhZmE4ZmNiZGM3 OGYgKEhFQUQgLT4gcGVyZi9jb3JlKSBwZXJmIGNwdW1hcDogR2l2ZSBDUFVzIHRoZWlyIG93biB0 eXBlCm1ha2U6IEVudGVyaW5nIGRpcmVjdG9yeSAnL3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9v bHMvcGVyZicKLSB0YXJwa2c6IC4vdGVzdHMvcGVyZi10YXJnei1zcmMtcGtnIC4KICAgICAgICAg ICAgICAgICBtYWtlX3N0YXRpYzogY2QgLiAmJiBtYWtlIExERkxBR1M9LXN0YXRpYyBOT19QRVJG X1JFQURfVkRTTzMyPTEgTk9fUEVSRl9SRUFEX1ZEU09YMzI9MSBOT19KVk1UST0xIC1qMzIgIERF U1RESVI9L3RtcC90bXAubEZycVZjcWlSWQogICAgICAgICAgICAgIG1ha2Vfd2l0aF9ndGsyOiBj ZCAuICYmIG1ha2UgR1RLMj0xIC1qMzIgIERFU1RESVI9L3RtcC90bXAuS3ZIbVRxVUdtRAotIC92 YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVA6 IGNkIC4gJiYgbWFrZSBGRUFUVVJFX0RVTVBfQ09QWT0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90 b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QICBmZWF0dXJlLWR1bXAKY2QgLiAmJiBt YWtlIEZFQVRVUkVfRFVNUF9DT1BZPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYv QlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgZmVhdHVyZS1kdW1wCiAgICAgICAgICAgIG1ha2Vfbm9f bGliZWxmX086IGNkIC4gJiYgbWFrZSBOT19MSUJFTEY9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9t ZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBP PS90bXAvdG1wLnh6M0xZeTdXcEEgREVTVERJUj0vdG1wL3RtcC56VmpJTXB2UU1NCiAgICAgIG1h a2Vfbm9fbGliYnBmX0RFQlVHX086IGNkIC4gJiYgbWFrZSBOT19MSUJCUEY9MSBERUJVRz0xIEZF QVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNU X0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuMGd4QU9TamIxaiBERVNURElSPS90bXAvdG1w LmtZVGsxV2pXV3oKICAgICAgICAgIG1ha2Vfbm9fbGliYXVkaXRfTzogY2QgLiAmJiBtYWtlIE5P X0xJQkFVRElUPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9w ZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC42aEFyVEc5RHRoIERF U1RESVI9L3RtcC90bXAuaENOZFllRFJDcgogICAgICAgICBtYWtlX25vX2JhY2t0cmFjZV9POiBj ZCAuICYmIG1ha2UgTk9fQkFDS1RSQUNFPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9n aXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3Rt cC5WdG9QSTU4ejN0IERFU1RESVI9L3RtcC90bXAuU1l5QkJNU0hTTAogICAgICAgICBtYWtlX25v X2xpYmNyeXB0b19POiBjZCAuICYmIG1ha2UgTk9fTElCQ1JZUFRPPTEgRkVBVFVSRVNfRFVNUD0v dmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1Q IC1qMzIgTz0vdG1wL3RtcC5TTzFxdHhKd3ZFIERFU1RESVI9L3RtcC90bXAuQXFyUHcxb1pmeAog ICAgICAgbWFrZV93aXRoX2NsYW5nbGx2bV9POiBjZCAuICYmIG1ha2UgTElCQ0xBTkdMTFZNPTEg RkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RF U1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5HOUtWRWFEdjJCIERFU1RESVI9L3RtcC90 bXAuNkNTcWowd1BxSgogICAgICAgbWFrZV93aXRoX2NvcmVzaWdodF9POiBjZCAuICYmIG1ha2Ug Q09SRVNJR0hUPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9w ZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5QblZUSk5IeTFFIERF U1RESVI9L3RtcC90bXAuazdBcmVyZzc3OAogICAgICAgICBtYWtlX25vX2xpYnB5dGhvbl9POiBj ZCAuICYmIG1ha2UgTk9fTElCUFlUSE9OPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9n aXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3Rt cC5jS2p2RmFnVkwzIERFU1RESVI9L3RtcC90bXAuYUNhRDBoYlAzTwogICAgICAgICAgICAgICBt YWtlX25vX3NkdF9POiBjZCAuICYmIG1ha2UgTk9fU0RUPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hv bWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIg Tz0vdG1wL3RtcC5FS29Xbm9adGw0IERFU1RESVI9L3RtcC90bXAuMWdHWWV0Y3B0QgogICAgICAg bWFrZV9saWJicGZfZHluYW1pY19POiBjZCAuICYmIG1ha2UgTElCQlBGX0RZTkFNSUM9MSBGRUFU VVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9G RUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLk5rZWQ1TzEwRUsgREVTVERJUj0vdG1wL3RtcC5l bzZZQUVPZlpPCiAgICAgICAgICAgICAgbWFrZV9taW5pbWFsX086IGNkIC4gJiYgbWFrZSBOT19M SUJQRVJMPTEgTk9fTElCUFlUSE9OPTEgTk9fTkVXVD0xIE5PX0dUSzI9MSBOT19ERU1BTkdMRT0x IE5PX0xJQkVMRj0xIE5PX0xJQlVOV0lORD0xIE5PX0JBQ0tUUkFDRT0xIE5PX0xJQk5VTUE9MSBO T19MSUJBVURJVD0xIE5PX0xJQkJJT05JQz0xIE5PX0xJQkRXX0RXQVJGX1VOV0lORD0xIE5PX0FV WFRSQUNFPTEgTk9fTElCQlBGPTEgTk9fTElCQ1JZUFRPPTEgTk9fU0RUPTEgTk9fSlZNVEk9MSBO T19MSUJaU1REPTEgTk9fTElCQ0FQPTEgTk9fU1lTQ0FMTF9UQUJMRT0xIEZFQVRVUkVTX0RVTVA9 L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVN UCAtajMyIE89L3RtcC90bXAuWjZkU3FZQlhmVSBERVNURElSPS90bXAvdG1wLlk0aVJ1NjM0b2YK IG1ha2VfaW5zdGFsbF9wcmVmaXhfc2xhc2hfTzogY2QgLiAmJiBtYWtlIGluc3RhbGwgcHJlZml4 PS90bXAva3JhdmEvIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMv cGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuQmdpcER5TnU3MCBE RVNURElSPS90bXAvdG1wLnBPd3JkRFlCcWYKICAgICBtYWtlX3V0aWxfcG11X2Jpc29uX29fTzog Y2QgLiAmJiBtYWtlIHV0aWwvcG11LWJpc29uLm8gRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNt ZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1w L3RtcC5YZU84MkFqbXY2IERFU1RESVI9L3RtcC90bXAuZHhRS05OQk02VwogICAgICAgICAgICAg IG1ha2VfaW5zdGFsbF9POiBjZCAuICYmIG1ha2UgaW5zdGFsbCBGRUFUVVJFU19EVU1QPS92YXIv aG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWoz MiBPPS90bXAvdG1wLkt1Q3lxekx3bkEgREVTVERJUj0vdG1wL3RtcC5LWXZxb2lPS3pXCiAgICAg ICBtYWtlX2luc3RhbGxfcHJlZml4X086IGNkIC4gJiYgbWFrZSBpbnN0YWxsIHByZWZpeD0vdG1w L2tyYXZhIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9C VUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuckpOTlBFTGRyaSBERVNURElS PS90bXAvdG1wLmc1Mmk5Q2NtblUKICAgICAgICAgIG1ha2VfaW5zdGFsbF9iaW5fTzogY2QgLiAm JiBtYWtlIGluc3RhbGwtYmluIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYv dG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuaTExOHZi UXVvMCBERVNURElSPS90bXAvdG1wLjkwdEtjak9XRDgKICAgICAgICAgICAgICAgbWFrZV9wZXJm X29fTzogY2QgLiAmJiBtYWtlIHBlcmYubyBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dp dC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1w LmtFWk1Udmgzd2YgREVTVERJUj0vdG1wL3RtcC5KWXZRTGRrUHNwCiAgICAgICAgICAgICBtYWtl X25vX3NsYW5nX086IGNkIC4gJiYgbWFrZSBOT19TTEFORz0xIEZFQVRVUkVTX0RVTVA9L3Zhci9o b21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMy IE89L3RtcC90bXAuV0ROR0gwRHBkVyBERVNURElSPS90bXAvdG1wLlpmYTgwNHdDbEoKICAgICAg ICAgICAgICAgIG1ha2Vfbm9fdWlfTzogY2QgLiAmJiBtYWtlIE5PX05FV1Q9MSBOT19TTEFORz0x IE5PX0dUSzI9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3Bl cmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLlA0blRCTnFrUDQgREVT VERJUj0vdG1wL3RtcC5pQ0xxT3lyaDRvCiAgICAgICAgICAgICAgbWFrZV9ub19uZXd0X086IGNk IC4gJiYgbWFrZSBOT19ORVdUPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVy Zi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5FZGpq SG9xT0RWIERFU1RESVI9L3RtcC90bXAuaktmWVJpeld0bQogICAgICAgICBtYWtlX3dpdGhfbGli cGZtNF9POiBjZCAuICYmIG1ha2UgTElCUEZNND0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2Fj bWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3Rt cC90bXAucjNoUEFPZ2ZJZCBERVNURElSPS90bXAvdG1wLkd2TW1FWlVjMkIKICAgICAgICAgIG1h a2Vfbm9fZGVtYW5nbGVfTzogY2QgLiAmJiBtYWtlIE5PX0RFTUFOR0xFPTEgRkVBVFVSRVNfRFVN UD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9E VU1QIC1qMzIgTz0vdG1wL3RtcC53RzlmNDBMekczIERFU1RESVI9L3RtcC90bXAuaTc2c1BqU2cx bQogICAgICAgICBtYWtlX25vX2xpYnVud2luZF9POiBjZCAuICYmIG1ha2UgTk9fTElCVU5XSU5E PTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxE X1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5TbUZmbW1COUtRIERFU1RESVI9L3Rt cC90bXAuOXRqTWRDV014RwogICAgICAgICAgICBtYWtlX25vX2xpYmJwZl9POiBjZCAuICYmIG1h a2UgTk9fTElCQlBGPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29s cy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC43akgyMW9QOW43 IERFU1RESVI9L3RtcC90bXAudGFVcVRnWTM3UwogICAgICAgbWFrZV9ub19zeXNjYWxsX3RibF9P OiBjZCAuICYmIG1ha2UgTk9fU1lTQ0FMTF9UQUJMRT0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21l L2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89 L3RtcC90bXAuTDJ2N3ZpMUFRbCBERVNURElSPS90bXAvdG1wLndIRUE0akVwdzkKICAgICAgICAg ICBtYWtlX25vX2xpYm51bWFfTzogY2QgLiAmJiBtYWtlIE5PX0xJQk5VTUE9MSBGRUFUVVJFU19E VU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJF X0RVTVAgLWozMiBPPS90bXAvdG1wLjlONXBRWXVSYk8gREVTVERJUj0vdG1wL3RtcC5CMFlwdGI3 eFA2CiAgICAgICAgICAgbWFrZV91dGlsX21hcF9vX086IGNkIC4gJiYgbWFrZSB1dGlsL21hcC5v IEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9U RVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAuQjhvZTRqbld3QiBERVNURElSPS90bXAv dG1wLm0wQVBsc2xpMTQKICAgICAgbWFrZV93aXRoX2JhYmVsdHJhY2VfTzogY2QgLiAmJiBtYWtl IExJQkJBQkVMVFJBQ0U9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rv b2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLjNHMWtMVEpM SnggREVTVERJUj0vdG1wL3RtcC5haHVERU5TTXN6CiAgICAgICAgICAgICAgICBtYWtlX2RlYnVn X086IGNkIC4gJiYgbWFrZSBERUJVRz0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0 L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAu S3Bzdk9qMEtIRCBERVNURElSPS90bXAvdG1wLmYyWXY5THJvcmcKICAgICAgICAgICBtYWtlX25v X2xpYnBlcmxfTzogY2QgLiAmJiBtYWtlIE5PX0xJQlBFUkw9MSBGRUFUVVJFU19EVU1QPS92YXIv aG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWoz MiBPPS90bXAvdG1wLjd0SXVmd0FpNE8gREVTVERJUj0vdG1wL3RtcC52Y0J2N1VZanV3CiAgICAg ICAgIG1ha2Vfbm9fbGliYmlvbmljX086IGNkIC4gJiYgbWFrZSBOT19MSUJCSU9OSUM9MSBGRUFU VVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9G RUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLkhDSkE3eENEeHEgREVTVERJUj0vdG1wL3RtcC51 czVDRFNQcXlPCiAgICAgICAgICAgICAgICAgbWFrZV9wdXJlX086IGNkIC4gJiYgbWFrZSBGRUFU VVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9G RUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLmVnMndDcHlkdmcgREVTVERJUj0vdG1wL3RtcC5N bUQxeEVTTzJBCiAgICAgICAgICAgICAgICAgIG1ha2VfZG9jX086IGNkIC4gJiYgbWFrZSBkb2Mg RkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RF U1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC5UcWt5R3J6UnV0IERFU1RESVI9L3RtcC90 bXAuYXAzNElWeG9NOQogICAgICAgICAgIG1ha2Vfbm9fc2NyaXB0c19POiBjZCAuICYmIG1ha2Ug Tk9fTElCUFlUSE9OPTEgTk9fTElCUEVSTD0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUv Z2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90 bXAucFJXSEt6cFBodiBERVNURElSPS90bXAvdG1wLmRVTmhBcDJyTHQKICAgICAgICAgICAgbWFr ZV9jbGVhbl9hbGxfTzogY2QgLiAmJiBtYWtlIGNsZWFuIGFsbCBGRUFUVVJFU19EVU1QPS92YXIv aG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJTERfVEVTVF9GRUFUVVJFX0RVTVAgLWoz MiBPPS90bXAvdG1wLlluek5MTGs5SUQgREVTVERJUj0vdG1wL3RtcC43a1hyNW9ia21BCm1ha2Vf bm9fbGliZHdfZHdhcmZfdW53aW5kX086IGNkIC4gJiYgbWFrZSBOT19MSUJEV19EV0FSRl9VTldJ TkQ9MSBGRUFUVVJFU19EVU1QPS92YXIvaG9tZS9hY21lL2dpdC9wZXJmL3Rvb2xzL3BlcmYvQlVJ TERfVEVTVF9GRUFUVVJFX0RVTVAgLWozMiBPPS90bXAvdG1wLkd6WkN4dVlMd1IgREVTVERJUj0v dG1wL3RtcC5uM1lTOWE5RGNVCiAgICAgICAgICAgICAgICAgbWFrZV9oZWxwX086IGNkIC4gJiYg bWFrZSBoZWxwIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVy Zi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89L3RtcC90bXAudDdRd1dWSHNvZCBERVNU RElSPS90bXAvdG1wLk5HNXVTV0NaemkKICAgICAgICAgIG1ha2Vfbm9fYXV4dHJhY2VfTzogY2Qg LiAmJiBtYWtlIE5PX0FVWFRSQUNFPTEgRkVBVFVSRVNfRFVNUD0vdmFyL2hvbWUvYWNtZS9naXQv cGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1qMzIgTz0vdG1wL3RtcC53 aURaa0p6czhSIERFU1RESVI9L3RtcC90bXAuSVR0UGxYMHVzWAogICAgICAgICAgICAgIG1ha2Vf bm9fZ3RrMl9POiBjZCAuICYmIG1ha2UgTk9fR1RLMj0xIEZFQVRVUkVTX0RVTVA9L3Zhci9ob21l L2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVyZi9CVUlMRF9URVNUX0ZFQVRVUkVfRFVNUCAtajMyIE89 L3RtcC90bXAueGQxeDVRSWNrSiBERVNURElSPS90bXAvdG1wLmY2S3pzSEhrWkgKICAgICAgICAg ICAgICAgICBtYWtlX3RhZ3NfTzogY2QgLiAmJiBtYWtlIHRhZ3MgRkVBVFVSRVNfRFVNUD0vdmFy L2hvbWUvYWNtZS9naXQvcGVyZi90b29scy9wZXJmL0JVSUxEX1RFU1RfRkVBVFVSRV9EVU1QIC1q MzIgTz0vdG1wL3RtcC5lOG9TYUJ1RlViIERFU1RESVI9L3RtcC90bXAuNGN6ZDZvdmxTQgpPSwpt YWtlOiBMZWF2aW5nIGRpcmVjdG9yeSAnL3Zhci9ob21lL2FjbWUvZ2l0L3BlcmYvdG9vbHMvcGVy ZicKCnJlYWwJNG0yOS4zODhzCnVzZXIJNTltNi4wNjBzCnN5cwkxMm0xOS41ODFzCuKsolthY21l QHRvb2xib3ggcGVyZl0kCgphbGlhcyBtPSdwZXJmIHN0YXQgLWUgY3ljbGVzOnUsaW5zdHJ1Y3Rp b25zOnUgbWFrZSAtayBCVUlMRF9CUEZfU0tFTD0xIENPUkVTSUdIVD0xIFBZVEhPTj1weXRob24z IE89L3RtcC9idWlsZC9wZXJmIC1DIHRvb2xzL3BlcmYgaW5zdGFsbC1iaW4gJiYgZ2l0IHN0YXR1 cyAmJiBwZXJmIHRlc3QgcHl0aG9uJwoKU28gJ3BlcmYgdGVzdCBweXRob24nIGlzIGRvbmUgYWZ0 ZXIgZXZlcnkgYnVpbGQsIG5vIHByb2JsZW1zIHdpdGggdGhhdAphcyB3ZWxsLgoKSSdtIG5vdyBt YWtpbmcgaXQgZ28gdGhydSB0aGUgY29udGFpbmVyIGJ1aWxkcy4KCi0gQXJuYWxkbwoKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==