On Mon, Nov 06, 2017 at 14:32:35 -0800, Alistair Francis wrote: > Sorry for the silence here, I noticed these were broken just before I > went on holidays but didn't get a chance to fix anything. > > For the Xilinx case I was thinking of patching the machine code to > sanely follow the -smp option. > > -smp 1 -> Only create 1 A53 > -smp 4 -> Create 4 A53s > -smp 6 -> Create all the CPUs > > I see a lot of advantages in not forcing the smallest number of CPUs > to be 4 unless we really have to. > > I do see a nice advantage in being able to set the default smp option > to something not 1 so the default closely matches hardware, but users > can override that if they want to. > > So for the patch below I like the default_cpus option, but for Xilinx > at least I would like to patch the logic to follow the -smp option > instead of force a minimum.
Agreed, honouring -smp would be the right fix. Just note that since this is a regression we need the fix to be in for 2.11. I just took a look at the non-Xilinx boards. It seems simple enough to substitute the hard-coded value for smp_cpus, but yet again I see "Property" structs that I'm not sure what to do with. For instance, bcm2836.c:152: static Property bcm2836_props[] = { DEFINE_PROP_UINT32("enabled-cpus", BCM2836State, enabled_cpus, BCM2836_NCPUS), DEFINE_PROP_END_OF_LIST() }; What is the purpose here? To enable/disable CPUs with -global args, just like it's done for the Xilinx boards? Shouldn't we just use -smp for that? Also, note that I don't have a way to test these boards, which explains why I'm reluctant to change board code. But of course if board maintainers step in, I'm all for it :-) Thanks, Emilio