projects
/
lttngtop.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add_proc now takes hostname param
[lttngtop.git]
/
src
/
cputop.c
diff --git
a/src/cputop.c
b/src/cputop.c
index d652b5b43e5bff161e48886945fc05cb3982a7a3..7df54696afdcb186159bab40ca6b34ba5b37ec73 100644
(file)
--- a/
src/cputop.c
+++ b/
src/cputop.c
@@
-1,5
+1,5
@@
/*
/*
- * Copyright (C) 2011 Julien Desfossez
+ * Copyright (C) 2011
-2012
Julien Desfossez
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License Version 2 as
@@
-22,7
+22,7
@@
#include "cputop.h"
void update_cputop_data(unsigned long timestamp, int64_t cpu, int prev_pid,
#include "cputop.h"
void update_cputop_data(unsigned long timestamp, int64_t cpu, int prev_pid,
- int next_pid, char *prev_comm, char *next_comm)
+ int next_pid, char *prev_comm, char *next_comm
, char *hostname
)
{
struct cputime *tmpcpu;
unsigned long elapsed;
{
struct cputime *tmpcpu;
unsigned long elapsed;
@@
-33,12
+33,14
@@
void update_cputop_data(unsigned long timestamp, int64_t cpu, int prev_pid,
elapsed = timestamp - tmpcpu->task_start;
tmpcpu->current_task->totalcpunsec += elapsed;
tmpcpu->current_task->threadstotalcpunsec += elapsed;
elapsed = timestamp - tmpcpu->task_start;
tmpcpu->current_task->totalcpunsec += elapsed;
tmpcpu->current_task->threadstotalcpunsec += elapsed;
- if (tmpcpu->current_task->pid != tmpcpu->current_task->tid)
+ if (tmpcpu->current_task->threadparent &&
+ tmpcpu->current_task->pid != tmpcpu->current_task->tid)
tmpcpu->current_task->threadparent->threadstotalcpunsec += elapsed;
}
if (next_pid != 0)
tmpcpu->current_task->threadparent->threadstotalcpunsec += elapsed;
}
if (next_pid != 0)
- tmpcpu->current_task = get_proc(<tngtop, next_pid, next_comm, timestamp);
+ tmpcpu->current_task = get_proc(<tngtop, next_pid, next_comm,
+ timestamp, hostname);
else
tmpcpu->current_task = NULL;
else
tmpcpu->current_task = NULL;
@@
-48,11
+50,12
@@
void update_cputop_data(unsigned long timestamp, int64_t cpu, int prev_pid,
enum bt_cb_ret handle_sched_switch(struct bt_ctf_event *call_data,
void *private_data)
{
enum bt_cb_ret handle_sched_switch(struct bt_ctf_event *call_data,
void *private_data)
{
-
struct
definition *scope;
+
const struct bt_
definition *scope;
unsigned long timestamp;
uint64_t cpu_id;
char *prev_comm, *next_comm;
int prev_tid, next_tid;
unsigned long timestamp;
uint64_t cpu_id;
char *prev_comm, *next_comm;
int prev_tid, next_tid;
+ char *hostname;
timestamp = bt_ctf_get_timestamp(call_data);
if (timestamp == -1ULL)
timestamp = bt_ctf_get_timestamp(call_data);
if (timestamp == -1ULL)
@@
-87,11
+90,12
@@
enum bt_cb_ret handle_sched_switch(struct bt_ctf_event *call_data,
fprintf(stderr, "Missing next_tid context info\n");
goto error;
}
fprintf(stderr, "Missing next_tid context info\n");
goto error;
}
+ hostname = get_context_hostname(call_data);
cpu_id = get_cpu_id(call_data);
update_cputop_data(timestamp, cpu_id, prev_tid, next_tid,
cpu_id = get_cpu_id(call_data);
update_cputop_data(timestamp, cpu_id, prev_tid, next_tid,
- prev_comm, next_comm);
+ prev_comm, next_comm
, hostname
);
return BT_CB_OK;
return BT_CB_OK;
@@
-102,7
+106,7
@@
error:
enum bt_cb_ret handle_sched_process_free(struct bt_ctf_event *call_data,
void *private_data)
{
enum bt_cb_ret handle_sched_process_free(struct bt_ctf_event *call_data,
void *private_data)
{
-
struct
definition *scope;
+
const struct bt_
definition *scope;
unsigned long timestamp;
char *comm;
int tid;
unsigned long timestamp;
char *comm;
int tid;
@@
-120,7
+124,13
@@
enum bt_cb_ret handle_sched_process_free(struct bt_ctf_event *call_data,
goto error;
}
goto error;
}
- tid = get_context_tid(call_data);
+ tid = bt_ctf_get_int64(bt_ctf_get_field(call_data,
+ scope, "_tid"));
+ if (bt_ctf_field_get_error()) {
+ fprintf(stderr, "Missing tid field\n");
+ goto error;
+ }
+
death_proc(<tngtop, tid, comm, timestamp);
return BT_CB_OK;
death_proc(<tngtop, tid, comm, timestamp);
return BT_CB_OK;
This page took
0.023262 seconds
and
4
git commands to generate.