Dirk Mueller 2020-06-19 15:22:32 +00:00 committed by Git OBS Bridge
parent a306f3d4aa
commit 73b010293c
6 changed files with 0 additions and 420 deletions

View File

@ -1,70 +0,0 @@
From 33772bab1cb146e87220850992674cae9cf74474 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 19 Jan 2020 16:30:40 +0100
Subject: [PATCH 1/2] Add newer constants for prctl syscall
---
include/vki/vki-linux.h | 45 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h
index b4c6085..5906578 100644
--- a/include/vki/vki-linux.h
+++ b/include/vki/vki-linux.h
@@ -2590,8 +2590,53 @@ struct vki_vt_consize {
#define VKI_PR_SET_SECCOMP 22
+#define VKI_PR_CAPBSET_READ 23
+#define VKI_PR_CAPBSET_DROP 24
+
+#define VKI_PR_GET_TSC 25
+#define VKI_PR_SET_TSC 26
+
+#define VKI_PR_GET_SECUREBITS 27
+#define VKI_PR_SET_SECUREBITS 28
+
+#define VKI_PR_SET_TIMERSLACK 29
+#define VKI_PR_GET_TIMERSLACK 30
+
+#define VKI_PR_TASK_PERF_EVENTS_DISABLE 31
+#define VKI_PR_TASK_PERF_EVENTS_ENABLE 32
+
+#define VKI_PR_MCE_KILL 33
+#define VKI_PR_MCE_KILL_GET 34
+
#define VKI_PR_SET_PTRACER 0x59616d61
+#define VKI_PR_SET_CHILD_SUBREAPER 36
+#define VKI_PR_GET_CHILD_SUBREAPER 37
+
+#define VKI_PR_SET_NO_NEW_PRIVS 38
+#define VKI_PR_GET_NO_NEW_PRIVS 39
+
+#define VKI_PR_GET_TID_ADDRESS 40
+
+#define VKI_PR_SET_THP_DISABLE 41
+#define VKI_PR_GET_THP_DISABLE 42
+
+#define VKI_PR_MPX_ENABLE_MANAGEMENT 43
+#define VKI_PR_MPX_DISABLE_MANAGEMENT 44
+
+#define VKI_PR_SET_FP_MODE 45
+#define VKI_PR_GET_FP_MODE 46
+
+#define VKI_PR_CAP_AMBIENT 47
+
+#define VKI_PR_SVE_SET_VL 50
+#define VKI_PR_SVE_GET_VL 51
+#define VKI_PR_GET_SPECULATION_CTRL 52
+#define VKI_PR_SET_SPECULATION_CTRL 53
+#define VKI_PR_PAC_RESET_KEYS 54
+#define VKI_PR_SET_TAGGED_ADDR_CTRL 55
+#define VKI_PR_GET_TAGGED_ADDR_CTRL 56
+
//----------------------------------------------------------------------
// From linux-2.6.19/include/linux/usbdevice_fs.h
//----------------------------------------------------------------------
--
2.24.1

View File

@ -1,26 +0,0 @@
From 379c62017f1e573eeb54725bf3a3bc84c5aa9977 Mon Sep 17 00:00:00 2001
From: Petar Jovanovic <mips32r2@gmail.com>
Date: Fri, 14 Jun 2019 14:14:05 +0000
Subject: [PATCH] Fix makefile consistency check
Add ecag.stdout.exp-z14 to EXTRA_DIST.
---
none/tests/s390x/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/none/tests/s390x/Makefile.am b/none/tests/s390x/Makefile.am
index a5fbffd1e..c5b07f7a2 100644
--- a/none/tests/s390x/Makefile.am
+++ b/none/tests/s390x/Makefile.am
@@ -39,7 +39,7 @@ EXTRA_DIST = \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
ecag.stdout.exp-z10ec ecag.stdout.exp-z196 ecag.stdout.exp-zec12 \
- ecag.stdout.exp-z13 \
+ ecag.stdout.exp-z13 ecag.stdout.exp-z14 \
op00.stderr.exp1 op00.stderr.exp2 op00.vgtest \
fixbr.vgtest fixbr.stderr.exp fixbr.stdout.exp \
fpext.vgtest fpext.stderr.exp fpext.stdout.exp \
--
2.25.1

View File

@ -1,135 +0,0 @@
From 3a2711c659ac839934f13e0529e14d6c15325383 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <arnez@linux.ibm.com>
Date: Thu, 27 Feb 2020 15:52:53 +0100
Subject: [PATCH] s390x: Add CPU model for z15
Make the z15 CPU models known to Valgrind. Add test case output for z15
to the "ecag" test. Also ensure that the facility bits for CPU facilities
unsupported by Valgrind are unset, particularly for the new
deflate-conversion facility.
---
VEX/priv/guest_s390_helpers.c | 3 +++
VEX/pub/libvex.h | 3 ++-
VEX/pub/libvex_s390x_common.h | 3 +++
auxprogs/s390-check-opcodes.pl | 2 +-
coregrind/m_machine.c | 2 ++
none/tests/s390x/Makefile.am | 2 +-
none/tests/s390x/ecag.stdout.exp-z15 | 28 ++++++++++++++++++++++++++++
tests/s390x_features.c | 2 ++
8 files changed, 42 insertions(+), 3 deletions(-)
create mode 100644 none/tests/s390x/ecag.stdout.exp-z15
Index: valgrind-3.15.0/VEX/priv/guest_s390_helpers.c
===================================================================
--- valgrind-3.15.0.orig/VEX/priv/guest_s390_helpers.c
+++ valgrind-3.15.0/VEX/priv/guest_s390_helpers.c
@@ -379,6 +379,9 @@ s390x_dirtyhelper_STFLE(VexGuestS390XSta
s390_set_facility_bit(addr, S390_FAC_CTREXE, 0);
s390_set_facility_bit(addr, S390_FAC_TREXE, 0);
s390_set_facility_bit(addr, S390_FAC_MSA4, 0);
+ s390_set_facility_bit(addr, S390_FAC_VXE, 0);
+ s390_set_facility_bit(addr, S390_FAC_VXE2, 0);
+ s390_set_facility_bit(addr, S390_FAC_DFLT, 0);
return cc;
}
Index: valgrind-3.15.0/VEX/pub/libvex.h
===================================================================
--- valgrind-3.15.0.orig/VEX/pub/libvex.h
+++ valgrind-3.15.0/VEX/pub/libvex.h
@@ -148,7 +148,8 @@ typedef
#define VEX_S390X_MODEL_Z13S 13
#define VEX_S390X_MODEL_Z14 14
#define VEX_S390X_MODEL_Z14_ZR1 15
-#define VEX_S390X_MODEL_UNKNOWN 16 /* always last in list */
+#define VEX_S390X_MODEL_Z15 16
+#define VEX_S390X_MODEL_UNKNOWN 17 /* always last in list */
#define VEX_S390X_MODEL_MASK 0x3F
#define VEX_HWCAPS_S390X_LDISP (1<<6) /* Long-displacement facility */
Index: valgrind-3.15.0/VEX/pub/libvex_s390x_common.h
===================================================================
--- valgrind-3.15.0.orig/VEX/pub/libvex_s390x_common.h
+++ valgrind-3.15.0/VEX/pub/libvex_s390x_common.h
@@ -104,6 +104,9 @@
#define S390_FAC_TREXE 73 // transactional execution
#define S390_FAC_MSA4 77 // message-security-assist 4
#define S390_FAC_VX 129 // vector facility
+#define S390_FAC_VXE 135 // vector enhancements facility 1
+#define S390_FAC_VXE2 148 // vector enhancements facility 2
+#define S390_FAC_DFLT 151 // deflate-conversion facility
/*--------------------------------------------------------------*/
Index: valgrind-3.15.0/coregrind/m_machine.c
===================================================================
--- valgrind-3.15.0.orig/coregrind/m_machine.c
+++ valgrind-3.15.0/coregrind/m_machine.c
@@ -582,6 +582,8 @@ static UInt VG_(get_machine_model)(void)
{ "2965", VEX_S390X_MODEL_Z13S },
{ "3906", VEX_S390X_MODEL_Z14 },
{ "3907", VEX_S390X_MODEL_Z14_ZR1 },
+ { "8561", VEX_S390X_MODEL_Z15 },
+ { "8562", VEX_S390X_MODEL_Z15 },
};
Int model, n, fh;
Index: valgrind-3.15.0/none/tests/s390x/Makefile.am
===================================================================
--- valgrind-3.15.0.orig/none/tests/s390x/Makefile.am
+++ valgrind-3.15.0/none/tests/s390x/Makefile.am
@@ -39,7 +39,7 @@ EXTRA_DIST = \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
ecag.stdout.exp-z10ec ecag.stdout.exp-z196 ecag.stdout.exp-zec12 \
- ecag.stdout.exp-z13 ecag.stdout.exp-z14 \
+ ecag.stdout.exp-z13 ecag.stdout.exp-z14 ecag.stdout.exp-z15 \
op00.stderr.exp1 op00.stderr.exp2 op00.vgtest \
fixbr.vgtest fixbr.stderr.exp fixbr.stdout.exp \
fpext.vgtest fpext.stderr.exp fpext.stdout.exp \
Index: valgrind-3.15.0/none/tests/s390x/ecag.stdout.exp-z15
===================================================================
--- /dev/null
+++ valgrind-3.15.0/none/tests/s390x/ecag.stdout.exp-z15
@@ -0,0 +1,28 @@
+L1 topology: separate data and instruction; private
+L1 cache line size data: 256
+L1 cache line size insn: 256
+L1 total cachesize data: 131072
+L1 total cachesize insn: 131072
+L1 set. assoc. data: 8
+L1 set. assoc. insn: 8
+L2 topology: separate data and instruction; private
+L2 cache line size data: 256
+L2 cache line size insn: 256
+L2 total cachesize data: 4194304
+L2 total cachesize insn: 4194304
+L2 set. assoc. data: 8
+L2 set. assoc. insn: 8
+L3 topology: unified data and instruction; shared
+L3 cache line size data: 256
+L3 cache line size insn: 256
+L3 total cachesize data: 268435456
+L3 total cachesize insn: 268435456
+L3 set. assoc. data: 32
+L3 set. assoc. insn: 32
+L4 topology: unified data and instruction; shared
+L4 cache line size data: 256
+L4 cache line size insn: 256
+L4 total cachesize data: 1006632960
+L4 total cachesize insn: 1006632960
+L4 set. assoc. data: 60
+L4 set. assoc. insn: 60
Index: valgrind-3.15.0/tests/s390x_features.c
===================================================================
--- valgrind-3.15.0.orig/tests/s390x_features.c
+++ valgrind-3.15.0/tests/s390x_features.c
@@ -100,6 +100,8 @@ model_info models[] = {
{ "2965", "z13s" },
{ "3906", "z14" },
{ "3907", "z14 ZR1"},
+ { "8561", "z15" },
+ { "8562", "z15" },
};

