I'm using the asm dcbt
command to touch a range of memory I know will be required for performing certain computations onto. My profiler shows a pattern of cache misses because of the sporadic access to elements inside this range (4 touched, 5 skipped and so on - producing a cache miss each 5th operation).
There is a function A()
that has access to the exact range and its size. This A()
function is called before another section that will also touch and use data from the range A()
utilizes. Can I just use dcbt
inside A()
and then expect an improvement in B()
, or do I have to use dcbt
on the range in the same function that utilizes that collection of data?