lkml.org 
[lkml]   [2010]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] perf_events: fix event scheduling issues introduced by transactional API (take 2)
    From
    On Wed, May 26, 2010 at 8:34 AM, Lin Ming <ming.m.lin@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.
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2010-05-26 09:01    [W:0.028 / U:31.304 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site