View File

@ -1,128 +0,0 @@
From 65d8e9ed96287235b33dfe40525a442dc978e3af Mon Sep 17 00:00:00 2001
From: Andreas Arnez <arnez@linux.ibm.com>
Date: Tue, 2 Oct 2018 13:47:50 +0200
Subject: [PATCH] s390x: Add models "z14" and "z14 ZR1"
Add IBM z14 and IBM z14 ZR1 to the list of known machine models. Add an
expected output variant for z14 to the s390x-specific "ecag" test case.
In README.s390, refer to a current version of the z/Architecture
Principles of Operation that describes the instructions introduced with
IBM z14.
---
README.s390 | 5 ++---
VEX/priv/main_main.c | 2 ++
VEX/pub/libvex.h | 4 +++-
coregrind/m_machine.c | 2 ++
none/tests/s390x/ecag.stdout.exp-z14 | 28 ++++++++++++++++++++++++++++
tests/s390x_features.c | 2 ++
6 files changed, 39 insertions(+), 4 deletions(-)
create mode 100644 none/tests/s390x/ecag.stdout.exp-z14
Index: valgrind-3.15.0/README.s390
===================================================================
--- valgrind-3.15.0.orig/README.s390
+++ valgrind-3.15.0/README.s390
@@ -12,7 +12,6 @@ Limitations
- 31-bit client programs are not supported.
- Hexadecimal floating point is not supported.
- Transactional memory is not supported.
-- Instructions operating on vector registers are not supported.
- memcheck, cachegrind, drd, helgrind, massif, lackey, and none are
supported.
- On machine models predating z10, cachegrind will assume a z10 cache
@@ -49,6 +48,6 @@ Reading Material
(1) Linux for zSeries ELF ABI Supplement
http://refspecs.linuxfoundation.org/ELF/zSeries/index.html
(2) z/Architecture Principles of Operation
- http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr010.pdf
+ http://publibfi.boulder.ibm.com/epubs/pdf/dz9zr011.pdf
(3) z/Architecture Reference Summary
- http://publibfi.boulder.ibm.com/epubs/pdf/dz9zs008.pdf
+ http://publibfi.boulder.ibm.com/epubs/pdf/dz9zs009.pdf
Index: valgrind-3.15.0/VEX/priv/main_main.c
===================================================================
--- valgrind-3.15.0.orig/VEX/priv/main_main.c
+++ valgrind-3.15.0/VEX/priv/main_main.c
@@ -1721,6 +1721,8 @@ static const HChar* show_hwcaps_s390x (
{ VEX_HWCAPS_S390X_FPEXT, "fpext" },
{ VEX_HWCAPS_S390X_LSC, "lsc" },
{ VEX_HWCAPS_S390X_PFPO, "pfpo" },
+ { VEX_HWCAPS_S390X_VX, "vx" },
+ { VEX_HWCAPS_S390X_MSA5, "msa5" },
};
/* Allocate a large enough buffer */
static HChar buf[sizeof prefix +
Index: valgrind-3.15.0/VEX/pub/libvex.h
===================================================================
--- valgrind-3.15.0.orig/VEX/pub/libvex.h
+++ valgrind-3.15.0/VEX/pub/libvex.h
@@ -146,7 +146,9 @@ typedef
#define VEX_S390X_MODEL_ZBC12 11
#define VEX_S390X_MODEL_Z13 12
#define VEX_S390X_MODEL_Z13S 13
-#define VEX_S390X_MODEL_UNKNOWN 14 /* always last in list */
+#define VEX_S390X_MODEL_Z14 14
+#define VEX_S390X_MODEL_Z14_ZR1 15
+#define VEX_S390X_MODEL_UNKNOWN 16 /* always last in list */
#define VEX_S390X_MODEL_MASK 0x3F
#define VEX_HWCAPS_S390X_LDISP (1<<6) /* Long-displacement facility */
Index: valgrind-3.15.0/coregrind/m_machine.c
===================================================================
--- valgrind-3.15.0.orig/coregrind/m_machine.c
+++ valgrind-3.15.0/coregrind/m_machine.c
@@ -580,6 +580,8 @@ static UInt VG_(get_machine_model)(void)
{ "2828", VEX_S390X_MODEL_ZBC12 },
{ "2964", VEX_S390X_MODEL_Z13 },
{ "2965", VEX_S390X_MODEL_Z13S },
+ { "3906", VEX_S390X_MODEL_Z14 },
+ { "3907", VEX_S390X_MODEL_Z14_ZR1 },
};
Int model, n, fh;
Index: valgrind-3.15.0/none/tests/s390x/ecag.stdout.exp-z14
===================================================================
--- /dev/null
+++ valgrind-3.15.0/none/tests/s390x/ecag.stdout.exp-z14
@@ -0,0 +1,28 @@
+L1 topology: separate data and instruction; private
+L1 cache line size data: 256
+L1 cache line size insn: 256
+L1 total cachesize data: 131072
+L1 total cachesize insn: 131072
+L1 set. assoc. data: 8
+L1 set. assoc. insn: 8
+L2 topology: separate data and instruction; private
+L2 cache line size data: 256
+L2 cache line size insn: 256
+L2 total cachesize data: 4194304
+L2 total cachesize insn: 2097152
+L2 set. assoc. data: 8
+L2 set. assoc. insn: 8
+L3 topology: unified data and instruction; shared
+L3 cache line size data: 256
+L3 cache line size insn: 256
+L3 total cachesize data: 134217728
+L3 total cachesize insn: 134217728
+L3 set. assoc. data: 32
+L3 set. assoc. insn: 32
+L4 topology: unified data and instruction; shared
+L4 cache line size data: 256
+L4 cache line size insn: 256
+L4 total cachesize data: 704643072
+L4 total cachesize insn: 704643072
+L4 set. assoc. data: 42
+L4 set. assoc. insn: 42
Index: valgrind-3.15.0/tests/s390x_features.c
===================================================================
--- valgrind-3.15.0.orig/tests/s390x_features.c
+++ valgrind-3.15.0/tests/s390x_features.c
@@ -98,6 +98,8 @@ model_info models[] = {
{ "2828", "zBC12" },
{ "2964", "z13" },
{ "2965", "z13s" },
+ { "3906", "z14" },
+ { "3907", "z14 ZR1"},
};

