[Crash-utility] cannot determine idle task and cannot resolve init_task_union on x86

David Wilder dwilder at us.ibm.com
Fri Apr 7 17:25:19 UTC 2006


David Anderson wrote:

> Steve Dickson wrote:
>
>> Hello,
>>
>> I'm getting the following errors using crash 4.0-2.22 on a
>> 2.6.16-1.2087_FC5.smp kernel.
>>
>> crash: cannot determine idle task addresses from init_tasks[] or 
>> runqueues[]
>>
>> crash: cannot resolve "init_task_union"
>>
>> Now I just read the threads about this same error on
>> ppc64 as well as read the crash version 4.0-2.21 is available
>> release notes, but this is happening on x86 UP kernel
>> (although I'm using an SMP kernel) and with the latest
>> crash version 4.0-2.22
>>
>> any ideas?
>>
>> steved.
>>
>> Disclaimer: I don't follow this mailing list as close as I probably
>> should so I'll pre-apologize is this has already been discussed
>> in a previous thread... If so please simply send the pointer...
>>
>> -- 
>> Crash-utility mailing list
>> Crash-utility at redhat.com
>> https://www.redhat.com/mailman/listinfo/crash-utility
>
>
> In this particular kernel, does the runqueue data structure now contain
> a new "cpu" member?  (It's also described in the new crash.TODO file
> on my people site).
>
> If so, try adding the attached patch to kernel.c.
>
> Dave
>
>
>------------------------------------------------------------------------
>
>diff -u -r1.131 kernel.c
>--- kernel.c	23 Mar 2006 20:33:48 -0000	1.131
>+++ kernel.c	3 Apr 2006 18:21:01 -0000
>@@ -152,7 +152,8 @@
> 			kt->flags |= PER_CPU_OFF;
> 		}
> 		MEMBER_OFFSET_INIT(runqueue_cpu, "runqueue", "cpu");
>-		if (VALID_MEMBER(runqueue_cpu)) {
>+		if (VALID_MEMBER(runqueue_cpu) &&
>+		    (get_array_length("runqueue.cpu", NULL, 0) > 0)) {
> 			MEMBER_OFFSET_INIT(cpu_s_curr, "cpu_s", "curr");
> 			MEMBER_OFFSET_INIT(cpu_s_idle, "cpu_s", "idle");
> 		 	STRUCT_SIZE_INIT(cpu_s, "cpu_s"); 
>@@ -177,6 +178,7 @@
> 		} else {
> 			MEMBER_OFFSET_INIT(runqueue_idle, "runqueue", "idle");
> 			MEMBER_OFFSET_INIT(runqueue_curr, "runqueue", "curr");
>+			ASSIGN_OFFSET(runqueue_cpu) = INVALID_OFFSET;
> 		}
> 		MEMBER_OFFSET_INIT(runqueue_active, "runqueue", "active");
> 		MEMBER_OFFSET_INIT(runqueue_expired, "runqueue", "expired");
>  
>
>------------------------------------------------------------------------
>
>--
>Crash-utility mailing list
>Crash-utility at redhat.com
>https://www.redhat.com/mailman/listinfo/crash-utility
>  
>
Dave
I tested out the patch on the 2.4.16 kernel and it works fine.

-- 
David Wilder
IBM Linux Technology Center
Beaverton, Oregon, USA 
dwilder at us.ibm.com
(503)578-3789




More information about the Crash-utility mailing list