possible bug in page allocation mechanism

From: Tim Cullen
Date: Thu Feb 15 2007 - 17:18:51 EST


There appears to be a inconsistenancy with reference
counts on pages allocated with alloc_pages when order
is greater than zero. In buffered_rmqueue when order
!= 0 then __rmqueue is called. This returns a page
pointer that is really a pointer to the first page in
a group of pages. Subsequently prep_new_page is called
on the first page of the group but not on any others.
This results in the first page having a reference
count of 1 while all other pages in the allocation
have a reference count of 0. I would think that all
pages in the same allocation should all have the same
reference count at the end of the allocation.

I've looked at this in the 2.6.20, 2.6.19.1, and the
2.6.17.7 kernels. They contain the same code in this
area.

I don't have a solution to offer, but I wanted to
bring it to the attention of those who have more
knowledge about the workings of the page allocation
system.

tim




____________________________________________________________________________________
Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos.
http://autos.yahoo.com/new_cars.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/