On Wed, May 26, 2010 at 8:34 AM, Lin Ming <ming.m....@intel.com> wrote: > On Tue, 2010-05-25 at 23:32 +0800, Peter Zijlstra wrote: >> On Tue, 2010-05-25 at 17:02 +0200, Stephane Eranian wrote: >> > Ok, the patch look good expect it needs: >> > >> > static int x86_pmu_commit_txn(const struct pmu *pmu) >> > { >> > ...... >> > /* >> > * copy new assignment, now we know it is possible >> > * will be used by hw_perf_enable() >> > */ >> > memcpy(cpuc->assign, assign, n*sizeof(int)); >> > >> > cpuc->n_txn = 0; >> > >> > return 0; >> > } >> > >> > Because you always call cancel_txn() even when commit() >> > succeeds. I don't really understand why. I think it could be >> > avoided by clearing the group_flag in commit_txn() if it >> > succeeds. It would also make the logical flow more natural. Why >> > cancel something that has succeeded. You cancel when you fail/abort. >> >> Gah, I forgot about that. I think I suggested to Lin to do that and then >> promptly forgot. > > cancel_txn() clears the transaction flag, so it is needed after both > success and fail transaction, although the function name is a bit > misleading. > > Peter's patch adds the clear of transaction flag into each > implementation of ->commit_txn. > > So cancel_txn() is only called after fail transaction now. > Yes and I think it is less prone to confusion now.
------------------------------------------------------------------------------ _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel