mirror of https://gitee.com/openkylin/linux.git
s390/smp: reduce memory consumption of pcpu_devices array
Remove the embedded struct cpu from struct pcpu and replace it with a pointer instead. The struct cpu now gets allocated when a new cpu gets detected. The size of the pcpu_devices array (NR_CPUS * sizeof(struct pcpu)) gets reduced by nearly 120KB. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
03439e7d0a
commit
96619fc1b3
|
@ -59,7 +59,7 @@ enum {
|
|||
};
|
||||
|
||||
struct pcpu {
|
||||
struct cpu cpu;
|
||||
struct cpu *cpu;
|
||||
struct _lowcore *lowcore; /* lowcore page(s) for the cpu */
|
||||
unsigned long async_stack; /* async stack for the cpu */
|
||||
unsigned long panic_stack; /* panic stack for the cpu */
|
||||
|
@ -958,7 +958,7 @@ static int smp_cpu_notify(struct notifier_block *self, unsigned long action,
|
|||
void *hcpu)
|
||||
{
|
||||
unsigned int cpu = (unsigned int)(long)hcpu;
|
||||
struct cpu *c = &pcpu_devices[cpu].cpu;
|
||||
struct cpu *c = pcpu_devices[cpu].cpu;
|
||||
struct device *s = &c->dev;
|
||||
int err = 0;
|
||||
|
||||
|
@ -975,10 +975,15 @@ static int smp_cpu_notify(struct notifier_block *self, unsigned long action,
|
|||
|
||||
static int smp_add_present_cpu(int cpu)
|
||||
{
|
||||
struct cpu *c = &pcpu_devices[cpu].cpu;
|
||||
struct device *s = &c->dev;
|
||||
struct device *s;
|
||||
struct cpu *c;
|
||||
int rc;
|
||||
|
||||
c = kzalloc(sizeof(*c), GFP_KERNEL);
|
||||
if (!c)
|
||||
return -ENOMEM;
|
||||
pcpu_devices[cpu].cpu = c;
|
||||
s = &c->dev;
|
||||
c->hotpluggable = 1;
|
||||
rc = register_cpu(c, cpu);
|
||||
if (rc)
|
||||
|
|
Loading…
Reference in New Issue