Re: [RFC] ARM binutils feature churn causing kernel problems

From: Paulo Marques
Date: Fri Oct 08 2004 - 14:45:03 EST


Albert Cahalan wrote:
....

No, the /proc/*/wchan file is supposed to be used.
For some reason, stat() is failing. Here is the code:

// next try the Linux 2.5.xx method
if(!stat("/proc/self/wchan", &sbuf)){
use_wchan_file = 1; // hack
return 0;
}

See what these commands tell you:

strace -o data -e trace=stat ps alx >> /dev/null ; grep self data
stat /proc/self/wchan
stat /proc/$$/wchan
stat /proc/self/
stat /proc/self

You are right. I just tested this on my system and ps doesn't read any System.map at all, provided there is a /proc/<pid>/wchan file to read from.

If this is the case, then after the changes to kallsyms go in, procps could start using wchan directly and avoid reading the System.map altogether.


Here's an idea: if both name and number were provided
at the same time and I could get notified when a module
is loaded or unloaded, then I could cache the
number-to-name translation.

This is more a question of whether kallsyms is a good feature to have always (modulo embedded or very limited memory systems) or not. If kallsyms is always available, the procps tools already read /proc/<pid>/wchan and don't need to cache anything at all. The only reason to cache would be performance, but if you try a recent -mm kernel you can see that there is no need for that any more.

From what I've seen on this list since I've joined (almost a year ago), 2.4 stack dumps are almost useless[1] whereas the 2.6 ones give very useful information thanks to the function names (and offsets) that lead to the problem.

IMHO we should try to make kallsyms always available, reducing further the space used by the symbol data if necessary.

--
Paulo Marques - www.grupopie.com

To err is human, but to really foul things up requires a computer.
Farmers' Almanac, 1978

[1] of course using ksymoops would solve this, but it requires more knowledge from the user than kallsyms, so it is not the same thing
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/