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 * 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;