On Thu, 28 Jun 2018 19:30:11 +0300 "Yordan Karadzhov (VMware)" <y.karadz@xxxxxxxxx> wrote: > @@ -306,9 +315,23 @@ void kshark_filter_entries(struct kshark_context *kshark_ctx, > size_t n_entries) > { > int i; Also add a space here. > + if (kshark_ctx->advanced_event_filter->filters) { Can this be called with kshark_ctx->advanced_event_filter == NULL? > + /* > + * The advanced filter is set but applying it requires > + * access to prevent_record, hence the data has to be > + * reloaded. > + */ I'm a little confused by the comment above. So if this is called with advanced filters, then it is an error? > + fprintf(stderr, > + "Failed to filter!\n"); > + fprintf(stderr, > + "Reset the Advanced filter or reload the data.\n"); > + return; > + } > + > if (!kshark_filter_is_set(kshark_ctx)) > return; > > + /* No need to reload the data. Apply the Id filters. */ Why is this comment added here? Would it make sense to add it in the original patch? Does advanced filters make this different? -- Steve > for (i = 0; i < n_entries; ++i) { > /* Start with and entry which is visible everywhere. */ > data[i]->visible = 0xFF;