Messages in this thread | | | From | Namhyung Kim <> | Date | Tue, 18 Mar 2014 23:11:10 +0900 | Subject | Re: [PATCH 2/9] perf tools: Count periods of filtered entries separately |
| |
On Tue, Mar 18, 2014 at 10:18 PM, Arnaldo Carvalho de Melo <acme@ghostprotocols.net> wrote: > Em Tue, Mar 18, 2014 at 10:15:18AM -0300, Arnaldo Carvalho de Melo escreveu: >> Em Tue, Mar 18, 2014 at 01:19:07PM +0900, Namhyung Kim escreveu: >> > On Tue, Mar 18, 2014 at 5:08 AM, Arnaldo Carvalho de Melo >> > <acme@ghostprotocols.net> wrote: >> > > Em Mon, Mar 10, 2014 at 04:43:53PM +0900, Namhyung Kim escreveu: >> > >> @@ -749,9 +750,6 @@ int perf_event__preprocess_sample(const union perf_event *event, >> > >> if (thread == NULL) >> > >> return -1; >> > >> >> > >> - if (thread__is_filtered(thread)) >> > >> - goto out_filtered; >> > >> - >> > > >> > > What was the intent of moving this test from here... >> > > >> > >> dump_printf(" ... thread: %s:%d\n", thread__comm_str(thread), thread->tid); >> > >> /* >> > >> * Have we already created the kernel maps for this machine? >> > >> @@ -766,6 +764,10 @@ int perf_event__preprocess_sample(const union perf_event *event, >> > >> >> > >> thread__find_addr_map(thread, machine, cpumode, MAP__FUNCTION, >> > >> sample->ip, al); >> > >> + >> > >> + if (thread__is_filtered(thread)) >> > >> + al->filtered |= (1 << HIST_FILTER__THREAD); >> > >> + >> > > >> > > ... to here? At first I thought it was because thread__is_filtered() >> > > would check something that thread__find_addr_map() was doing, but no, >> > > its invariant, we can do it here or at the original site, so I'm keeping >> > > it there, ok? >> > >> > It's because thread__find_addr_map() clears al->filtered, so filtering >> > with -d option won't work. Maybe we can move initialization of the >> > al->filtered upto this function. >> >> So this is a separate patch with this explanation, I'll add it to the >> series, thanks for the explanation! > > Humm, it really needs to be folded into the patch that does all the > tests, as before we were just stopping the filters early and thus no > problem existed, its only now that we apply all the filters that we need > to be careful in knowing that thread__find_addr_map() is when > al->filtered gets initialized to zero, right?
Right. :)
Thanks, Namhyung
| |