Quantcast
Channel: Embedded Software (Read Only)
Viewing all articles
Browse latest Browse all 25965

Forum Post: RE: IPC messageq and cache coherency problem

$
0
0

Ramsey,

The whole buffer has already been invalidated at the top of HeapMemMP_free() before entering GateMP. IPC 3.21.00.07 HeapMemMP.c

line 772:

    /*
     *  Invalidate entire buffer being freed to ensure that stale cache
     *  data in block isn't evicted later
     */
    if (obj->cacheEnabled) {
        Cache_inv(newHeader, size, Cache_Type_ALL, FALSE);
    }

line 870 (added in 3.21.00.07):

       /*
        *  Invalidate entire buffer being freed to ensure that stale cache
        *  data in block isn't evicted later
        */
        Cache_inv(newHeader, size, Cache_Type_ALL, TRUE);  /* B2 */

Now you invalidate the whole buffer twice.

I'm not sure what did you try to fix but I believe the modifications made are wrong.

Please take a look into HeapMemMP.c from our repo (attached). It contains the fixes described in my earlier post.

Dmitry(Please visit the site to view this file)


Viewing all articles
Browse latest Browse all 25965

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>