diff options
author | Jack Steiner <steiner@sgi.com> | 2009-12-15 19:48:05 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 10:20:15 -0500 |
commit | 55484c45dbeca2eec7642932ec3f60f8a2d4bdbf (patch) | |
tree | 4927e959a656def901bb105605df4ab6977ab2d1 /drivers/misc/sgi-gru/grutables.h | |
parent | 518e5cd4aae476042bdee511e0e00c8670c0df42 (diff) |
gru: allow users to specify gru chiplet 2
Add support to the GRU driver to allow users to specify the blade &
chiplet for allocation of GRU contexts. Add new statistics for context
loading/unloading/retargeting. Also deleted a few GRU stats that were no
longer being unused.
Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/sgi-gru/grutables.h')
-rw-r--r-- | drivers/misc/sgi-gru/grutables.h | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h index 27131fb2253f..8a61a8599bac 100644 --- a/drivers/misc/sgi-gru/grutables.h +++ b/drivers/misc/sgi-gru/grutables.h | |||
@@ -192,19 +192,14 @@ struct gru_stats_s { | |||
192 | atomic_long_t intr; | 192 | atomic_long_t intr; |
193 | atomic_long_t intr_mm_lock_failed; | 193 | atomic_long_t intr_mm_lock_failed; |
194 | atomic_long_t call_os; | 194 | atomic_long_t call_os; |
195 | atomic_long_t call_os_offnode_reference; | ||
196 | atomic_long_t call_os_check_for_bug; | 195 | atomic_long_t call_os_check_for_bug; |
197 | atomic_long_t call_os_wait_queue; | 196 | atomic_long_t call_os_wait_queue; |
198 | atomic_long_t user_flush_tlb; | 197 | atomic_long_t user_flush_tlb; |
199 | atomic_long_t user_unload_context; | 198 | atomic_long_t user_unload_context; |
200 | atomic_long_t user_exception; | 199 | atomic_long_t user_exception; |
201 | atomic_long_t set_context_option; | 200 | atomic_long_t set_context_option; |
202 | atomic_long_t migrate_check; | 201 | atomic_long_t check_context_retarget_intr; |
203 | atomic_long_t migrated_retarget; | 202 | atomic_long_t check_context_unload; |
204 | atomic_long_t migrated_unload; | ||
205 | atomic_long_t migrated_unload_delay; | ||
206 | atomic_long_t migrated_nopfn_retarget; | ||
207 | atomic_long_t migrated_nopfn_unload; | ||
208 | atomic_long_t tlb_dropin; | 203 | atomic_long_t tlb_dropin; |
209 | atomic_long_t tlb_dropin_fail_no_asid; | 204 | atomic_long_t tlb_dropin_fail_no_asid; |
210 | atomic_long_t tlb_dropin_fail_upm; | 205 | atomic_long_t tlb_dropin_fail_upm; |
@@ -425,6 +420,7 @@ struct gru_state { | |||
425 | gru segments (64) */ | 420 | gru segments (64) */ |
426 | unsigned short gs_gid; /* unique GRU number */ | 421 | unsigned short gs_gid; /* unique GRU number */ |
427 | unsigned short gs_blade_id; /* blade of GRU */ | 422 | unsigned short gs_blade_id; /* blade of GRU */ |
423 | unsigned char gs_chiplet_id; /* blade chiplet of GRU */ | ||
428 | unsigned char gs_tgh_local_shift; /* used to pick TGH for | 424 | unsigned char gs_tgh_local_shift; /* used to pick TGH for |
429 | local flush */ | 425 | local flush */ |
430 | unsigned char gs_tgh_first_remote; /* starting TGH# for | 426 | unsigned char gs_tgh_first_remote; /* starting TGH# for |
@@ -636,10 +632,9 @@ extern struct gru_thread_state *gru_find_thread_state(struct vm_area_struct | |||
636 | *vma, int tsid); | 632 | *vma, int tsid); |
637 | extern struct gru_thread_state *gru_alloc_thread_state(struct vm_area_struct | 633 | extern struct gru_thread_state *gru_alloc_thread_state(struct vm_area_struct |
638 | *vma, int tsid); | 634 | *vma, int tsid); |
639 | extern struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts, | 635 | extern struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts); |
640 | int blade); | ||
641 | extern void gru_load_context(struct gru_thread_state *gts); | 636 | extern void gru_load_context(struct gru_thread_state *gts); |
642 | extern void gru_steal_context(struct gru_thread_state *gts, int blade_id); | 637 | extern void gru_steal_context(struct gru_thread_state *gts); |
643 | extern void gru_unload_context(struct gru_thread_state *gts, int savestate); | 638 | extern void gru_unload_context(struct gru_thread_state *gts, int savestate); |
644 | extern int gru_update_cch(struct gru_thread_state *gts, int force_unload); | 639 | extern int gru_update_cch(struct gru_thread_state *gts, int force_unload); |
645 | extern void gts_drop(struct gru_thread_state *gts); | 640 | extern void gts_drop(struct gru_thread_state *gts); |
@@ -654,6 +649,7 @@ extern int gru_user_flush_tlb(unsigned long arg); | |||
654 | extern int gru_user_unload_context(unsigned long arg); | 649 | extern int gru_user_unload_context(unsigned long arg); |
655 | extern int gru_get_exception_detail(unsigned long arg); | 650 | extern int gru_get_exception_detail(unsigned long arg); |
656 | extern int gru_set_context_option(unsigned long address); | 651 | extern int gru_set_context_option(unsigned long address); |
652 | extern void gru_check_context_placement(struct gru_thread_state *gts); | ||
657 | extern int gru_cpu_fault_map_id(void); | 653 | extern int gru_cpu_fault_map_id(void); |
658 | extern struct vm_area_struct *gru_find_vma(unsigned long vaddr); | 654 | extern struct vm_area_struct *gru_find_vma(unsigned long vaddr); |
659 | extern void gru_flush_all_tlb(struct gru_state *gru); | 655 | extern void gru_flush_all_tlb(struct gru_state *gru); |