diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2012-07-31 05:03:04 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2012-09-26 09:45:02 -0400 |
commit | d35339a42dd1f53b0bb86cf75418a9b7cf5f0f30 (patch) | |
tree | 7f6447709e0bdb601687c40c42e09c3ca6deff8c /arch/s390/include/asm/processor.h | |
parent | e4b8b3f33fcaa0ed6e6b5482a606091d8cd20beb (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.h | 6 |
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 | |||
87 | typedef struct thread_struct thread_struct; | 93 | typedef struct thread_struct thread_struct; |
88 | 94 | ||
89 | /* | 95 | /* |