On Thu, Jan 12, 2017 at 5:28 AM, Liang, Kan <kan.li...@intel.com> wrote: > > >> On Wed, Jan 11, 2017 at 08:31:11PM +0000, Liang, Kan wrote: >> >> > > Kan, in your per-cpu event list patch you mentioned that you saw a >> > > large overhead in perf_iterate_ctx() when skipping events for other >> CPUs. >> > > Which callers of perf_iterate_ctx() specifically was that >> > > problematic for? Do those callers only care about the *active* events, >> for example? >> > >> > Based on my test, the large overhead was observed in perf_iterate_sb. >> > Yes, it only cares about the *active* events. >> > > Oh Sorry, my bad. My brain must not be working yesterday... > I just re-visited the code. The *inactive* also need to be checked. > if (event->state < PERF_EVENT_STATE_INACTIVE) > continue; > So the perf_iterate_sb iterates through all events (both STATE_ACTIVE > and STATE_INACTIVE). > > I'm not sure if it is enough to only take care of *active* events.
The patch 6/6 in this series is the one that changes perf_iterate and does iterate over active and inactive events, so it only skips events in OFF and ERROR state. > Peter may comments on it. >