By having the cache id on 33 bytes as the first member, it was
creating a hole and forcing the "hot" remaining part to be split
across two cache lines. Let's move the id at the end as it's used
only during config parsing.
struct flt_ops cache_ops;
struct cache {
- char id[33]; /* cache name */
- unsigned int maxage; /* max-age */
- unsigned int maxblocks;
- struct list list; /* cache linked list */
+ struct list list; /* cache linked list */
struct eb_root entries; /* head of cache entries based on keys */
+ unsigned int maxage; /* max-age */
+ unsigned int maxblocks;
+ char id[33]; /* cache name */
};
/*