Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 176749
b: refs/heads/master
c: 5958ab8
h: refs/heads/master
i:
  176747: e316ea1
v: v3
  • Loading branch information
Jack Steiner authored and Linus Torvalds committed Dec 16, 2009
1 parent e7a760a commit 4860b2e
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2ce4d4c937ce4c14704f02ae60e2e07e3906c68a
refs/heads/master: 5958ab88f721d312b531d17705fc3ed54102fa05
11 changes: 11 additions & 0 deletions trunk/drivers/misc/sgi-gru/gru.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,17 @@ struct gru_chiplet_info {
int free_user_cbr;
};

/*
* Statictics kept for each context.
*/
struct gru_gseg_statistics {
unsigned long fmm_tlbmiss;
unsigned long upm_tlbmiss;
unsigned long tlbdropin;
unsigned long context_stolen;
unsigned long reserved[10];
};

/* Flags for GRU options on the gru_create_context() call */
/* Select one of the follow 4 options to specify how TLB misses are handled */
#define GRU_OPT_MISS_DEFAULT 0x0000 /* Use default mode */
Expand Down
5 changes: 3 additions & 2 deletions trunk/drivers/misc/sgi-gru/grufault.c
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,7 @@ static int gru_try_dropin(struct gru_state *gru,
}

gru_cb_set_istatus_active(cbk);
gts->ustats.tlbdropin++;
tfh_write_restart(tfh, gpa, GAA_RAM, vaddr, asid, write,
GRU_PAGESIZE(pageshift));
gru_dbg(grudev,
Expand Down Expand Up @@ -580,9 +581,9 @@ static irqreturn_t gru_intr(int chiplet, int blade)
* This is running in interrupt context. Trylock the mmap_sem.
* If it fails, retry the fault in user context.
*/
gts->ustats.fmm_tlbmiss++;
if (!gts->ts_force_cch_reload &&
down_read_trylock(&gts->ts_mm->mmap_sem)) {
gts->ustats.fmm_tlbdropin++;
gru_try_dropin(gru, gts, tfh, NULL);
up_read(&gts->ts_mm->mmap_sem);
} else {
Expand Down Expand Up @@ -624,7 +625,7 @@ static int gru_user_dropin(struct gru_thread_state *gts,
struct gru_mm_struct *gms = gts->ts_gms;
int ret;

gts->ustats.upm_tlbdropin++;
gts->ustats.upm_tlbmiss++;
while (1) {
wait_event(gms->ms_wait_queue,
atomic_read(&gms->ms_range_active) == 0);
Expand Down
13 changes: 2 additions & 11 deletions trunk/drivers/misc/sgi-gru/grulib.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,18 +63,9 @@
#define THREAD_POINTER(p, th) (p + GRU_GSEG_PAGESIZE * (th))
#define GSEG_START(cb) ((void *)((unsigned long)(cb) & ~(GRU_GSEG_PAGESIZE - 1)))

/*
* Statictics kept on a per-GTS basis.
*/
struct gts_statistics {
unsigned long fmm_tlbdropin;
unsigned long upm_tlbdropin;
unsigned long context_stolen;
};

struct gru_get_gseg_statistics_req {
unsigned long gseg;
struct gts_statistics stats;
unsigned long gseg;
struct gru_gseg_statistics stats;
};

/*
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/misc/sgi-gru/grutables.h
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ struct gru_thread_state {
allocated CB */
int ts_data_valid; /* Indicates if ts_gdata has
valid data */
struct gts_statistics ustats; /* User statistics */
struct gru_gseg_statistics ustats; /* User statistics */
unsigned long ts_gdata[0]; /* save area for GRU data (CB,
DS, CBE) */
};
Expand Down

0 comments on commit 4860b2e

Please sign in to comment.