View File

@ -1,30 +0,0 @@
From e63f93a970b8eb83d83dfb8bb39d578229fa3496 Mon Sep 17 00:00:00 2001
From: Andreas Arnez <arnez@linux.ibm.com>
Date: Tue, 14 May 2019 17:19:34 +0200
Subject: [PATCH] s390x: Clean up s390-check-opcodes.pl
Fix false positives when invoking s390-check-opcodes.pl. Also clean up
some code formatting issues in that script. Add the instructions TPEI and
IRBM to guest_s390_toIR.c and s390-opcodes.csv, so they are not longer
warned about.
---
VEX/priv/guest_s390_toIR.c | 2 +
auxprogs/s390-check-opcodes.pl | 101 +++++++++++++++++---------------
docs/internals/s390-opcodes.csv | 2 +
3 files changed, 57 insertions(+), 48 deletions(-)
Index: valgrind-3.15.0/VEX/priv/guest_s390_toIR.c
===================================================================
--- valgrind-3.15.0.orig/VEX/priv/guest_s390_toIR.c
+++ valgrind-3.15.0/VEX/priv/guest_s390_toIR.c
@@ -19615,8 +19615,10 @@ s390_decode_4byte_and_irgen(const UChar
case 0xb99d: /* ESEA */ goto unimplemented;
case 0xb99e: /* PTI */ goto unimplemented;
case 0xb99f: /* SSAIR */ goto unimplemented;
+ case 0xb9a1: /* TPEI */ goto unimplemented;
case 0xb9a2: /* PTF */ goto unimplemented;
case 0xb9aa: /* LPTEA */ goto unimplemented;
+ case 0xb9ac: /* IRBM */ goto unimplemented;
case 0xb9ae: /* RRBM */ goto unimplemented;
case 0xb9af: /* PFMF */ goto unimplemented;
case 0xb9b0: s390_format_RRF_M0RERE(s390_irgen_CU14, RRF3_r3(ovl),

View File

@ -1,31 +0,0 @@
From da1b4af541bfef43c37c8bd15fb786944f2c4310 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 19 Jan 2020 16:41:38 +0100
Subject: [PATCH 2/2] Add support for PR_CAPBSET_READ and _DROP syscalls
PR_CAPBSET_READ is used by the latest version of libcap (2.30), and
valgrind issues an error message arg4/arg5 are pointing to uninitialized
memory on ix86.
---
coregrind/m_syswrap/syswrap-linux.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c
index 73ef98d..139e85d 100644
--- a/coregrind/m_syswrap/syswrap-linux.c
+++ b/coregrind/m_syswrap/syswrap-linux.c
@@ -1502,6 +1502,11 @@ PRE(sys_prctl)
} else {
PRE_REG_READ2(int, "prctl", int, option, int, mode);
}
+ case VKI_PR_CAPBSET_READ:
+ PRE_REG_READ2(int, "prctl", int, option, int, capability);
+ break;
+ case VKI_PR_CAPBSET_DROP:
+ PRE_REG_READ2(int, "prctl", int, option, int, capability);
break;
default:
PRE_REG_READ5(long, "prctl",
--
2.24.1