diff options
author | Jack Steiner <steiner@sgi.com> | 2009-06-17 19:28:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 16:04:03 -0400 |
commit | 7e796a72a2691d7094fd62da61097294d0d59ce4 (patch) | |
tree | 9e8d4e1eae9a2d23f604f0af5d101979dc7afec7 /drivers/misc/sgi-gru/grutables.h | |
parent | d6e2fbce0d70c2072a1c478dbd37b34d27129d74 (diff) |
gru: collect per-context user statistics
Collect GRU statistics for each user GRU context. Statistics are kept for
TLB misses & content resource contention. Add user request for retrieving
the statistics.
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 | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h index 9761bfee8669..63b76e2732ff 100644 --- a/drivers/misc/sgi-gru/grutables.h +++ b/drivers/misc/sgi-gru/grutables.h | |||
@@ -148,6 +148,7 @@ | |||
148 | #include <linux/wait.h> | 148 | #include <linux/wait.h> |
149 | #include <linux/mmu_notifier.h> | 149 | #include <linux/mmu_notifier.h> |
150 | #include "gru.h" | 150 | #include "gru.h" |
151 | #include "grulib.h" | ||
151 | #include "gruhandles.h" | 152 | #include "gruhandles.h" |
152 | 153 | ||
153 | extern struct gru_stats_s gru_stats; | 154 | extern struct gru_stats_s gru_stats; |
@@ -388,6 +389,7 @@ struct gru_thread_state { | |||
388 | allocated CB */ | 389 | allocated CB */ |
389 | int ts_data_valid; /* Indicates if ts_gdata has | 390 | int ts_data_valid; /* Indicates if ts_gdata has |
390 | valid data */ | 391 | valid data */ |
392 | struct gts_statistics ustats; /* User statistics */ | ||
391 | unsigned long ts_gdata[0]; /* save area for GRU data (CB, | 393 | unsigned long ts_gdata[0]; /* save area for GRU data (CB, |
392 | DS, CBE) */ | 394 | DS, CBE) */ |
393 | }; | 395 | }; |
@@ -641,6 +643,7 @@ extern void gru_tgh_flush_init(struct gru_state *gru); | |||
641 | extern int gru_kservices_init(void); | 643 | extern int gru_kservices_init(void); |
642 | extern void gru_kservices_exit(void); | 644 | extern void gru_kservices_exit(void); |
643 | extern int gru_dump_chiplet_request(unsigned long arg); | 645 | extern int gru_dump_chiplet_request(unsigned long arg); |
646 | extern long gru_get_gseg_statistics(unsigned long arg); | ||
644 | extern irqreturn_t gru_intr(int irq, void *dev_id); | 647 | extern irqreturn_t gru_intr(int irq, void *dev_id); |
645 | extern int gru_handle_user_call_os(unsigned long address); | 648 | extern int gru_handle_user_call_os(unsigned long address); |
646 | extern int gru_user_flush_tlb(unsigned long arg); | 649 | extern int gru_user_flush_tlb(unsigned long arg); |