aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/processor.h
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2012-07-31 05:03:04 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2012-09-26 09:45:02 -0400
commitd35339a42dd1f53b0bb86cf75418a9b7cf5f0f30 (patch)
tree7f6447709e0bdb601687c40c42e09c3ca6deff8c /arch/s390/include/asm/processor.h
parente4b8b3f33fcaa0ed6e6b5482a606091d8cd20beb (diff)
s390: add support for transactional memory
Allow user-space processes to use transactional execution (TX). If the TX facility is available user space programs can use transactions for fine-grained serialization based on the data objects that are referenced during a transaction. This is useful for lockless data structures and speculative compiler optimizations. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/processor.h')
-rw-r--r--arch/s390/include/asm/processor.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 0fff583d2c7c..46fe1fbf91c5 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -76,14 +76,20 @@ struct thread_struct {
76 unsigned long gmap_addr; /* address of last gmap fault. */ 76 unsigned long gmap_addr; /* address of last gmap fault. */
77 struct per_regs per_user; /* User specified PER registers */ 77 struct per_regs per_user; /* User specified PER registers */
78 struct per_event per_event; /* Cause of the last PER trap */ 78 struct per_event per_event; /* Cause of the last PER trap */
79 unsigned long per_flags; /* Flags to control debug behavior */
79 /* pfault_wait is used to block the process on a pfault event */ 80 /* pfault_wait is used to block the process on a pfault event */
80 unsigned long pfault_wait; 81 unsigned long pfault_wait;
81 struct list_head list; 82 struct list_head list;
82 /* cpu runtime instrumentation */ 83 /* cpu runtime instrumentation */
83 struct runtime_instr_cb *ri_cb; 84 struct runtime_instr_cb *ri_cb;
84 int ri_signum; 85 int ri_signum;
86#ifdef CONFIG_64BIT
87 unsigned char trap_tdb[256]; /* Transaction abort diagnose block */
88#endif
85}; 89};
86 90
91#define PER_FLAG_NO_TE 1UL /* Flag to disable transactions. */
92
87typedef struct thread_struct thread_struct; 93typedef struct thread_struct thread_struct;
88 94
89/* 95/*