Can you give a bit more detail, for instance some piece of code?
In general, for read-modify-writing, you will need to do something like this (assuming the size of your counter is less than the size of a cache line): https://gist.github.com/2775874
Don't forget to add locks though, to make the updates atomic.
Issue was not using cache_invalidate on every access to the MPB memory area, however now that am using the invalidate the logic seems to work fine, but the writes and read access times are very high. Anything i can do about this
Like how high? Have you tried to read and write whole cache lines to see if it makes a difference? If the updates are performed under a lock, and the lock is heavily contended, it gets pretty expensive, yes...