While the coloring performs effectively so as to reduce cache misses during traversing a run queue, there may be a negative effect on performance. We will explain it with Figure 5.
As shown in Figure 5 (a), many conflicts occur at four cache lines on vanilla kernel. On the other hand, as shown in Figure 5 (b), the number of cache lines used for variables, such as has_cpu, are increased to 16. In this case, there is a possibility that the data stored on a colored line before coloring are unfortunately pushed out. As a result, the total amount of bus traffic may increase and lower the overall system performance.
In the latter section for performance evaluation, we will study the effect of our coloring scheme and also analyze such negative influence.