Merge "msm: rtb: record counter timestamp for every log record"
This commit is contained in:
commit
711ba9b4ec
1 changed files with 11 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 and
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -27,6 +27,7 @@
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
#include <asm-generic/sizes.h>
|
#include <asm-generic/sizes.h>
|
||||||
#include <linux/msm_rtb.h>
|
#include <linux/msm_rtb.h>
|
||||||
|
#include <asm/timex.h>
|
||||||
|
|
||||||
#define SENTINEL_BYTE_1 0xFF
|
#define SENTINEL_BYTE_1 0xFF
|
||||||
#define SENTINEL_BYTE_2 0xAA
|
#define SENTINEL_BYTE_2 0xAA
|
||||||
|
@ -41,8 +42,9 @@
|
||||||
* 4) 4 bytes index
|
* 4) 4 bytes index
|
||||||
* 4) 8 bytes extra data from the caller
|
* 4) 8 bytes extra data from the caller
|
||||||
* 5) 8 bytes of timestamp
|
* 5) 8 bytes of timestamp
|
||||||
|
* 6) 8 bytes of cyclecount
|
||||||
*
|
*
|
||||||
* Total = 32 bytes.
|
* Total = 40 bytes.
|
||||||
*/
|
*/
|
||||||
struct msm_rtb_layout {
|
struct msm_rtb_layout {
|
||||||
unsigned char sentinel[3];
|
unsigned char sentinel[3];
|
||||||
|
@ -51,6 +53,7 @@ struct msm_rtb_layout {
|
||||||
uint64_t caller;
|
uint64_t caller;
|
||||||
uint64_t data;
|
uint64_t data;
|
||||||
uint64_t timestamp;
|
uint64_t timestamp;
|
||||||
|
uint64_t cycle_count;
|
||||||
} __attribute__ ((__packed__));
|
} __attribute__ ((__packed__));
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,6 +135,11 @@ static void msm_rtb_write_timestamp(struct msm_rtb_layout *start)
|
||||||
start->timestamp = sched_clock();
|
start->timestamp = sched_clock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void msm_rtb_write_cyclecount(struct msm_rtb_layout *start)
|
||||||
|
{
|
||||||
|
start->cycle_count = get_cycles();
|
||||||
|
}
|
||||||
|
|
||||||
static void uncached_logk_pc_idx(enum logk_event_type log_type, uint64_t caller,
|
static void uncached_logk_pc_idx(enum logk_event_type log_type, uint64_t caller,
|
||||||
uint64_t data, int idx)
|
uint64_t data, int idx)
|
||||||
{
|
{
|
||||||
|
@ -145,6 +153,7 @@ static void uncached_logk_pc_idx(enum logk_event_type log_type, uint64_t caller,
|
||||||
msm_rtb_write_idx(idx, start);
|
msm_rtb_write_idx(idx, start);
|
||||||
msm_rtb_write_data(data, start);
|
msm_rtb_write_data(data, start);
|
||||||
msm_rtb_write_timestamp(start);
|
msm_rtb_write_timestamp(start);
|
||||||
|
msm_rtb_write_cyclecount(start);
|
||||||
mb();
|
mb();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Reference in a new issue