Re: [PATCHSET REPOST percpu/for-3.18] percpu: implement atomic allocation support

From: Tejun Heo
Date: Tue Sep 02 2014 - 14:50:15 EST


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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/