On Thu, 2023-10-19 at 01:06 +1000, Nicholas Piggin wrote: > On Tue Sep 26, 2023 at 3:43 AM AEST, Glenn Miles wrote: > > This is a series of patches for adding support for the Branch > > History > > Rolling Buffer (BHRB) facility. This was added to the Power ISA > > starting with version 2.07. Changes were subsequently made in > > version > > 3.1 to limit BHRB recording to instructions run in problem state > > only > > and to add a control bit to disable recording (MMCRA[BHRBRD]). > > > > Version 3 of this series disables branch recording on P8 and P9 due > > to a drop in performance caused by recording branches outside of > > problem state. > > Thanks for these, they all look good to me. > > With P10 CPU, Linux perf branch recording appears to work with this > series, and I confirmed that Linux does disable BHRB in MMCRA at > boot, so it should not take the performance hit. > > It had a couple of compile bugs, no matter I fixed them, but I often > trip overppc32 and user-mode when working on TCG too, so building > with --target-list including ppc64-softmmu,ppc-softmmu, > ppc64-linux-user,ppc64le-linux-user,ppc-linux-user is good to catch > those. > > Thanks, > Nick >
Thanks, Nick. I'll have to remember that for next time! Glenn > > Glenn Miles (4): > > target/ppc: Add new hflags to support BHRB > > target/ppc: Add recording of taken branches to BHRB > > target/ppc: Add clrbhrb and mfbhrbe instructions > > target/ppc: Add migration support for BHRB > > > > target/ppc/cpu.h | 24 ++++++ > > target/ppc/cpu_init.c | 39 +++++++++- > > target/ppc/helper.h | 5 ++ > > target/ppc/helper_regs.c | 35 +++++++++ > > target/ppc/insn32.decode | 8 ++ > > target/ppc/machine.c | 23 +++++- > > target/ppc/misc_helper.c | 46 +++++++++++ > > target/ppc/power8-pmu-regs.c.inc | 5 ++ > > target/ppc/power8-pmu.c | 48 +++++++++++- > > target/ppc/power8-pmu.h | 11 ++- > > target/ppc/spr_common.h | 1 + > > target/ppc/translate.c | 101 > > +++++++++++++++++++++++-- > > target/ppc/translate/bhrb-impl.c.inc | 43 +++++++++++ > > target/ppc/translate/branch-impl.c.inc | 2 +- > > 14 files changed, 374 insertions(+), 17 deletions(-) > > create mode 100644 target/ppc/translate/bhrb-impl.c.inc