Re: [PATCH] perf stat: Add support for s390 transaction counters

From: Andi Kleen
Date: Wed Mar 14 2018 - 11:43:39 EST


> S390 has no support for Elision and uses transaction begin/end/abort
> instructions. The CPU measurement counter facility provides counters for
> transaction end and transaction abort.

You don't need to implement the el-* events.

> I have used this table (taken from arch/x86/events/intel/core.c) as giudeline:
> /* Haswell special events */
> EVENT_ATTR_STR(tx-start, tx_start, "event=0xc9,umask=0x1");
> EVENT_ATTR_STR(tx-commit, tx_commit, "event=0xc9,umask=0x2");
> EVENT_ATTR_STR(tx-abort, tx_abort, "event=0xc9,umask=0x4");
> EVENT_ATTR_STR(tx-capacity, tx_capacity, "event=0x54,umask=0x2");
> EVENT_ATTR_STR(tx-conflict, tx_conflict, "event=0x54,umask=0x1");
> EVENT_ATTR_STR(el-start, el_start, "event=0xc8,umask=0x1");
> EVENT_ATTR_STR(el-commit, el_commit, "event=0xc8,umask=0x2");
> EVENT_ATTR_STR(el-abort, el_abort, "event=0xc8,umask=0x4");
> EVENT_ATTR_STR(el-capacity, el_capacity, "event=0x54,umask=0x2");
> EVENT_ATTR_STR(el-conflict, el_conflict, "event=0x54,umask=0x1");
> EVENT_ATTR_STR(cycles-t, cycles_t, "event=0x3c,in_tx=1");
> EVENT_ATTR_STR(cycles-ct, cycles_ct, "event=0x3c,in_tx=1,in_tx_cp=1");
>
>
> So s390 can only support tx_commit and tx-abort symbolic names.
> None of them show up in the transactions_attrs and transaction_limited_attrs
> string variables used in builtin-stat.c file.

We could change perf stat to fall back to only tx commit and tx abort.
We already did that for one limited case.

-Andi