From db9fa88005d719bd20154815ac9075a6727cb60b Mon Sep 17 00:00:00 2001 From: Mulu He Date: Fri, 12 Oct 2018 17:57:30 +0800 Subject: [PATCH] trace: Fix no PID issue for trace marker Save the Event Meta info include PID into STM log. Change-Id: I18b00a9f745861e870c055c46b99530d98bdcc73 Signed-off-by: Mulu He --- kernel/trace/trace.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 22a621c1052e..1eb20a0ea380 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -6089,6 +6089,7 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, struct trace_array *tr = filp->private_data; struct ring_buffer_event *event; enum event_trigger_type tt = ETT_NONE; + struct trace_entry *trace_entry; struct ring_buffer *buffer; struct print_entry *entry; unsigned long irq_flags; @@ -6126,7 +6127,8 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, return -EBADF; entry = ring_buffer_event_data(event); - entry->ip = _THIS_IP_; + trace_entry = (struct trace_entry *)entry; + entry->ip = trace_entry->pid; len = __copy_from_user_inatomic(&entry->buf, ubuf, cnt); if (len) { @@ -6146,12 +6148,12 @@ tracing_mark_write(struct file *filp, const char __user *ubuf, if (entry->buf[cnt - 1] != '\n') { entry->buf[cnt] = '\n'; entry->buf[cnt + 1] = '\0'; - stm_log(OST_ENTITY_TRACE_MARKER, entry->buf, cnt + 2); + stm_log(OST_ENTITY_TRACE_MARKER, entry, sizeof(*entry)+cnt + 2); } else { entry->buf[cnt] = '\0'; - stm_log(OST_ENTITY_TRACE_MARKER, entry->buf, cnt + 1); + stm_log(OST_ENTITY_TRACE_MARKER, entry, sizeof(*entry)+cnt + 1); } - + entry->ip = _THIS_IP_; __buffer_unlock_commit(buffer, event); if (tt)