Re: [patch 00/41] cpu alloc / cpu ops v3: Optimize per cpu access

Andrew Morton
2008-05-30T06:16:52Z

On Fri, 30 May 2008 08:01:02 +0200 Eric Dumazet <dada1@cosmosbay.com> wrote:

> Really, percpu allocations are currently not frequent at all.
>
> vmalloc()/vfreee() are way more frequent and still use a list.

Sure it's hard to conceive how anyone could go and do a per-cpu
allocation on a fastpath.

But this has nothing to do with the frequency! The problems surround
the _amount_ of allocated memory and the allocation/freeing patterns.

Here's another example. And it's only an example! Generalise!

ext3 maintains three percpu_counters per mount. Each percpu_counter
does one percpu_alloc. People can mount an arbitrary number of ext3
filesystems!

Another: there are two percpu_counters (and hence two percpu_alloc()s)
per backing_dev_info. One backing_dev_info per disk and people have
been known to have thousands (iirc ~10,000) disks online.

And those examples were plucked only from today's kernel. Who knows
what other problems will be in 2.6.45?