[Crash-utility] [PATCH 2/3] crash: ARM: get online CPUs from cpu_active_mask

Liu hua sdu.liu at huawei.com
Mon Apr 28 13:15:53 UTC 2014


于 2014/4/27 7:43, Dave Anderson 写道:
> 
> 
> ----- Original Message -----
>> On 2014/4/26 3:20, Dave Anderson wrote:
>>>
>>>
>>> ----- Original Message -----
>>>> For ARM32 platfrom, The system will "offline" all CPUs except the
>>>> crashing one, by clear the cpu_online_mask. So we need to find
>>>> another way to get online-CPUs number for crash utility.
>>>>
>>>> This patch uses cpu_active_mask to get that value.
>>>>
>>>> Signed-off-by: Liu Hua <sdu.liu at huawei.com>
>>>> ---
>>>>  arm.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/arm.c b/arm.c
>>>> index 3c38cd5..c94d7bf 100644
>>>> --- a/arm.c
>>>> +++ b/arm.c
>>>> @@ -1518,7 +1518,7 @@ arm_display_machine_stats(void)
>>>>  static int
>>>>  arm_get_smp_cpus(void)
>>>>  {
>>>> -	return get_cpus_online();
>>>> +	return get_cpus_active();
>>>>  }
>>>>  
>>>>  /*
>>>
>>> When did this start happening?  I ask because no other ARM users have
>>> reported this until now.  I've only got one sample SMP vmcore, and
>>> clearly the non-crashing cpu was not offlined:
>>>
>>
>>
>> Hi Dave,
>>
>>  commit 36a2e5010fe87 "kexec: offline non panic CPUs on Kdump panic "
>>  introduces this change. <v3.10.27-1-g36a2e50>
>>
>>  The following messges come from the ARM boards on my hand. The crash
>>  utility has added my patchs.
>>
>> (1) ARM A15 16 CPUs
>>
>>   crash> sys
>>
>>       KERNEL: vmlinux
>>     DUMPFILE: vmcore_my  [PARTIAL DUMP]
>>         CPUS: 16
>>         DATE: Fri Feb 28 10:07:55 2014
>>       UPTIME: 00:03:57
>> LOAD AVERAGE: 0.03, 0.01, 0.01
>>        TASKS: 140
>>     NODENAME: arma15el
>>      RELEASE: 3.10.37+
>>      VERSION: #2 SMP Thu Apr 24 21:13:28 CST 2014
>>      MACHINE: armv7l  (unknown Mhz)
>>       MEMORY: 3.1 GB
>>        PANIC: "Internal error: Oops: a07 [#1] SMP ARM" (check log for details
>>
>>   crash> help -k
>>        ....
>>        cpu_possible_map: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
>>        cpu_present_map: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
>>        cpu_online_map: 0
>>        ...
>>
>>
>> (2) ARM A9 4 CPUs
>>
>> crash> sys
>>       KERNEL: vmlinux
>>     DUMPFILE: vmcore
>>         CPUS: 2
>>         DATE: Mon Apr 14 11:09:10 2014
>>       UPTIME: 00:06:17
>> LOAD AVERAGE: 0.16, 0.05, 0.02
>>        TASKS: 45
>>     NODENAME: arma9el
>>      RELEASE: 3.10.37+
>>      VERSION: #6 SMP Tue Apr 22 13:23:30 CST 2014
>>      MACHINE: armv7l  (unknown Mhz)
>>       MEMORY: 1.5 GB
>>        PANIC: "Internal error: Oops: 817 [#1] SMP ARM" (check log for
>>        details)
>>
>>   crash> help -k
>>        ....
>> 	cpu_possible_map: 0 1
>>         cpu_present_map: 0 1
>>         cpu_online_map: 1
>>
>>
>>    crash> p per_cpu__runqueues
>>
>>    PER-CPU DATA TYPE:
>>    struct rq runqueues;
>>    PER-CPU ADDRESSES:
>>    [0]: c069a680
>>    [1]: c06a2680
>>
>> With my patches, "sys" command is ok. And I can get per_cpu variables correctly.
>> But something should be done for "help -k". May be I should add fully support
>> for cpu_active_mask. If necessory, I will resend this patch series.
> 
> It's not necessary, but it would be nice to have, and would be 
> easy to add. 
> 
> Also, would it be possible that you can let me have a copy of your
> 16-cpu vmlinux/vmcore pair?  That would be a great sample for
> my testing.  
> 
> Thanks,
>   Dave

Hi Dave,

Sure, there seems no extra problems caused by the commit above. We can add it when necessory.

And, I am very sorry to tell you that I have no authority for sending binary files out of my
company, becasue of it's security rules. I have no ways to send that huge file out. Maybe
I can do some test for you on my platform.

Thanks
Liu Hua





More information about the Crash-utility mailing list