Messages in this thread | | | Date | Tue, 18 Mar 2014 14:31:31 +0100 | From | Jiri Olsa <> | Subject | Re: [PATCH 3/5] perf tools: Allocate thread map_groups dynamicaly |
| |
On Tue, Mar 18, 2014 at 04:03:41PM +0900, Namhyung Kim wrote: > Hi Jiri, > > On Mon, 17 Mar 2014 15:52:59 +0100, Jiri Olsa wrote: > > On Mon, Mar 17, 2014 at 04:13:53PM +0900, Namhyung Kim wrote: > >> On Fri, 14 Mar 2014 15:00:04 +0100, Jiri Olsa wrote: > >> > Moving towards sharing map groups within a process threads. > >> > > >> > Because of this we need the map groups to be dynamically > >> > allocated. No other functional change is intended in here. > >> > @@ -664,7 +664,7 @@ void thread__find_addr_map(struct thread *thread, > >> > al->cpumode = cpumode; > >> > al->filtered = false; > >> > > >> > - if (machine == NULL) { > >> > + if ((machine == NULL) || (mg == NULL)) { > >> > al->map = NULL; > >> > return; > >> > } > >> > >> What about the kernel threads? I guess they're not using thread->mg but > >> machine->kmaps instead? > > > > The machine->kmaps is used to store kernel maps - core + modules. > > > > All threads (including kernel ones) are using thread->mg, > > kernel threads have empty /proc/x/maps file. > > > > In case the sample address is detected within kernel space, > > the machine->kmaps is used instead of thread->mg: > > That means kernel threads don't need to allocate ->mg, right? So I'd > suggest checking cpumode first and then allocate ->mg for userspace maps > only.
good idea, will do
thanks, jirka
| |