Hi.

Isn't the page coloring algoritm in _vm_page_list_find totally bogus?

It skips queue pq[index & PQ_L2_MASK].

If it doesn't find page with desired color, it allocates page with nearest
color - as a result there are two pages with same color mapped at two
adjacent virtual adresses - this is the exact opposite of what page
coloring should do!

It should be changed to something like:

for (i = PQ_L2_SIZE * PQ_PRIME1; i > 0; i -= PQ_PRIME1)
        if ((m = TAILQ_FIRST(&pq[(index + i) & PQ_L2_MASK].pl)) != NULL)
                break;

Mikulas



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to