On Fri, May 23, 2014 at 07:16:33PM +0100, Morten Rasmussen wrote: > +static struct capacity_state cap_states_cluster_a7[] = { > + /* Cluster only power */ > + { .cap = 358, .power = 2967, }, /* 350 MHz */ > + { .cap = 410, .power = 2792, }, /* 400 MHz */ > + { .cap = 512, .power = 2810, }, /* 500 MHz */ > + { .cap = 614, .power = 2815, }, /* 600 MHz */ > + { .cap = 717, .power = 2919, }, /* 700 MHz */ > + { .cap = 819, .power = 2847, }, /* 800 MHz */ > + { .cap = 922, .power = 3917, }, /* 900 MHz */ > + { .cap = 1024, .power = 4905, }, /* 1000 MHz */ > + };
> +static struct capacity_state cap_states_core_a7[] = { > + /* Power per cpu */ > + { .cap = 358, .power = 187, }, /* 350 MHz */ > + { .cap = 410, .power = 275, }, /* 400 MHz */ > + { .cap = 512, .power = 334, }, /* 500 MHz */ > + { .cap = 614, .power = 407, }, /* 600 MHz */ > + { .cap = 717, .power = 447, }, /* 700 MHz */ > + { .cap = 819, .power = 549, }, /* 800 MHz */ > + { .cap = 922, .power = 761, }, /* 900 MHz */ > + { .cap = 1024, .power = 1024, }, /* 1000 MHz */ > + }; Talk to me about this core vs cluster thing. Why would an architecture have multiple energy domains like this? That is, if a cpu can set P states per core, why does it need a cluster wide thing. Also, in general, why would we need to walk the domain tree all the way up, typically I would expect to stop walking once we've covered the two cpu's we're interested in, because above that nothing changes.
pgplHKzymqLVE.pgp
Description: PGP signature