On Fri, Aug 22, 2014 at 12:53:04PM -0400, Tejun Heo wrote: > (the initial posting was missing cc's, reposting) > > Due to the use of vmalloc area allocations and page table populations, > preparing percpu areas require GFP_KERNEL and all the allocator users > are expected to be able to perform GFP_KERNEL allocations. This is > mostly okay but there are cases where atomic percpu allocations are > necessary usually in the IO path. > > Currently, blk-throttle is implementing its own ad-hoc async > allocation and there are some more planned similar usages. I posted > [1] percpu_pool which generalizes the percpu atomic allocation a bit > but this was a bit too cumbersome especially to use with other library > data structures which make use of percpu memory as a part of it. > > This patchset implements proper atomic allocation support in the > percpu allocator. It's largely composed of two parts. The first is > updates to the area allocator so that it can skip non-populated areas. > The second is async filling mechanisms which try to maintain a certain > level of empty populated areas. The allocator currently tries to keep > the number of empty populated pages between 2 and 4. Even with fairly > aggressive back-to-back allocations, this seems enough to satisfy most > allocations as long as the allocation size is under a page.
1-2 applied to percpu/for-3.17-fixes. The rest applied to percpu/for-3.18. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/