Messages in this thread | | | Date | Mon, 28 Jan 2013 09:59:51 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH 23/32] Generic dynamic per cpu refcounting |
| |
Hello, Kent.
On Mon, Jan 28, 2013 at 09:53:04AM -0800, Kent Overstreet wrote: > > Like Tejun, I'd prefer to see it always alloc up-front, because it > > avoids the _noalloc variant (which is backwards: please hand gfp_t, so > > you don't hide the alloc) and heuristics. > > Problem with gfp_t is alloc_percpu() doesn't take it. I don't know why, > but this all goes away with Tejun's idea for allocating from a pool > refilled by workqueue.
It goes down to how we allocate page tables. percpu depends on vmalloc space allocation which in turn depends on page table allocation which unfortunately assumes GFP_KERNEL and is spread all across different architectures. Adding @gfp to it came up a couple times but the cases weren't strong enough to push it all the way through. There are some aspects that I like about forcing GFP_KERNEL on all percpu allocations but if there are strong enough cases and someone is willing enough to push it through, maybe.
Thanks.
-- tejun
| |