forked from Freescale/linux-fslc
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
powerpc: Add helper functions for transactional memory context switching
Here we add the helper functions to be used when context switching. These allow us to fully reclaim and recheckpoint a transaction. We introduce a new paca field called tm_scratch to help us store away register values when doing the low level tm reclaim register save. Signed-off-by: Matt Evans <[email protected]> Signed-off-by: Michael Neuling <[email protected]> Signed-off-by: Benjamin Herrenschmidt <[email protected]>
- Loading branch information
Showing
4 changed files
with
411 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
/* | ||
* Transactional memory support routines to reclaim and recheckpoint | ||
* transactional process state. | ||
* | ||
* Copyright 2012 Matt Evans & Michael Neuling, IBM Corporation. | ||
*/ | ||
|
||
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM | ||
extern void do_load_up_transact_fpu(struct thread_struct *thread); | ||
extern void do_load_up_transact_altivec(struct thread_struct *thread); | ||
#endif | ||
|
||
extern void tm_enable(void); | ||
extern void tm_reclaim(struct thread_struct *thread, | ||
unsigned long orig_msr, uint8_t cause); | ||
extern void tm_recheckpoint(struct thread_struct *thread, | ||
unsigned long orig_msr); | ||
extern void tm_abort(uint8_t cause); | ||
extern void tm_save_sprs(struct thread_struct *thread); | ||
extern void tm_restore_sprs(struct thread_struct *thread); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.