In general, cache coloring [3,4] is used to address the cache line conflict problem. We expect that the method is able to reduce the cache misses during run queue traversal.
However, cache coloring for the task structure in the Linux kernel seems difficult to implement, because the Linux kernel coding assumes it to be placed on a specific boundary. For example, a procedure to acquire a variable X in a task structure is as follows:
The kernel stack and task structure share an 8KB allocation of memory aligned on an 8KB boundary. The function get_current() assumes that the task structure is always at offset 0 within this block. It zeroes out the low-order bits of the stack pointer to produce a pointer to the task structure.
Because of this implementation, a task structure cannot be shifted freely and the task structure coloring has not been implemented yet.