Em Fri, Jun 23, 2017 at 02:48:21PM +0900, Namhyung Kim escreveu: > If a module is already loaded, it should have symbols and no need to > load new symbols from kallsyms. Actually kallsyms can have different > addresses if the module was reloaded.
Well, if it is loaded, then it should match what is in kallsyms, no? > Current code just discards the first symbols only, but it should do the > same for all symbols in the module. Note that the kernel doesn't set > the dso->loaded bit so simply checking it would do the job IMHO. The kernel sets dso->loaded? Can you rephrase this part? And if this procedure doesn't set dso->loaded how can simply checking it do the job? Can you clarify the above sentence? Please elaborate the scenario more fully. - Arnaldo > Cc: Adrian Hunter <adrian.hun...@intel.com> > Cc: Wang Nan <wangn...@huawei.com> > Signed-off-by: Namhyung Kim <namhy...@kernel.org> > --- > tools/perf/util/symbol.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c > index e7a98dbd2aed..74078ba595b3 100644 > --- a/tools/perf/util/symbol.c > +++ b/tools/perf/util/symbol.c > @@ -787,11 +787,12 @@ static int dso__split_kallsyms(struct dso *dso, struct > map *map, u64 delta) > curr_map = map; > goto discard_symbol; > } > - > - if (curr_map->dso->loaded && > - !machine__is_default_guest(machine)) > - goto discard_symbol; > } > + > + if (curr_map->dso->loaded && > + !machine__is_default_guest(machine)) > + goto discard_symbol; > + > /* > * So that we look just like we get from .ko files, > * i.e. not prelinked, relative to map->start. > -- > 2.13.1