|
@@ -268,6 +268,17 @@ lookup_dcookie(struct mm_struct *mm, unsigned long addr, off_t *offset)
|
|
return cookie;
|
|
return cookie;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void increment_tail(struct oprofile_cpu_buffer *b)
|
|
|
|
+{
|
|
|
|
+ unsigned long new_tail = b->tail_pos + 1;
|
|
|
|
+
|
|
|
|
+ rmb();
|
|
|
|
+
|
|
|
|
+ if (new_tail < b->buffer_size)
|
|
|
|
+ b->tail_pos = new_tail;
|
|
|
|
+ else
|
|
|
|
+ b->tail_pos = 0;
|
|
|
|
+}
|
|
|
|
|
|
static unsigned long last_cookie = INVALID_COOKIE;
|
|
static unsigned long last_cookie = INVALID_COOKIE;
|
|
|
|
|
|
@@ -417,19 +428,6 @@ static unsigned long get_slots(struct oprofile_cpu_buffer *b)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-static void increment_tail(struct oprofile_cpu_buffer *b)
|
|
|
|
-{
|
|
|
|
- unsigned long new_tail = b->tail_pos + 1;
|
|
|
|
-
|
|
|
|
- rmb();
|
|
|
|
-
|
|
|
|
- if (new_tail < b->buffer_size)
|
|
|
|
- b->tail_pos = new_tail;
|
|
|
|
- else
|
|
|
|
- b->tail_pos = 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
/* Move tasks along towards death. Any tasks on dead_tasks
|
|
/* Move tasks along towards death. Any tasks on dead_tasks
|
|
* will definitely have no remaining references in any
|
|
* will definitely have no remaining references in any
|
|
* CPU buffers at this point, because we use two lists,
|
|
* CPU buffers at this point, because we use two lists,
|