perf db-export: Get rid of db_export__deferred()
db_export__deferred() deferred the export of comms if the comm string
had not been "set" (changed from :<pid>) however that problem was fixed
a long time ago by commit e803cf97a4
("perf record: Synthesize COMM
event for a command line workload"), so get rid of
db_export__deferred().
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20190710085810.1650-2-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c3e78a3403
commit
fead24e523
|
@ -20,70 +20,14 @@
|
|||
#include "db-export.h"
|
||||
#include <linux/zalloc.h>
|
||||
|
||||
struct deferred_export {
|
||||
struct list_head node;
|
||||
struct comm *comm;
|
||||
};
|
||||
|
||||
static int db_export__deferred(struct db_export *dbe)
|
||||
{
|
||||
struct deferred_export *de;
|
||||
int err;
|
||||
|
||||
while (!list_empty(&dbe->deferred)) {
|
||||
de = list_entry(dbe->deferred.next, struct deferred_export,
|
||||
node);
|
||||
err = dbe->export_comm(dbe, de->comm);
|
||||
list_del_init(&de->node);
|
||||
free(de);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void db_export__free_deferred(struct db_export *dbe)
|
||||
{
|
||||
struct deferred_export *de;
|
||||
|
||||
while (!list_empty(&dbe->deferred)) {
|
||||
de = list_entry(dbe->deferred.next, struct deferred_export,
|
||||
node);
|
||||
list_del_init(&de->node);
|
||||
free(de);
|
||||
}
|
||||
}
|
||||
|
||||
static int db_export__defer_comm(struct db_export *dbe, struct comm *comm)
|
||||
{
|
||||
struct deferred_export *de;
|
||||
|
||||
de = zalloc(sizeof(struct deferred_export));
|
||||
if (!de)
|
||||
return -ENOMEM;
|
||||
|
||||
de->comm = comm;
|
||||
list_add_tail(&de->node, &dbe->deferred);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int db_export__init(struct db_export *dbe)
|
||||
{
|
||||
memset(dbe, 0, sizeof(struct db_export));
|
||||
INIT_LIST_HEAD(&dbe->deferred);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int db_export__flush(struct db_export *dbe)
|
||||
{
|
||||
return db_export__deferred(dbe);
|
||||
}
|
||||
|
||||
void db_export__exit(struct db_export *dbe)
|
||||
{
|
||||
db_export__free_deferred(dbe);
|
||||
call_return_processor__free(dbe->crp);
|
||||
dbe->crp = NULL;
|
||||
}
|
||||
|
@ -172,10 +116,7 @@ int db_export__comm(struct db_export *dbe, struct comm *comm,
|
|||
comm->db_id = ++dbe->comm_last_db_id;
|
||||
|
||||
if (dbe->export_comm) {
|
||||
if (main_thread->comm_set)
|
||||
err = dbe->export_comm(dbe, comm);
|
||||
else
|
||||
err = db_export__defer_comm(dbe, comm);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -68,11 +68,9 @@ struct db_export {
|
|||
u64 sample_last_db_id;
|
||||
u64 call_path_last_db_id;
|
||||
u64 call_return_last_db_id;
|
||||
struct list_head deferred;
|
||||
};
|
||||
|
||||
int db_export__init(struct db_export *dbe);
|
||||
int db_export__flush(struct db_export *dbe);
|
||||
void db_export__exit(struct db_export *dbe);
|
||||
int db_export__evsel(struct db_export *dbe, struct perf_evsel *evsel);
|
||||
int db_export__machine(struct db_export *dbe, struct machine *machine);
|
||||
|
|
|
@ -1620,9 +1620,7 @@ error:
|
|||
|
||||
static int python_flush_script(void)
|
||||
{
|
||||
struct tables *tables = &tables_global;
|
||||
|
||||
return db_export__flush(&tables->dbe);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue