aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-gru/grutables.h
diff options
context:
space:
mode:
authorJack Steiner <steiner@sgi.com>2009-06-17 19:28:30 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-18 16:04:03 -0400
commit7e796a72a2691d7094fd62da61097294d0d59ce4 (patch)
tree9e8d4e1eae9a2d23f604f0af5d101979dc7afec7 /drivers/misc/sgi-gru/grutables.h
parentd6e2fbce0d70c2072a1c478dbd37b34d27129d74 (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.h3
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
153extern struct gru_stats_s gru_stats; 154extern 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);
641extern int gru_kservices_init(void); 643extern int gru_kservices_init(void);
642extern void gru_kservices_exit(void); 644extern void gru_kservices_exit(void);
643extern int gru_dump_chiplet_request(unsigned long arg); 645extern int gru_dump_chiplet_request(unsigned long arg);
646extern long gru_get_gseg_statistics(unsigned long arg);
644extern irqreturn_t gru_intr(int irq, void *dev_id); 647extern irqreturn_t gru_intr(int irq, void *dev_id);
645extern int gru_handle_user_call_os(unsigned long address); 648extern int gru_handle_user_call_os(unsigned long address);
646extern int gru_user_flush_tlb(unsigned long arg); 649extern int gru_user_flush_tlb(unsigned long arg);