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

Matthew Wilcox
2008-05-30T11:33:28Z

On Thu, May 29, 2008 at 11:37:58PM -0700, Andrew Morton wrote:
> And struct nfs_iostats is 264 bytes and nfs does an alloc_percpu() of
> one of those per server and mounting thousands of servers per client
> is, I believe, a real-world operation.

Another example, not as extreme, there's an alloc_percpu(struct
disk_stats) [80 bytes on 64-bit machines] for every disk and every
partition in the machine. The TPC system has 3000 disks, each with 14
partitions on it. That's 15 * 80 * 3000 = 3,600,000 bytes.

Even if you're only putting a pointer to each allocation in the percpu
area, that's still 360,000 bytes, 12x as much as you think is sufficient
for the entire system.

--
Intel are signing my paycheques ... these opinions are still mine
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."