Skip to contentSkip to conversation

x86, perf, pmu: make reserve_ds_buffers() allocate memory dynamically

DISCUSSION Don Zickus 2 participants 2 messages Jun 24, 2011 – Jun 28, 2011

lore
Share & tools
lore

Don Zickus

author
#0 lore raw

Hi guys,

Some kdump folks noticed that on large machines (say 80 cpu threads), the kernel reserved a good chunk of memory in the kdump kernel with the call to reserve_ds_buffers(). About 64k per cpu.

Normally the kdump kernel boots with maxcpus=1 to limit the amount of processing and memory usage it needs. However, with reserve_ds_buffers() it seems to allocate a giant chunk of memory due to its use of for_each_possible_cpu().

I was wondering if it was possible to move some of that allocation to the cpu_prepare/cpu_starting routines and allocate during a cpu hotplug event. I am not sure if some of this allocation is on a per cpu basis (which includes multiple cores) or if there is some sort of other restriction that required the code to be statically allocated at boot time.

Thanks,
Don

#1 lore raw
Quoted 11 lines · Don Zickus

Hi guys,

Some kdump folks noticed that on large machines (say 80 cpu threads), the kernel reserved a good chunk of memory in the kdump kernel with the call to reserve_ds_buffers(). About 64k per cpu.

Normally the kdump kernel boots with maxcpus=1 to limit the amount of processing and memory usage it needs. However, with reserve_ds_buffers() it seems to allocate a giant chunk of memory due to its use of for_each_possible_cpu().

Quoted 5 lines

I was wondering if it was possible to move some of that allocation to the cpu_prepare/cpu_starting routines and allocate during a cpu hotplug event. I am not sure if some of this allocation is on a per cpu basis (which includes multiple cores) or if there is some sort of other restriction that required the code to be statically allocated at boot time.

The only complication I can remember is that the BTS buffers are an order 4 allocation, so the later you allocate them the less likely they are to be available.

Other than that there isn't anything magical about any of it.