On Fri, Dec 5, 2014 at 11:59 AM, Vlastimil Babka <vbabka@xxxxxxx> wrote:
Hey all,
this is a V2 of attempting something that has been discussed when Minchan
proposed to expand the x86 kernel stack [1], namely the reduction of huge
number of parameters that the alloc_pages* family and get_page_from_freelist()
functions have.
So I generally like this, but looking at that "struct alloc_context",
one member kind of stands out: the "order" parameter doesn't fit in
with all the other members.
Most everything else is describing where or what kind of pages to work
with. The "order" in contrast, really is separate.
So conceptually, my reaction is that it looks like a good cleanup even
aside from the code/stack size reduction, but that the alloc_context
definition is a bit odd.
Quite frankly, I think the :"order" really fits much more closely with
"alloc_flags", not with the alloc_context. Because like alloc_flags,.
it really describes how we need to allocate things within the context,
I'd argue.
In fact, I think that the order could actually be packed with the
alloc_flags in a single register, even on 32-bit (using a single-word
structure, perhaps). If we really care about number of parameters.
I'd rather go for "makes conceptual sense" over "packs order in
because it kind of works" and we don't modify it".
Hmm?
Linus