This patch set adds support for the Program-Event Recording (PER) feature. It implements all the PER functionalities except the following ones: - zero-address-detection event (part of the zero-address-detection facility) - transaction-end event (we don't implement transactional memory)
There are also a few limitations to the storage-alteration event, as it doesn't support per ASC enablement, nor it doesn't correctly provide the ASC used for a storage event in the PER AI field. With this patch set, it's possible to fully use GDB in a s390x guest, including stepping, breakpoints and watchpoints. Aurelien Jarno (15): softmmu: provide tlb_vaddr_to_host function for user mode target-s390x: function to adjust the length wrt page boundary target-s390x: mvc_fast_memset: access memory through softmmu target-s390x: mvc_fast_memmove: access memory through softmmu target-s390x: add PER related constants target-s390x: add get_per_atmid function target-s390x: add get_per_in_range function target-s390x: basic PER event handling target-s390x: PER successful-branching event support target-s390x: PER instruction-fetch event support translate-all: fix watchpoints if retranslation not possible target-s390x: PER storage-alteration event support target-s390x: PER store-using-real-address event support target-s390x: PER instruction-fetch nullification event support target-s390x: PER: add Breaking-Event-Address register include/exec/cpu_ldst.h | 8 +- target-s390x/cpu-qom.h | 1 + target-s390x/cpu.c | 7 ++ target-s390x/cpu.h | 55 +++++++++++-- target-s390x/helper.c | 130 +++++++++++++++++++++++++----- target-s390x/helper.h | 3 + target-s390x/mem_helper.c | 193 +++++++++++++++++++++++---------------------- target-s390x/misc_helper.c | 46 +++++++++++ target-s390x/translate.c | 82 ++++++++++++++++++- translate-all.c | 20 +++-- 10 files changed, 420 insertions(+), 125 deletions(-) -- 2.1.4