perf machine: Fix the lifetime of the VDSO temporary file
The VDSO temporary file is unlinked when a session is deleted. That precludes the possibilities that there is no session or there is more than one session. Correctly the vdso belongs to the machine so put the information on 'struct machine' and get rid of the global variables. Reviewed-by: Jiri Olsa <jolsa@redhat.com> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/53CF9B14.7040408@intel.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
committed by
Arnaldo Carvalho de Melo
parent
30f4f815a4
commit
d027b64001
@@ -8,6 +8,7 @@
|
||||
#include "sort.h"
|
||||
#include "strlist.h"
|
||||
#include "thread.h"
|
||||
#include "vdso.h"
|
||||
#include <stdbool.h>
|
||||
#include <symbol/kallsyms.h>
|
||||
#include "unwind.h"
|
||||
@@ -23,6 +24,8 @@ int machine__init(struct machine *machine, const char *root_dir, pid_t pid)
|
||||
INIT_LIST_HEAD(&machine->dead_threads);
|
||||
machine->last_match = NULL;
|
||||
|
||||
machine->vdso_info = NULL;
|
||||
|
||||
machine->kmaps.machine = machine;
|
||||
machine->pid = pid;
|
||||
|
||||
@@ -105,6 +108,7 @@ void machine__exit(struct machine *machine)
|
||||
map_groups__exit(&machine->kmaps);
|
||||
dsos__delete(&machine->user_dsos);
|
||||
dsos__delete(&machine->kernel_dsos);
|
||||
vdso__exit(machine);
|
||||
zfree(&machine->root_dir);
|
||||
zfree(&machine->current_tid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user