Hi Paul, Please check the updated patch. The first patch is to replace existing ACCESS_ONCE to new READ/WRITE_ONCE primitives, and the second to protect global share variable stopflag. BTW, I didn't see any performance differences between versions using volatile and READ/WRITE_ONCE primitives on my 16 cores Intel machine. I guess the major reason is that the sample code is simple such that registers are enough even if keyword volatile is used. Junchang Wang (2): count_stat_eventual: Switch from ACCESS_ONCE() to READ_ONCE()/WRITE_ONCE() count_stat_eventual: Add READ_ONCE() to protect global shared variable stopflag CodeSamples/count/count_stat_eventual.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe perfbook" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html