On Tue, 2011-05-10 at 17:08 +0200, Roedel, Joerg wrote: > On Tue, May 10, 2011 at 10:50:08AM -0400, Peter Zijlstra wrote: > > On Tue, 2011-05-10 at 16:35 +0200, Joerg Roedel wrote: > > > @@ -740,6 +740,12 @@ parse_event_modifier(const char **strp, struct perf_event_attr *attr) > > > if (!exclude) > > > exclude = eu = ek = eh = 1; > > > eh = 0; > > > + } else if (*str == 'G') { > > > + eg = 0; > > > + ehst = 1; > > > + } else if (*str == 'H') { > > > + eg = 1; > > > + ehst = 0; > > > > This doesn't match the existing exclude logic, also eH and eG come to > > mind. > > OK, eH and eG seems like a better choice. Regarding the logic I > explictly decided to do it this way. The reason is that guest/host > counting is orthogonal to user/kernel/hv counting. You can decide to > only count guest-kernel for example. And if a user just specifies > -e cycles:G this would automatically exlucde user and kernel counting. > This didn't make sense to me so I decided to keep the logic seperate for > guest/host exclusions. OK, so the changelog lacked that bit of information ;-) How about you do something like: + } else if (*str == 'G') { + if (!excl_GH) + excl_GH = eH = eG = 1; + eG = 0; + } else if (*str == 'H') { + if (!excl_GH) + excl_GH = eH = eG = 1; + eH = 0; Which mirrors the existing logic but keeps it orthogonal? Hmm,. does this nicely integrate with exclude_hv? that seems to want to be grouped with G/H. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html