[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH 0/2] Boot time cpupools



Hi Stefano,

On 19/11/2021 18:55, Stefano Stabellini wrote:
On Fri, 19 Nov 2021, Julien Grall wrote:
I like better Juergen's version. But before agreeing on the command line , I
would like to understand how Linux is dealing with big.LITTLE today (see my
question above).

I also like Juergen's version better :-)

The device tree binding that covers big.LITTLE is the same that covers
cpus: Documentation/devicetree/bindings/arm/cpus.yaml

Are you sure? I found Documentation/devicetree/bindings/arm/cpu-capacity.txt.


So basically, you can tell it is a big.LITTLE system because the
compatible strings differ between certain cpus, e.g.:

       cpu@0 {
         device_type = "cpu";
         compatible = "arm,cortex-a15";
         reg = <0x0>;
       };

       cpu@1 {
         device_type = "cpu";
         compatible = "arm,cortex-a15";
         reg = <0x1>;
       };

       cpu@100 {
         device_type = "cpu";
         compatible = "arm,cortex-a7";
         reg = <0x100>;
       };

       cpu@101 {
         device_type = "cpu";
         compatible = "arm,cortex-a7";
         reg = <0x101>;
       };

I have not found any code in Linux using the compatible. Instead, they all seem to use the cpu-map (see drivers/base/arch_topology.c).

Anyway, to me it would be better to parse the Device-Tree over using the MIDR. The advantage is we can cover a wide range of cases (you may have processor with the same MIDR but different frequency). For now, we could create a cpupool per cluster.

Cheers,

--
Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.