Hi

 

I have seen a problem when it comes to the number of cpus for ARM (32-bits).

 

static int

arm_get_smp_cpus(void)

{

                           return MAX(get_cpus_active(), get_cpus_online());

}

 

In one of my example, “help –k” gives me:

       cpu_possible_map: 0 1 2 3

        cpu_present_map: 0 1 2 3

         cpu_online_map: 0 3

         cpu_active_map: 3

 

So the number of cpus will become 2. However there are code in a number of places that will then only accept cpu 0 and 1 as cpus to handle.

 

When I changed to code to be the same as for ARM64 things worked as expected:

 

static int

arm_get_smp_cpus(void)

{

                           return MAX(get_cpus_online(), get_highest_cpu_online()+1);

}

 

Jan

 

Jan Karlsson

Senior Software Engineer

System Assurance

 

Sony Mobile Communications

Tel: +46 703 062 174

jan.karlsson@sonymobile.com

 

sonymobile.com

 

Sony logotype_23px height_Email_144dpi