Messages in this thread | | | Date | Sun, 31 Jan 1999 09:58:31 +1100 | From | Richard Gooch <> | Subject | Re: Page coloring HOWTO [ans] |
| |
Larry McVoy writes: > Richard Gooch <rgooch@atnf.csiro.au> asks: > : > (a) make sure that each process maps the same virtual addresses to > : > different locations in the cache, if possible. > : > : What is the reasoning behind this? What are the benefits of just > : having a global goal colour counter? As long as two processes, each > : allocating a page, receive a different colour for their pages, then > : they should be able to inhabit the cache at the same time. > : Why take it further and the same virtual address should give different > : colour pages? > : > : > (b) make sure that a contiguous chunk of virtual address space in > : > one process occupies a contiguous chunk of cache, if possible. > : > : Again, why? Isn't it good enough that a contiguous chunk of virtual > : address space maps to unique cache lines? > > I don't understand these questions. Perhaps you'd like to explain a > faster alg which accomplish the goals of "address space maps to unique > cache lines" than an add plus a mod.
OK, I was reading points (a) and (b) as though they were, in effect, the required specificiations for an algorithm to yield the best pages. Are they just comments on how the particular algorithm you mentioned works?
I'd like to speparate this into two issues. Firstly, requirements on how to lay out physical pages to minimise cache line aliasing. Secondly, algorithms which are very fast in allocating coloured pages.
For the former issue, I'd like to establish whether you are saying that points (a) and (b) provide better pages than the simple "add plus modulus" scheme of generating goal colours?
For the latter issue, I'll gladly concede that the algorithm you described is far faster than my simple hack.
Regards,
Richard....
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |