Merge "msm: rtb: record counter timestamp for every log record"

This commit is contained in:
Linux Build Service Account 2016-12-23 03:55:26 -08:00 committed by Gerrit - the friendly Code Review server
commit 711ba9b4ec

View file

@ -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
* it under the terms of the GNU General Public License version 2 and
@ -27,6 +27,7 @@
#include <linux/io.h>
#include <asm-generic/sizes.h>
#include <linux/msm_rtb.h>
#include <asm/timex.h>
#define SENTINEL_BYTE_1 0xFF
#define SENTINEL_BYTE_2 0xAA
@ -41,8 +42,9 @@
* 4) 4 bytes index
* 4) 8 bytes extra data from the caller
* 5) 8 bytes of timestamp
* 6) 8 bytes of cyclecount
*
* Total = 32 bytes.
* Total = 40 bytes.
*/
struct msm_rtb_layout {
unsigned char sentinel[3];
@ -51,6 +53,7 @@ struct msm_rtb_layout {
uint64_t caller;
uint64_t data;
uint64_t timestamp;
uint64_t cycle_count;
} __attribute__ ((__packed__));
@ -132,6 +135,11 @@ static void msm_rtb_write_timestamp(struct msm_rtb_layout *start)
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,
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_data(data, start);
msm_rtb_write_timestamp(start);
msm_rtb_write_cyclecount(start);
mb();
return;