So, for starters, can you display how "pid_hash" is declared in your kernel?
static struct hlist_head *pid_hash[PIDTYPE_MAX];
This is the code sequence in task_init() that selects refresh_hlist_task_table() or refresh_hlist_task_table_v2(): } else { tt->pidhash_addr = symbol_value("pid_hash"); if (!get_array_length("pid_hash", NULL, sizeof(void *)) && VALID_STRUCT(pid_link)) tt->refresh_task_table = refresh_hlist_task_table_v2; else tt->refresh_task_table = refresh_hlist_task_table; }
Yes, refresh_hlist_task_table is being selected, but because the "if" clause itself was failing. get_array_length("pid_hash",...) = 1 VALID_STRUCT(pid_link) = 0 VALID_MEMBER(pid_link_pid) = 0 VALID_MEMBER(pid_hash_chain)) = 0 if (VALID_MEMBER(pid_link_pid) && VALID_MEMBER(pid_hash_chain)) { get_symbol_data("pid_hash", sizeof(ulong), &tt->pidhash_addr); tt->refresh_task_table = refresh_pid_hash_task_table; } else {
Alternatively, if you want to make the vmlinux/dumpfile pair available to me, I can take a look at it.
Thanks, I will see how I can get you the files.
Another thing to check -- there are two places that print that "cannot determine..." error message. Can you verify that it's happening in refresh_hlist_task_table()? That's where the previous reporter said that it happened on his system, but I just want to make absolutely sure.
I confirmed that the error message "crash: cannot determine pid_hash array dimensions " was from the refresh_hlist_task_table() function -- Thanks -Tejasvi -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility