diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-02-09 19:12:22 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 04:12:05 -0500 |
commit | aa9143b9719c07fb6f1f6207790c9c5086ae07e7 (patch) | |
tree | 74d56ecc53ed0542f200d6c6257c8f051095111c /arch/sparc64/kernel/tsb.S | |
parent | 12816ab38adddc9d7e9b3315d1739655dedc7c9f (diff) |
[SPARC64]: Implement sun4v TSB miss handlers.
When we register a TSB with the hypervisor, so that it or hardware can
handle TLB misses and do the TSB walk for us, the hypervisor traps
down to these trap when it incurs a TSB miss.
Processing is simple, we load the missing virtual address and context,
and do a full page table walk.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/tsb.S')
-rw-r--r-- | arch/sparc64/kernel/tsb.S | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/tsb.S b/arch/sparc64/kernel/tsb.S index 819a6ef9799f..c848c8847cdc 100644 --- a/arch/sparc64/kernel/tsb.S +++ b/arch/sparc64/kernel/tsb.S | |||
@@ -35,8 +35,11 @@ tsb_miss_itlb: | |||
35 | nop | 35 | nop |
36 | 36 | ||
37 | /* The sun4v TLB miss handlers jump directly here instead | 37 | /* The sun4v TLB miss handlers jump directly here instead |
38 | * of tsb_miss_{d,i}tlb with the missing virtual address | 38 | * of tsb_miss_{d,i}tlb with registers setup as follows: |
39 | * already loaded into %g4. | 39 | * |
40 | * %g4: missing virtual address | ||
41 | * %g1: TSB entry address loaded | ||
42 | * %g6: TAG TARGET ((vaddr >> 22) | (ctx << 48)) | ||
40 | */ | 43 | */ |
41 | tsb_miss_page_table_walk: | 44 | tsb_miss_page_table_walk: |
42 | TRAP_LOAD_PGD_PHYS(%g7, %g5) | 45 | TRAP_LOAD_PGD_PHYS(%g7, %g5) |