• John Garry's avatar
    perf vendor events: Add support for pmu events vendor subdirectory · 51ce1dcc
    John Garry authored
    For some architectures (like arm), it is required to support a vendor
    subdirectory and not locate all the JSONs for a specific vendor in the
    same folder.
    
    This is because all the events for the same vendor will be placed in the
    same pmu events table, which may cause conflict.  This conflict would be
    in the instance that a vendor's custom implemented events do have the
    same meaning on different platforms, so events in the pmu table would
    conflict. In addition, per list command may show events which are not
    even supported for a given platform.
    
    This patch adds support for a arch/vendor/platform directory hierarchy,
    while maintaining backwards-compatibility for existing arch/platform
    structure. In this, each platform would always have its own pmu events
    table.
    
    In generated file pmu_events.c, each platform table name is in the
    format pme{_vendor}_platform, like this:
    
    struct pmu_events_map pmu_events_map[] = {
    {
    	.cpuid = "0x00000000420f5160",
    	.version = "v1",
    	.type = "core",
    	.table = pme_cavium_thunderx2
    },
    {
    	.cpuid = 0,
    	.version = 0,
    	.type = 0,
    	.table = 0,
    },
    };
    Signed-off-by: default avatarJohn Garry <john.garry@huawei.com>
    Acked-by: default avatarJiri Olsa <jolsa@kernel.org>
    Tested-by: default avatarSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
    Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: William Cohen <wcohen@redhat.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linuxarm@huawei.com
    Link: http://lkml.kernel.org/r/1520506716-197429-5-git-send-email-john.garry@huawei.com
    Link: http://lkml.kernel.org/r/1521047452-28565-1-git-send-email-john.garry@huawei.com
    [ Add missing limits.h include, fixing the build on at least all Alpine Linux versions tested (3.4 to 3.7 + edge), ]
    [ Applied a patch to fix reading ./.. directories in XFS, see second Link tag ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    51ce1dcc
README 4.41 KB