From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751354AbeABRsY (ORCPT + 1 other); Tue, 2 Jan 2018 12:48:24 -0500 Received: from mga03.intel.com ([134.134.136.65]:45689 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751211AbeABRsX (ORCPT ); Tue, 2 Jan 2018 12:48:23 -0500 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,498,1508828400"; d="scan'208";a="7307187" Date: Tue, 2 Jan 2018 09:48:14 -0800 From: Andi Kleen To: John Garry Cc: Jiri Olsa , peterz@infradead.org, mingo@redhat.com, acme@kernel.org, alexander.shishkin@linux.intel.com, namhyung@kernel.org, wcohen@redhat.com, will.deacon@arm.com, ganapatrao.kulkarni@cavium.com, catalin.marinas@arm.com, mark.rutland@arm.com, xuwei5@hisilicon.com, linuxarm@huawei.com, zhangshaokun@hisilicon.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 2/5] perf jevents: add support for arch recommended events Message-ID: <20180102174814.GT25156@tassilo.jf.intel.com> References: <1512490399-94107-1-git-send-email-john.garry@huawei.com> <1512490399-94107-3-git-send-email-john.garry@huawei.com> <20171206133607.GA12508@krava> <20171208122918.GE2799@krava> <20171209073104.GB14297@krava> <5d322353-2785-a99f-bcd8-b948bd6cb09a@huawei.com> <20171216184701.GB25156@tassilo.jf.intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="liOOAslEiF7prFVr" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: --liOOAslEiF7prFVr Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Can you describe how you autogenerate the JSONs? Do you have some internal > proprietary HW file format describing events, with files supplied from HW > designer, which you can just translate into a JSON? Would the files support > deferencing events to improve scalability? For Intel JSON is an official format, which is maintained for each CPU. It is automatically generated from an internal database https://download.01.org/perfmon/ I have some python scripts to convert these Intel JSONs into the perf format (which has some additional headers, and is split into different categories, and add metrics). They have some Intel specifics, so may not be useful for you. There's no support for dereference, each CPU gets its own unique file. But you could do the a merge simply with the attached script which merges two JSON files. -Andi --liOOAslEiF7prFVr Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=merge-json #!/usr/bin/python # merge json event files # merge-json file1.json file2... > merged.json import sys import json all = [] for fn in sys.argv[1:]: jf = json.load(open(fn)) for n in jf: all.append(n) print json.dumps(all, sort_keys=True, indent=4, separators=(',', ': ')) --liOOAslEiF7prFVr--