aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-gru/grutables.h
diff options
context:
space:
mode:
authorJack Steiner <steiner@sgi.com>2009-12-15 19:48:05 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-16 10:20:15 -0500
commit55484c45dbeca2eec7642932ec3f60f8a2d4bdbf (patch)
tree4927e959a656def901bb105605df4ab6977ab2d1 /drivers/misc/sgi-gru/grutables.h
parent518e5cd4aae476042bdee511e0e00c8670c0df42 (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.h16
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);
637extern struct gru_thread_state *gru_alloc_thread_state(struct vm_area_struct 633extern struct gru_thread_state *gru_alloc_thread_state(struct vm_area_struct
638 *vma, int tsid); 634 *vma, int tsid);
639extern struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts, 635extern struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts);
640 int blade);
641extern void gru_load_context(struct gru_thread_state *gts); 636extern void gru_load_context(struct gru_thread_state *gts);
642extern void gru_steal_context(struct gru_thread_state *gts, int blade_id); 637extern void gru_steal_context(struct gru_thread_state *gts);
643extern void gru_unload_context(struct gru_thread_state *gts, int savestate); 638extern void gru_unload_context(struct gru_thread_state *gts, int savestate);
644extern int gru_update_cch(struct gru_thread_state *gts, int force_unload); 639extern int gru_update_cch(struct gru_thread_state *gts, int force_unload);
645extern void gts_drop(struct gru_thread_state *gts); 640extern void gts_drop(struct gru_thread_state *gts);
@@ -654,6 +649,7 @@ extern int gru_user_flush_tlb(unsigned long arg);
654extern int gru_user_unload_context(unsigned long arg); 649extern int gru_user_unload_context(unsigned long arg);
655extern int gru_get_exception_detail(unsigned long arg); 650extern int gru_get_exception_detail(unsigned long arg);
656extern int gru_set_context_option(unsigned long address); 651extern int gru_set_context_option(unsigned long address);
652extern void gru_check_context_placement(struct gru_thread_state *gts);
657extern int gru_cpu_fault_map_id(void); 653extern int gru_cpu_fault_map_id(void);
658extern struct vm_area_struct *gru_find_vma(unsigned long vaddr); 654extern struct vm_area_struct *gru_find_vma(unsigned long vaddr);
659extern void gru_flush_all_tlb(struct gru_state *gru); 655extern void gru_flush_all_tlb(struct gru_state *gru);