On Monday 06 August 2007 03:29, Peter Zijlstra wrote:
Where does the 2* come from? Isn't it exp2(ceil(log2(N + m)))?
Patch [3/10] adds a new field to struct page. I do not think this is
necessary. Allocating a page from reserve does not make it special.
All we care about is that the total number of pages taken out of
reserve is balanced by the total pages freed by a user of the reserve.
We do care about slab fragmentation in the sense that a slab page may be
pinned in the slab by an unprivileged allocation and so that page may
never be returned to the global page reserve. One way to solve this is
to have a per slabpage flag indicating the page came from reserve, and
prevent mixing of privileged and unprivileged allocations on such a
page.
This patch set is _way_ less intimidating than its predecessor.
However, I see we have entered the era of sets of patch sets, since it
is impossible to understand the need for this allocation infrastructure
without reading the dependent network patch set. Waiting with
breathless anticipation.
Regards,
Daniel
-